Apuntes de Sistemas Operativos II

download Apuntes de Sistemas Operativos II

of 51

Transcript of Apuntes de Sistemas Operativos II

  • 8/19/2019 Apuntes de Sistemas Operativos II

    1/51

    APUNTES DE SISTEMAS OPERATIVOS II

    Mtro. Eneas Mandujano Gutiérrez

    UNIDAD I. LOS SISTEMAS OPERATIVOS EN AMBIENTES DISTRIBUIDOS. 

    . SISTEMAS DISTRIBUIDOS Un sistema distribuido es un conjunto de computadoras independientes que sepresenta a los usuarios como un sistema único.En el sistema distribuido cualquier computadora puede tener acceso a elsoftware o hardware y el centralizado solo se encuentra en una computadoraa la cual se le pide en servicio.

    1.1.1 Ventajas y Desventajas de un sistema distribuido contra unsistema centralizado

    DistribuidosVentajas

    • iene procesadores mas poderosos y menos costosos• Desarrollo de estaciones con mas capacidad• !as estaciones satisfacen las necesidades de los usuarios• Uso de nuevas interfaces

     

    Desventajas• "equerimientos de mayores controles de procesamiento• Velocidad de pro#ramaci$n de informaci$n %muy lenta&• 'ayores controles de acceso

    Centralizado  Ventajas

    • 'ayor aprovechamiento de recursos

      Desventajas

    • El software es mucho mas complejo

    Ventajas de los sistemas distribuidos sobre los centralizados

    • Econom(a• Velocidad #lobal de la instalaci$n• )oluci$n a problemas* pasan por el empleo de computadoras

    f(sicamente distantes• !a se#uridad ante la falla de un +,U puede reor#anizarse y se#uir

    operando correctamente pero con menos precisi$n

    • Un sistema distribuido permite la aportaci$n de nuevos recursos decomputo a fin de elevar su potencial #lobal y el crecimiento es muy util

  • 8/19/2019 Apuntes de Sistemas Operativos II

    2/51

    a las empresas y en computadora normal soporta continuamente unaumento de la car#a de trabajo debido al crecimiento de la empresa ylle#ara el momento en que deber- ser sustituida e invertir en unanueva computadora.

    Sistema central  +liente +liente +liente

      Servidor 

    Sistema Distribuido

    1.1. 'odelo +liente )ervidor

    /rquitectura +liente0 )ervidor

    Una arquitectura es un conjunto de re#las* definiciones* trminos y modelos.2ue se emplea para producir la arquitectura cliente0servidor a#rupa conjuntosde elementos que efectúan procesos distribuidos y computo operativo.

    Beneficios

    • 'ayor aprovechamiento de la potencia de computo• "educe el trafico en la red

    • 3pera bajo sistemas abiertos

    • ,ermite el uso de interfaces #raficas variadas

    Cliente

  • 8/19/2019 Apuntes de Sistemas Operativos II

    3/51

    +onjunto de software y hardware que invoca los servicios de uno o variosservidores.

    1.1.4 +aracter(sticas 5ardware )istemas Distribuidos

     

    Debemos considerar las diversas formas en que es posible interconectar variascomputadoras o bien varias +,U).

    6lynn propuso cuatro diferentes cate#or(as en que se podr(an clasificar losistemas hardware e7isten de acuerdo a dos par-metros numero de flujo deinstrucciones y números de flujos de datos.

    • )8)D Un flujo de instrucci$n con flujo de datos•

    )8'D Un flujo de instrucci$n varios flujos de datos

    • '8)D Varios flujos de instrucciones un flujo de datos %no se usa&

    • '8'D Varios flujos de instrucciones y varios flujos de datos

    Dentro de esta cate#or(a se pueden encontrar dos tipos distintos de laforma en que se pueden interconectar el hardware. Es as(* como tenemoslos si#uientes #randes #rupos

    • 'U!8,"3+E)/D3"E)• 'U!8+3',U/D3"E)

    +ada uno de estos tipos permite una intercone7i$n de su componente tipo busy tipo conmuta. Desde el punto de vista de las velocidades de comunicaci$nque pueden alcanzar estos dos #randes #rupos se tienen dos conceptosasociados.

    Sistemas fuertemente acoplados

    Sistemas débilmente acoplados

    • )6/ asa de transmisi$n alta* retraso de mensajes alto %mensajescortos&

    • )D/ retraso de mensajes entre maquines #rande y tasa de transmisi$nbaja

    'U!8,"3+E)/D3"

    !os multiprocesadores corresponden a un conjunto de +,U) conectadasentres si que utilizan un espacio de direccionamiento virtual común.

    'U!8,"3+E)/D3"E) +39 +39E:8;9 DE

  • 8/19/2019 Apuntes de Sistemas Operativos II

    4/51

    En este caso los +,U) est-n interconectadas entre s(* mediante un bus.+ada vez que una +,U quiere realizar un acceso de lectura o escrituradebe acceder al bus.

    'U!8,"3+E)/D3"E) +39 +39E:8;9 +39'U/

    En este caso la memoria se divide en diversos bancos y las +,U) seinterconectan con ellas no mediante un canal tipo bus* si no de otramanera.

    'U!8+3',U/D3"E)

    Esto se refiere a sistemas de computa con memoria distribuida* en estacaso cada computadora pasee su propia memoria local.

    'U!8+3',U/D3"E) +39 +39E:8;9 DE

  • 8/19/2019 Apuntes de Sistemas Operativos II

    5/51

    1.1.@ Direccionamiento !$#ico 6(sico )istemas Distribuidos

    )U

  • 8/19/2019 Apuntes de Sistemas Operativos II

    6/51

    6actores que han afectado el desarrollo del sistema distribuido

    • /vances tecnol$#icos• 9uevos requerimientos

    • Clobalizaci$n

    • /spectos e7ternos %culturales* pol(ticos y econ$micos&

    • 8nte#raci$n

    1.4 +oncepto +aracter(sticas del )od

    Caracter!sticas

    • El cliente pide servicios a un nodo denominado servidor• Detecta e intersecta peticiones de otras aplicaciones y puede

    redireccionarlas

    • Dedicado a la secci$n de usuario

    • El mtodo mas común por el que se solicitan los servicios es atravs de",+ %llamadas a procedimientos remotos&

    6U9+839E) +3'U9E) DE! +!8E9E

    • 'antener y procesar todo el dialo#o con el usuario• 'anejo de pantallas

    • 'enús e interpretaci$n de comandos

    • Entrada de datos y validaci$n

    • ,rocesamiento de ayuda

    • "ecuperaci$n de errores

    ",+ 6uncionamiento

    +liente

    0 ,roceso realiza llamada a funci$n

  • 8/19/2019 Apuntes de Sistemas Operativos II

    7/51

    0 !lamada empaqueta 8D de funci$n y ar#umentos en mensaje y los env(aa otro proceso

    0 2ueda a la espera del resultado

    )ervidor

    0 "ecibe mensajes con id de funci$n y ar#umentos0 )e invoca funci$n en el servidor

    0 "esultado de la funci$n se empaqueta en mensaje que se retransmite alcliente

    3bjetivo /cercar la sem-ntica de las llamadas a procedimientos convencionala un entorno distribuido %transparencia&

    UNIDAD II

    !OMUNI!A!I"N EN LOS SISTEMAS OPERATIVOS DISTRIBUIDOS

    .1 +3'U98+/+8;9

    !a comunicaci$n entre procesos en sistemas con un único procesador selleva a cabo mediante el uso de memoria compartida entre los procesos.En los sistemas distribuidos* al no haber cone7i$n f(sica entre las distintasmemorias de los equipos* la comunicaci$n se realiza mediante la

    transferencia de mensajes.

      .1.1 +omunicaci$n +liente0)ervidorSocketsEs un mecanismo de comunicación, Permite a los sistemas cliente/servidor ser desarrollados Localmente en una sola máquina A través de redes. Funcionestales como impresión, utilerías de red, tales como rlogin !tp, usualmente usansoc"ets para comunicarse.

    Socket  designa un concepto a#stracto por el cual dos programas

    $posi#lemente situados en computadoras distintas% pueden intercam#iarsecualquier !lu&o de datos, generalmente de manera !ia#le ordenada.

  • 8/19/2019 Apuntes de Sistemas Operativos II

    8/51

    'n soc"et queda de!inido por una dirección (P, un protocolo un n)mero depuerto.

    Explicación detallada 

    Para que dos programas puedan comunicarse entre sí es necesario que secumplan ciertos requisitos*

    • +ue un programa sea capa de localiar al otro.

    • +ue am#os programas sean capaces de intercam#iarse cualquier 

    secuencia de octetos, es decir, datos relevantes a su !inalidad.

    • Para ello son necesarios los tres recursos que originan el concepto de

    soc"et*

    • 'n protocolo de comunicaciones, que permite el intercam#io de octetos.

    • 'na dirección del Protocolo de -ed $irección (P, si se utilia el

    Protocolo 0P/(P%, que identi!ica una computadora.

    'n n)mero de puerto, que identi!ica a un programa dentro de unacomputadora.Los soc"ets permiten implementar una arquitectura cliente1servidor. Lacomunicación 2a de ser iniciada por uno de los programas que se denominaprograma cliente. El segundo programa espera a que otro inicie lacomunicación, por este motivo se denomina programa servidor.'n soc"et es un !ic2ero e3istente en la máquina cliente en la máquinaservidora, que sirve en )ltima instancia para que el programa servidor elcliente lean escri#an la in!ormación. Esta in!ormación será la transmitida por las di!erentes capas de red.

      .1. +omunicaci$n ",+

    3tro paso en el diseFo de un sistema operativo distribuido plantea lasllamadas a procedimientos remotos o ",+s. !os ",+ ampl(an la llamadalocal a procedimientos* y los #eneralizan a una llamada a unprocedimiento localizado en cualquier lu#ar de todo el sistema distribuido.En un sistema distribuido no se deber(a distin#uir entre llamadas locales y",+s* lo que favorece en #ran medida la transparencia del sistema.

    Una de las dificultades m-s evidentes a las que se enfrenta el ",+ es elformato de los par-metros de los procedimientos. Un ejemplo es laposibilidad de que en un sistema distribuido formado por diferentes tiposde ordenadores* un ordenador con formato little endian llamara a unprocedimiento de otro ordenador con formato bi# endian* etc. Esteproblema se podr(a solucionar si tenemos en cuenta que ambos pro#ramasconocen el tipo de datos de los par-metros* o estableciendo un est-ndaren el formato de los par-metros* de forma que sea usado de forma única.

    ,or último queda por solucionar la tolerancia a fallos. Una llamada a unprocedimiento remoto puede fallar por motivos que antes no e7ist(an*como la prdida de mensajes o el fallo del cliente o del servidor durante laejecuci$n del procedimiento.

  • 8/19/2019 Apuntes de Sistemas Operativos II

    9/51

    !a limitaci$n del ",+ m-s clara en los sistemas distribuidos es que nopermite enviar una solicitud y recibir respuesta de varias fuentes a la vez*sino que la comunicaci$n se realiza únicamente entre dos procesos. ,ormotivos de tolerancia a fallos* bloqueos* u otros* ser(a interesante poder

    tratar la comunicaci$n en #rupo.

      .1.4 +omunicaci$n en #rupo

    !a comunicaci$n en #rupo tiene que permitir la definici$n de #rupos* as( comocaracter(sticas propias de los #rupos* como la distinci$n entre #rupos abiertoso que permiten el acceso y cerrados que lo limitan* o como la distinci$n deltipo de jerarqu(a dentro del #rupo. 8#ualmente* los #rupos han de teneroperaciones relacionadas con su manejo* como la creaci$n o modificaci$n.

      .1.= olerancia a fallos2ue el sistema de archivos sea tolerante a fallos implica que el sistema debe#uardar varias copias del mismo archivo en distintos ordenadores para#arantizar la disponibilidad en caso de fallo del servidor ori#inal. /dem-s* seha de aplicar un al#oritmo que nos permita mantener todas las copiasactualizadas de forma consistente* o un mtodo alternativo que s$lo nospermita acceder al archivo actualizado* como invalidar el resto de copiascuando en cualquiera de ellas se vaya a realizar una operaci$n de escritura. Eluso de memorias cache para a#ilizar el acceso a los archivos tambin esrecomendable* pero este caso requiere analizar con especial atenci$n laconsistencia del sistema.

    . )89+"398A/+8;9

    El modelo cliente0servidor basa la comunicaci$n en una simplificaci$n delmodelo 3)8. !as siete capas que proporciona producen undesaprovechamiento de la velocidad de transferencia de la red* con lo ques$lo se usar-n tres capas f(sica %1&* enlace de datos %& y solicitudGrespuesta%@&. !as transferencias se basan en el protocolo solicitudGrespuesta y seelimina la necesidad de cone7i$n.

      ..1 "elojes f(sicos

    El al#oritmo de !amport proporciona un orden de eventos sin ambi#Hedades*pero!os valores de tiempo asi#nados a los eventos no tienen porqu ser cercanos alos tiempos reales en los que ocurren.En ciertos sistemas %ej. sistemas de tiempo real&* es importante la hora realdel reloj

    )e precisan relojes f(sicos e7ternos %m-s de uno&.)e deben sincronizar

  • 8/19/2019 Apuntes de Sistemas Operativos II

    10/51

    +on los relojes del mundo real.Entre s(.!a medici$n del tiempo real con alta precisi$n no es sencilla.Desde anti#uo el tiempo se ha medido astron$micamente.)e considera el d(a solar al intervalo entre dos tr-nsitos consecutivos del sol*

    donde el tr-nsito del sol es el evento en que el sol alcanza su puntoaparentemente m-s alto en el cielo.El se#undo solar se define como 1 G IJ.=KK de un d(a solar.+omo el per(odo de rotaci$n de la tierra no es constante* se considera else#undo solar promedio de un #ran número de d(as.!os f(sicos definieron al se#undo como el tiempo que tarda el -tomo de cesio144 para hacer L.1L.J41.MMK transiciones)e tom$ este número para que el se#undo at$mico coincida con el se#undosolar promedio de 1L@I.

      .. "elojes !$#icos!as computadoras poseen un circuito para el re#istro del tiempo conocidocomo dispositi"o reloj# 

    Es un cron$metro consistente en un cristal de cuarzo de precisi$n sometidoa una tensi$n elctrica que

    3scila con una frecuencia bien definida que depende de !a forma en que se corte el cristal. El tipo de cristal. !a ma#nitud de la tensi$n.

    / cada cristal se le asocian dos re#istros "e#istro contador# "e#istro mantenedor#

    +ada oscilaci$n del cristal decrementa en %&' al contador. +uando el contador lle#a a %(')

    )e #enera una interrupci$n# El contador se vuelve a car#ar mediante el re#istro mantenedor.

    )e puede pro*ramar un cron$metro para que #enere una interrupci$n%+' "eces por se*undo#

    +ada interrupci$n se denomina marca de reloj#

    Para una computadora , un reloj)  9o interesan pequeFos desfasajes del reloj porque

    odos los procesos de la m-quina usan el mismo reloj y tendr-nconsistencia interna#

    8mportan los tiempos relati"os#Para "arias computadoras con sus respecti"os relojes) 

    Es imposible #arantizar que los cristales de computadoras distintasoscilen con la misma frecuencia.

    5abr- una pérdida de sincron!a en los relojes -de soft.are/* es decirque tendr-n "alores distintos al ser le(dos.

  • 8/19/2019 Apuntes de Sistemas Operativos II

    11/51

      ..4 Uso de la sincronizaci$n

    !a O#i$ina Interna$iona% de %a &ora en Par's (BI&) recibe las indicaciones decerca de @K relojes at$micos en el mundo y calcula el tiempo at$micointernacional %/8&.+omo consecuencia de que el d!a solar promedio %D),& es cada vez mayor* und!a TA es 4 mse# menor que un DSP) !a

  • 8/19/2019 Apuntes de Sistemas Operativos II

    12/51

    5ay tres enfoques principales para los esquemas de nominaci$n.En el enfoque m-s sencillo* los archivos se nombran con una combinaci$n delnombre de su anfitri$n y su nombre local* lo que #arantiza un nombre únicodentro de todo el sistema.

    El se#undo enfoque popularizado por el sistema de archivos de red %96)*9etworN 6ile )ystem& de sun* ofrece una forma de unir directorios remotos adirectorios locales* lo que da la apariencia a un -rbol de directorioscoherentes.

    El tercer enfoque es la estructura mas compleja y dif(cil de mantener en la96)* ya que cualquier directorio se puede unir a cualquier -rbol dedirecciones locales y la jerarqu(a resultante puede estar poco estructurada.

    No+ina$i,n - Transaren$iaE7isten dos conceptos que hay que distin#uir en relaci$n con lacorrespondencia de nombres en un )D

    Transaren$ia de No+ina$i,n/ El nombre de archivo no revela nin#ún indiciosobre de la ubicaci$n del almacenamiento f(sico del archivo.Indeenden$ia de U0i$a$i,n/ 9o es necesario modificar el nombre de unarchivo cuando cambia su ubicaci$n en el almacenamiento f(sico.

      .4.1 +aracter(sticas y su estructura

    !os usuarios tratan con objetos de datos l$#icos representados por nombre dearchivos* mientras que el sistema manipula bloques de datos f(sicosalmacenados en las pistas de los discos.

    Ceneralmente un usuario se refiere a un archivo utilizando un nombre*el cual se transforma en un identificador numrico de bajo nivel* que asu vez se corresponde con bloques en disco. Esta correspondenciamultinivel ofrece a los usuarios la abstracci$n de un archivo* que ocultalos detalles de c$mo y donde se almacena el archivo en disco.

      )i se e7tiende un poco mas el tratamiento de los archivos comoabstracciones* lle#amos a la posibilidad de replicas de archivos. Dadoun nombre de archivo* la correspondencia devuelve un conjunto deposiciones de las replicas de este archivo. En esta abstracci$n seocultan tanto la e7periencia de copias como su ubicaci$n.

    .4. ipos de 9ombres 5ay tres enfoques principales para los esquemas de nominaci$n.

  • 8/19/2019 Apuntes de Sistemas Operativos II

    13/51

      En el enfoque m-s sencillo* los archivos se nombran con unacombinaci$n del nombre de su anfitri$n y su nombre local* lo que#arantiza un nombre único dentro de todo el sistema.

    El se#undo enfoque popularizado por el sistema de archivos de red%96)* 9etworN 6ile )ystem& de sun* ofrece una forma de unir directorios

    remotos a directorios locales* lo que da la apariencia a un -rbol dedirectorios coherentes.

    El tercer enfoque es la estructura mas compleja y dif(cil de manteneren la 96)* ya que cualquier directorio se puede unir a cualquier -rbolde direcciones locales y la jerarqu(a resultante puede estar pocoestructurada.

      .4.4 "esoluci$n y distribuci$n

    E7isten dos conceptos que hay que distin#uir en relaci$n con al

    correspondencia de nombres en un )D

    Transaren$ia de No+ina$i,n/ El nombre de archivo no revela nin#únindicio sobre de la ubicaci$n del almacenamiento f(sico del archivo.

    Indeenden$ia de U0i$a$i,n/ 9o es necesario modificar el nombre deun archivo cuando cambia su ubicaci$n en el almacenamiento f(sico.

     

    .4.= )ervidores y a#entes de nombre

    ,ara implantar una nominaci$n transparente se requiere un mecanismo paracorrespondencia entre un nombre de archivo y la ubicaci$n asociada. ,ara queesta correspondencia sea manejable* hay que a#rupar conjuntos de archivosen unidades componentes y proporcionar la correspondencia se#ún lasunidades componentes* no por archivos.

    .4.@ 'apas de direcciones

    E7iste una coherencia directa entre los accesos y el tr-fico que va yviene del servidor. De notar que se presenta una analo#(a directa entrelos mtodos de acceso a disco en los sistemas de archivosconvencionales y el mtodo de servicio remoto en un )D. El mtodo deservicio an-lo#o efectúa un acceso al disco para cada solicitud deacceso.

  • 8/19/2019 Apuntes de Sistemas Operativos II

    14/51

    Una manera de lo#rar esta transferencia es a travs del mtodo deservicio remoto* con el cual se entre#an al servidor las solicitudes deacceso* la maquina servidora lleva a cabo dichos accesos y los usuariosse devuelven al usuario

    .4.J 'apas de rutas

    En un sistema distribuido* el usar un nombre para los prop$sitos de lacomunicaci$n no es bastante. ,orque los procesos en ejecuci$n se comunicandesde diferentes computadoras. El conocimiento de su localizaci$n actual esnecesario. Esto conduce a los trminos b-sicos en esta -rea un nombre* unadirecci$n* y una ruta. El si#nificado de estos trminos se puede e7plicarusando las definiciones intuitivas si#uientes %)hoch 1LMI&1. El nombre de un objeto %por ejemplo* recursos* servidor& espec(fico que elproceso busca %al qu desea tener acceso&

    . Una direcci$n especifica donde sta4. Una ruta especifica c$mo esta ah(+ada uno de estos identificadores representa un atascamiento m-s apretadode la informaci$n1. !os nombres son mapeados en direcciones. Este mapeo es necesariopara la aplicaci$n en ejecuci$n* puesto que la sinta7is y la sem-ntica denombres dependen enteramente de qu tipos de entidades se est-nnombrando y tambin qu uso se est- haciendo de ellas y . !as direccionesson mapeadas en los routeadores.

     

    .4.M 'odelo de erry

    !os mensajes remitentes entre los procesos y objetos soportados por unsistema operativo precisa la presentaci$n para el sistema operativo de losnombres de los objetos que los procesos quieren #anar acceso a. El problemaes c$mo localizar objetos nombrados. Esto est- directamente conectado a la

    #erencia del espacio de nombre y las estructuras de la facilidad denombramiento.+omo ha visto* acto de servidores de nombre como a#entes obli#atoriosdistribuidos que amarran el nombre de un objeto para una cierta cantidad desus propiedades* incluyendo la posici$n del objeto. /l#unos servidores denombre pueden almacenar informaci$n acerca de los objetos particulares.ales servidores de nombre se llaman las autoridades que nombra o servidoresautoritarios de nombre para eso objetan. El problema es c$mo distribuirservidores de nombre* esto es* que de las estructuras de una facilidad denombramiento es el mejor.!os criterios diferentes pueden ser tomados en cuenta al desarrollar la

    facilidad de nombramiento para sistemas de c$mputo distribuidos. En la etapade an-lisis de la estructura de facilidad de nombramiento* usaremos la mayor

  • 8/19/2019 Apuntes de Sistemas Operativos II

    15/51

    parte de importante de esos criterios* a saber actuaci$n. Este criterio esimportante para un ambiente distribuido porque que hay usualmente unnúmero de redes interconectadas %lo mismo es cierto en caso de una red de-rea local conectando un número #rande de computadoras personales y G o lospuestos de trabajo* y los servidores diferentes&* lo cual insinúa que el costo

    de comunicaci$n entre clientes y servidores de nombre es el cuello de botellaprincipal en localizar recursos remotos. En este caso* la actuaci$n deaveri#uaciones del servidor de nombre es dominada por el número deservidores de nombre que deben ser a los que se #an$ acceso y el costo de#anar acceso a esos los servidores de nombre.

    U98D/D 888

    ,"3+E)3) O ,"3+E)/D3"E) E9 )8)E'/) D8)"8

  • 8/19/2019 Apuntes de Sistemas Operativos II

    16/51

    !os hilos son mini procesos. +ada hilo se ejecuta en forma estrictamentesecuencial y tiene su propio contador de pro#rama una pila para llevar unre#istro de su posici$n.!os hilos comparten +,U de la misma forma que lo hacen los procesossecuencialmente y tiempo compartido.

    )olo en un miltiprocesodor se pueden ejecutar realmente en paralelo. !oshilos pueden crear hilos hijos* mientras un hilo esta bloqueado se puedeejecutar otra fila del mismo proceso en los distintos hilos de un procesocomparten un espacio de direcciones* y los hilos pueden tener distintosestados %en ejecuci$n* bloqueado* listo y terminaci$n&.'uchos sistemas operativos distribuidos soportan múltiples hilos de controldentro de un proceso que comparten un único espacio de direcciones queejecutan casi paralelamente como si fueran procesos independientes.,or ejemploUn servidor de archivos que debe bloquearse ocasionalmente en espera deacceso al disco si tiene hilos de control podr(a ejecutar un se#undo hilomientras el primero espera el resultado seria mejor rendimiento ydesempeFo.

    4.4 '3DE!3) DE ,"3+E)/D3"E)

    En un sistema distribuido con varios procesadores un aspecto fundamental enel diseFo es como se utiliza a los procesadores que se pueden or#anizar devarias formas  De estaci$n de trabajo  De pila de procesadores

      5ibrido

    4.4.1 DE E)/+8;9 DE "/

  • 8/19/2019 Apuntes de Sistemas Operativos II

    17/51

    Q2ue ocurre si re#resa el usuario y ejecuta un procesoR)i re#resa el usuario se puede eliminar el proceso perdindose el trabajohecho y #enerando un caos en el sistema de archivos* o eliminar el procesoordenadamente* salvando el trabajo ya hecho y preservando la inte#ridad delsistema de archivos se podr(a emi#rar el proceso a otra estaci$n de trabajo.

    4.4..0'odelo De ,ila De ,rocesadores

    ,ara este modelo se dispone un conjunto de +,U que se pueden asi#nardin-micamente a los usuarios se#ún la demanda.

    9o e7iste el concepto de propiedad de los procesadores por que permanecena todos y se utiliza compartidamente.

    El principio ar#umentado para la centralizaci$n como una pila de

    procesadores proviene de la teor(a de colas.El modo de pila es m-s eficiente que el modelo de búsqueda de estacionesinactivas.

    4.4.4.0'odelo De ,rocesador 5ibrido

    El modelo hibrido que consta de estaciones de trabajo y una pila deprocesadores.

    !os trabajos interactivos se ejecutan en las estaciones de trabajo mientrasque los no interactivos se ejecutan en la pila de procesadores.

    El modelo de las estacione de trabajo suele coincidir en la actualidad con lamayor(a de las or#anizaciones cuando se utiliza este modelo hay una serie deaspectos atener en cuenta.

    • !a /si#naci$n de procesos de procesadores• !os al#oritmos de distribuci$n de la car#a• ,lanificaci$n de los procesadores en un sistema distribuido

    4.= '3DE!3 D8)ES3 E 8',!E'E9/+839 DE /!C3"8'3)

    !os /l#oritmos diseFados se escribir-n de forma de pseudos c$di#o* para cadaal#oritmo hay c$di#os representativos en el len#uaje de desarrollo 92+.,ara implementar la arquitectura subsumption se debe implementar elsi#uiente mtodoUn asN encar#ado de manejar todos los comportamientos tambin lleva acabo la coordinaci$n de los comportamientos.

    4.@ +3,!/9868+/+8;9

  • 8/19/2019 Apuntes de Sistemas Operativos II

    18/51

    Es en el cual se toman en cuenta los patrones de comunicaci$n entre losprocesos durante la planificaci$n para #arantizar que todos los miembros deun #rupo se ejecuten al mismo tiempo.

    4.J 3!E"/9+8/ / 6/!!3)

    !a tolerancia a fallos es un aspecto cr(tico para aplicaciones a #ran escala* yaque aquellas simulaciones que pueden tardar del orden de varios d(as osemanas para ofrecer resultados deben tener la posibilidad de manejar ciertotipo de fallos del sistema o de al#una tarea de la aplicaci$n.

    )in la capacidad de detectar fallos y recuperarse de estos* dichassimulaciones pueden no lle#ar a completarse. Es m-s* al#unos tipos deaplicaciones requieren ser ejecutadas en un entorno tolerante a fallos debidoal nivel de se#uridad requeridos.

    De cualquier forma* en ciertos casos deber(a haber al#ún modo de detectar yresponder autom-ticamente a ciertos fallos del sistema o al menos ofrecercierta informaci$n al usuario en el caso de producirse un fallo.

    En ,V' hay un mecanismo de notificaci$n de fallos* de forma que una tareapuede manejar notificaciones sobre ciertas tareas de las que espera recibir unmensaje. ,or ejemplo* si una tarea muere* otra que estuviese esperando unmensaje de la primera recibir- una notificaci$n en lu#ar del mensaje queesperaba. De esta forma* la notificaci$n le da la oportunidad de responder alfallo sin tener que fallar forzosamente.

    4.M.0)istema Distribuido En iempo "eal

    !a capacidad de procesamiento esta distribuida entre varias computadorasinterconectadas* las actividades del sistema tiene requerimientos de tiempo*

    e7iste necesidad de alta capacidad de procesos* distribuci$n f(sica del sistemay tolerancia a fallos.)e considera dbilmente acoplados se aplica en)istemas 'ultimedia/viaci$n6abricaci$n 8nte#rada"ob$tica

    En medio de comunicaci$n en sistemas mono procesadores el procesado sueleser el único recurso a planificar* los mensajes tienen un plazo desde que sesolicita su envi$ hasta que se recibe.

  • 8/19/2019 Apuntes de Sistemas Operativos II

    19/51

    !os procesadores tienen recursos ilimitados* replicaci$n de tareas* requisitosde utilizaci$n de recursos espec(ficos y distribuci$n #eo#r-fica. Utilizansincronizaci$n de relojes y tolerancia a fallos.

    UNIDAD IV. MEMORIA COMPARTIDA DISTRIBUIDA. MCD!

    Sinc"oni#ación de "elo$es

    Los algoritmos distri#uidos tienen las siguientes propiedades*

    4. La in!ormación relevante está repartida entre m)ltiples máquinas5. Los procesos toman decisiones #asados )nicamente en in!ormación local6. Es preciso evitar un )nico punto de !allo7. 8o e3iste un relo& com)n

    Los primeros tres aspectos dicen que es inacepta#le recoger toda la in!ormación enun )nico punto. El )ltimo aspecto es que a2ora nos interesa. En un sistemacentraliado, el tiempo se solicita mediante una llamada al sistema, como la llamada'8(9 time. Si un proceso A solicita el tiempo poco después lo solicita el proceso B,

  • 8/19/2019 Apuntes de Sistemas Operativos II

    20/51

    B o#tiene un tiempo posterior al de A, a que am#os consultan el mismo relo&. En unsistema distri#uido, en que A  B corren en máquinas distintas consultan distintosrelo&es, si el relo& de A es ligeramente más lento que el de :, A puede conseguir untiempo posterior al de B a pesar de 2a#ero solicitado antes.

    ;eamos un e&emplo en un sistema distri#uido en el que esta anomalía tiene susconsecuencias. Supongamos que el editor corre en la máquina A  el compilador en lamáquina B. A contendrá programas con e3tensión .c B programas con e3tensión .o.Supongamos que disponemos del !ic2ero pepo.c en  A  de pepo.o en B.Supongamos que el relo& de  A es más lento que el de B  que tras la creación depepo.o, pepo.c es rápidamente modi!icado, tal como indica la !igura 6.4.

    %i&. '.(  0uando cada máquina tiene su propio relo& un evento posterior puede ser etiquetado como anterior.

    pepo.c, aunque 2a sido creado en un instante posterior en términos de tiempoa#soluto, es marcado por el sistema de !ic2eros de la máquina del editor como creadoen el instante 5476. El o#&eto pepo.o, aunque es más antiguo, 2a sido marcado por elsistema de !ic2eros de la máquina del compilador como creado en el instante 5477$más antiguo%. El e!ecto glo#al es que un proceso ma"e de carácter distri#uido nodetecta que el !uente 2a sido modi!icado porque registra un instante de modi!icaciónanterior al o#&eto. 0omo consecuencia, no se actualia el o#&eto los cam#ios en el!uente no se traducen en un nuevo e&ecuta#le, lo que provocará el desconcierto delprogramador* ma"e no !unciona #ien, pensará, cuando el pro#lema reside en elsistema operativo, más concretamente en el registro correcto del tiempo de loseventos en el sistema, como la creación de un !ic2ero. La cuestión que surge es ?@ $Les?@B%, mostró que la sincroniación de relo&es paraproducir un patrón de tiempo com)n a más de una máquina es posi#le presentó unalgoritmo para lograrlo. Lamport a!irmó que no es necesario disponer de un registrocom)n a#soluto del tiempo cuando los procesos no interact)an , cuando lo 2acen,tampoco es necesario en la maoría de las aplicaciones. Para muc2os casos, loimporante es que los procesos que interact)an se pongan de acuerdo en el tiempoen que los eventos ocurren. En el e&emplo de ma"e, lo importante es que pepo.c seamás antiguo que pepo.o, no el instante preciso de creación de am#os. Así, para

    ciertas clases de algoritmos, lo que importa es la consistencia interna de los relo&es,no la e3actitud particular de cada uno de ellos. Para estos algoritmos, es

  • 8/19/2019 Apuntes de Sistemas Operativos II

    21/51

    conveniente 2a#lar de relojes lógicos. 0uando el o#&etivo es mantener todos losrelo&es dentro de un margen error dado respecto al tiempo a#soluto, es conveniente2a#lar de relojes físicos.

    Lamport de!inió la relación ocurre-antes, a →   b, leída Ca ocurre antes que #C,

    signi!ica que a ocurre antes que b  todos los procesos están de acuerdo en ello.Lamport de!inió esta relación como sigue*

    (. Si los eventos a  b  ocurren en el mismo proceso a ocurre antes que b,

    entonces a →  b.

    ). Si a es el evento que consiste en el envío de un mensa&e a otro proceso b esel evento que consiste en la recepción del mensa&e en otro proceso, entonces

    a →  b.

    '. Si a →  b  b →  c , entonces b →  c .

    %i&. '.)  Eventos de tres procesos.

    Por otra parte, Cocurre1antesC no es una relación de orden total, a que 2a eventosque no están relacionados entre sí. A estos eventos se les denomina concurrentes.

    La relación D→ Dse ilustra en la !igura 6.5 con tres procesos. En ella podemos ver que

    a →  b, a que los eventos ocurren en este orden en el proceso  p1. (gualmente c →  d 

    e →   f . Por otra parte b →  c , a que son los eventos de emisión recepción del

    mensa&e m1. Por la misma raón, d →  f . a  e son eventos concurrentes.

  • 8/19/2019 Apuntes de Sistemas Operativos II

    22/51

    ). a) 0uando un proceso p envía un mensa&e m, el mensa&e transporta un valor t que es el valor del relo& lógico C  p, su etiqueta temporal.

    b) 0uando el mensa&e es reci#ido por un proceso q, entonces q  calcula Cq !ma#(Cq, t)  aplica el paso anterior antes de etiquetar al evento dereci#ir el mensa&e m.

    La !igura 6.6 ilustra cómo el algoritmo de Lamport etiqueta los eventos de la !igura

    6.5. 0omo puede apreciarse, si a →   b, entonces C(a) $ C(b),  aunque a #

    pertenecan a procesos distintos. 

    Relo$es ló&icos total*ente o"denadosSi ordenamos los eventos por el tiempo lógico en el que ocurren, este criteriointroduce un orden parcial en el con&unto de eventos. Parcial porque el relo& lógicono relaciona los eventos a  e de la !igura 6.6 a que son eventos concurrentes pueden tomar el mismo valor. Para des2acer el empate podemos aadir una comadecimal el identi!icador de proceso al que pertenece el evento. endríamos el

    evento 4,4 en p1 4,6 en p%, llegando a una relación de orden total en el con&untode eventos. La !igura 6.7 muestra una aplicación del algoritmo de Lamport parasincroniar los relo&es !ísicos de tres máquinas di!erentes.

    %i&. '.'  Etiquetas temporales lógicas para los eventos de la !igura 6.5.

  • 8/19/2019 Apuntes de Sistemas Operativos II

    23/51

     Relo$es +,sicos

    El día solar es el tiempo que transcurre desde que el sol alcana su punto másalto en el 2orionte 2asta que vuelve a alcanarlo. 'n día tiene 57 2oras, de modoque de!inimos el segundo solar como 4/$57GHGH% I 4/@G7HH de un día solar. En4>7H se descu#rió que la duración del día no era constante. Estudios actuales so#re

    coral antiguo 2an llevado a los geólogos a pensar que 2ace 6HH millones de aos2a#ía 7HH días en un ao. 8o es que el ao !uera más largo. Es que los días eranmás cortos. La tierra rota#a so#re sí misma más rápido que en la actualidad. Además de esta tendencia a largo plao, la tierra e3perimenta pertur#acionesesporádicas en su tiempo de rotación de#ido a las tur#ulencias de su n)cleo de2ierro. Estas oscilaciones llevaron a los astrónomos a determinar la duración delsegundo como la media de un gran n)mero de ellas. ividida esta cantidad por @G7HH o#tenemos el segundo solar medio.

    0on la invención del relo& atómico en 4>7@, la medida del tiempo pasó de ser responsa#ilidad de los astrónomos a ser responsa#ilidad de los !ísicos. e!inieron el

    segundo atómico como el tiempo que tarda el isótopo 466 del cesio en realiar >4>5G64??H transiciones. Este n)mero de transiciones !ue escogido, por supuesto,porque son las que iguala#an la duración del segundo solar medio el día que elsegundo atómico !ue introducido. El segundo atómico es más preciso que elsegundo solar, pero no es a#solutamente preciso. En el mundo e3isten actualmenteunos JH la#oratorios que disponen de un relo& de 4660s. 0ada uno de ellos registra eln)mero de tic"s acumulados desde las cero 2oras del primero de enero de 4>J@. EnParís e3iste una organiación que se llama la K!icina (nternacional de la ora quepromedia los tic"s de estos JH la#oratorios. Al resultado lo divide por >4>5G64??Hpara o#tener el iempo Atómico (nternacional $A(%. El A( es e3trordinariamenteesta#le está a disposición de cualquiera que lo solicite. Sin em#argo, como el

    periodo de rotación de la tierra está aumentando continuamente, el segundo solar aumenta en la misma medida. Así, un día solar, que son @G7HH segundos solares,tiene a2ora @G7HH.HH6 segundos A(.

    'sar el tiempo A( es más e3acto, pero llegará un momento que el mediodía no seráa las 45, sino a las doce cuarto. Los segundos A( duran menos que los segundossolares. Para ello, cuando un relo& solar 2a perdido H.@ segundos respecto al tiempoA(, por e&emplo, el tiempo es de 7.H A( de 6.5 solar, se e3tingue ese segundosolar para que pase directamente de 6.5 a 7.H mantener la sincronía con el tiempo

    H%i&. '.-  a% res procesos, cada uno con su propio relo&, cada uno de ellos con di!erente !recuencia. #% Elalgoritmo de Lamport corrige los relo&es.

  • 8/19/2019 Apuntes de Sistemas Operativos II

    24/51

    A(. Esto da una medida del tiempo con intervalos irregulares, llamado el iempo'niversal 0oordinado $'0%, que es la #ase actual del registro del tiempo. areemplaado al antiguo estándar de la medida del tiempo, el MN $MreenOic2Neridian ime%, que es tiempo solar.

    Para proporcionar el tiempo '0, una institución de Estados 'nidos, el (nstituto8acional del iempo Estándar $8(S%, mantiene una estación de radio de onda cortaque radia un pulso cada ve que comiena un segundo '0. La precisión de estaestación es de un milisegundo, pero el ruido atmos!érico eleva este error en lapráctica a 4H milisegundos. En (nglaterra otros países e3isten estaciones similares.am#ién satélites proporcionan el tiempo '0, lo 2acen con una precisión de H.Jmilisegundos, veinte veces maor que las estaciones de radio de onda corta. Elcosto de este servicio varía, seg)n su e3actitud, entre 4HH.HHH pts varios millonesde pesetas seg)n su precisión. a un medio más #arato, que es o#tenerlo del 8(Spor telé!ono. Este es el método más ine3acto, a que 2a que corregir el retraso dela seal en la línea el modem.

    0oncluendo, podemos decir que el tiempo a#soluto puede ser proporcionado alcomputador, pero a un precio alto siempre con un margen de error nodesprecia#le.Nas in!ormación* 2ttp*//OOO.cstv.to.cnr.it/toi/u"/utctime.2tml

      Al&o"it*os de sinc"oni#ación de "elo$es

    La medida del tiempo en las máquinas se lleva a ca#o mediante un oscilador decristal. 'n c&ip denominado temporiador reci#e la seal periódica del oscilador einterrumpe la '0P cada cierto n)mero de oscilaciones, previamente programado.;alores típicos oscilan entre JH 4HH interrupciones por segundo a la '0P. Por 

    preciso que sea un oscilador a cristal, siempre e3iste un margen de error queconlleva la discrepancia de la medida del tiempo de dos máquinas di!erentes. Enuna red local, por e&emplo, ninguna máquina tiene el mismo registro del tiempo. Paradisminuir la discrepancia entre relo&es, se puede tener acceso a una estación deonda corta de las a citadas. El caso general, sin em#argo, es que este servicio noestá disponi#le, el pro#lema que se plantea es, dado un con&unto de máquinas,mantener sus relo&es lo más cercanos que sea posi#le mediante so!tOare.

    Se 2an propuesto para ello muc2os algoritmos, todos ellos con el mismo principio,que a2ora descri#imos. Se supone que cada máquina dispone de un temporiador que interrumpe a la '0P '  veces por segundo. El n)cleo dispone de una varia#le

    que es incrementada en la unidad por la rutina de interrupción del relo&. Esta varia#leregistra el n)mero de tic"s reci#idos desde la puesta en marc2a del sistema, por e&emplo. Esta varia#le se considera el relo& del sistema vamos a denominar el valor que almacena como C . 0uando el tiempo es t , el tiempo registrado por la máquina pes C  p(t). (dealmente C  p(t) de#iera ser igual a t , para todo  p  todo t . En otraspala#ras, dCdt  de#iera ser idealmente 4. eóricamente, un temporiador con '!GHinterrumpe al relo& sesenta veces por segundo. En una 2ora interrumpe GHGHGH I54GHHH veces. En la práctica, se puede contar este n)mero de interrupciones descu#rir que no son e3actamente esas, sino que el dato varía entre 54J>>@ 54GHH5 tic"s en una 2ora, lo que representa un error relativo de apro3imadamente4H1J. La precisión de un temporiador viene dada por su tasa de deria m*#ima  ρ H,

    de modo que si

  • 8/19/2019 Apuntes de Sistemas Operativos II

    25/51

    1-  dC 

    dt 1+ ρ ρ ≤ ≤

    se dice que el relo& opera dentro de sus especi!icaciones.

    os relo&es iguales dentro de sus especi!icaciones pueden generar una dire!erencia

    má3ima en su medida del tiempo cuando la deriva toma en ellos el valor má3imo de signo opuesto. Así, partiendo am#os de cero, en un intervalo ∆t  , el relo& uno

    toma un valor de 1C   ( t) = (1 - ) t  ∆ ∆ ρ    el relo& dos un valor de 2C   ( t) = (1+ ) t  ∆ ∆ ρ  H,

    o#teniendo una di!erencia má3ima en la medida de 2 t  ρ ∆ H. Si los diseadores delsistema desean que nunca dos relo&es muestren di!erencias maores a unaconstante δ  H, 2 t

  • 8/19/2019 Apuntes de Sistemas Operativos II

    26/51

    retorno de la petición de tiempo realiar una media. Se aconse&a descartar losvalores que superan un um#ral dado para evitar introducir en la estimación réplicaso#tenidas en momentos de congestión.

      El al&o"it*o de Be"kele

    Es el adoptado por '8(9 :S. Frente al algoritmo de 0ristian, #asado en unservidor pasivo que responde a las peticiones de clientes, el algoritmo de :er"eletoma una apro3imación activa. Es )til cuando no se dispone del tiempo '0, vía unreceptor de onda u otro. 'n demonio '8(9 periódicamente realia un escrutinio delas máquinas, aquella en la que reside incluida, a !in de o#tener el valor de susrelo&es. -ealia una media de todos ellos la comunica a todas la máquinas paraque avancen o retrasen sus relo&es.

      Al&o"it*os de p"o*ediado

    Los algoritmos anteriores tienen la desventa&a de su apro3imación centraliada ,por lo tanto, tienen un )nico punto de !allo. Presentamos a continuación un algoritmodescentraliado. Las máquinas dividen el tiempo en intervalos de longitud / , demodo que el comieno del i 1ésimo intervalo comiena en el instante    "i/   seprolonga 2asta el instante   "(i"1)/ , donde    es un instante pasado previamenteacordado. 0uando comiena uno de estos intervalos, cada máquina realia unadi!usión del tiempo seg)n su relo&. e#ido a la deri#a particular de cada relo&, dosdi!usiones no ocurren simultáneamente. espués de la di!usión de su tiempo, cadamáquina esta#lece un temporiador espera el mensa&e correspondiente al#roadcast del resto de las máquinas en un intervalo 0. 0uando 2an llegado todos losmesa&es, un algoritmo de promediado proporciona el nuevo tiempo. El algoritmo mássimple es realiar la media aritmética de los tiempos. 'na variación es descartar previamente los valores e3tremos a !in de protegernos !rente a relo&es de!ectuosos.

    Ktra variación es estimar el tiempo de propagación de cada mensa&e para aadirlo altiempo que el mensa&e transporta. Esta estimación puede llevarse a ca#o a partir deun conocimiento previo de la topología de la red o realiando mediciones del tiempode retorno de algunos mensa&es de prue#a.

      El e*pleo de la sinc"oni#ación de "elo$es

    asta 2ace poco tiempo no se 2a presentado la necesidad de sincroniar los relo&esde máquinas en una red de área anc2a. A2ora es posi#le sincroniar relo&esdistri#uidos a lo largo de toda la (nternet en márgenes de precisión de unos pocosmilisegundos respecto al tiempo '0. La disponi#ilidad de algoritmos de #a&o costo

    para mantener la sincroniación de relo&es 2a incitado el desarrollo de algoritmosdistri#uidos que e3plotan esta circunstancia disminuendo el n)mero de mensa&esimplicados en las versiones que no la e3plotan. A continuación ilustramos el empleode la sincroniación de relo&es en el pro#lema de la consistencia de la cac2é de unsistema de !ic2eros distri#uidos. La re!erencia Lis>6B contiene más e&emplos.

    'n e&emplo de la utilidad de algoritmos #asados en el uso de relo&es sincroniadosestá relacionado con la consistencia de la cac2e de disco en un sistema de !ic2erosdistri#uido. -aones de prestaciones e3igen una cac2é en el cliente. os clientesoperando so#re un mismo !ic2ero mantienen cada uno de ellos una copia del !ic2eroen su propia máquina. La inconsistencia de las cac2és surge cuando uno de los

    clientes trata de escri#ir en el !ic2ero. radicionalmente, cuando un cliente desea#aescri#ir un !ic2ero de su cac2é solicita#a permiso al servidor. (nmediatamente, el

  • 8/19/2019 Apuntes de Sistemas Operativos II

    27/51

    servidor está o#ligado a solicitar permiso al proceso o procesos que están leendodel !ic2ero para que de&en de 2acerlo $ lo descarten de la cac2é%, esperar a quetodos los permisos lleguen antes de conceder el permiso de escritura, lo queintroduce una !uerte so#recarga en tiempo anc2o de #anda en la red.

    La introducción de los relo&es sincroniados agilia este tipo de protocolos de lossistemas de !ic2eros distri#uidos. La idea #ásica es que cuando un cliente solicitaun !ic2ero, el servidor le otorga una concesión  en la que detalla el  tiempo dee#piración  de la misma  . 0omo cliente servidor tienen los tiempossincroniados, el plao es el mismo  en am#os. Nientras dura la concesión, elcliente tiene la garantía de que opera so#re el !ic2ero de !orma consistente. 'ncliente no necesita comunicar al servidor que 2a terminado la operación de lectura.

    Si un cliente solicita la escritura de un !ic2ero, el servidor de#e pedir a los clienteslectores la terminación prematura de la concesión.

  • 8/19/2019 Apuntes de Sistemas Operativos II

    28/51

    Supongamos que el proceso 6 de la !igura desea entrar en la misma región críticaantes de que el proceso 5 salga. La petición llega al coordinador, que sa#iendo queel proceso 5 está dentro, no envía réplica alguna al proceso 6, que permanece#loqueado esperándola 1tam#ién se puede implementar la denegación mediante un

    mensa&e1, pero lo registra en la cola de la región como solicitante. 0uando elproceso 5 sale de la región crítica lo comunica al coordinador mediante un mensa&ede li#eración. El coordinador procesa el mensa&e determinando si e3iste en la colade la región recién li#erada alg)n proceso esperando. En nuestro caso,e!ectivamente lo 2a. Es el proceso 6, que por !in reci#e el mensa&e de concesión deentrada.

    Este algoritmo garantia la e3clusión mutua. Primero, el coordinador sólo permiteentrar en la misma a un proceso. Segundo, es &usto, a que las peticiones sonatendidas en el orden en que llegan. ercero, ning)n proceso esperainde!inidamente por la entrada. El esquema es !ácil de implementar es e!iciente, a

    que requiere tres mensa&es para usar una región crítica. El de!ecto principal delalgoritmo, como todos los algoritmos centraliados es la e3istencia de un )nicopunto de !allo.

    El al&o"it*o dist"i1/ido de Rica"t A&"a2ala

    -icart AgraOala presentaron en 4>@4 un algoritmo de e3clusión mutua distri#uido.0onsideramos un con&unto de 8 procesos con una esctructura sencilla en la quealternan los cálculos !uera de la región crítica dentro de la región crítica. Lascondiciones del algoritmo son las siguientes*

    (. Los procesos se comunican mediante mensa&es de capacidad no nula.

    ). Los mensa&es pueden llegar a un proceso en cualquier punto de la e&ecución,#ien dentro o #ien !uera de la región crítica. e cualquier modo unainterrupción, e3cepción, mane&ador de seal, etc, se encarga de procesar lallegada del mensa&e.

    '. Se asume que la comunicación es !ia#le los mensa&es entre dos procesosson entregados en el orden en el que !ueron enviados.

    -. Es preciso una relación de orden total entre los eventos de todo el sistema.

    0onsideramos que para que un proceso entre en la región crítica de#en tener el permiso todos cada uno del resto de los procesos, permiso que solicita enviandoun mensa&e a todos ellos, vía multicasting, di!usión o uno a uno. El mensa&e acarreauna etiqueta temporal que es el valor del relo& lógico local correspondiente a suenvío. 0uando un proceso reci#e un mensa&e de solicitud de permiso, la acción quetoma el proceso receptor es la siguiente*

    (. Si el receptor no está en su región crítica no desea entrar en ella, se dice queestá en situación de permiso concedido $0K80E(K% envíainmediatamente un mensa&e de réplica al proceso que solitó el permiso.

    ). Si el receptor está e&ecutando en su región crítica, se dice que tiene el permiso$KK-MAK%, no envía réplica al emisor encola la petición. 0omo vemos, siun proceso no contesta signi!ica que no concede el permiso de entrada.

    '. Si el receptor desea tam#ién entrar en la región crítica, pero a)n no lo 2a

    conseguido se dice que está en estado de solicitud $SKL(0(A8K%, comparael relo& del mensa&e entrante con el del mensa&e que 2a enviado al resto de los

  • 8/19/2019 Apuntes de Sistemas Operativos II

    29/51

    procesos para solicitar el permiso. El más #a&o gana. Si gana el emisor delmensa&e entrante, el receptor envía a este la réplica. Si gana el receptor,encola el mensa&e no envía réplica.

    La !igura 6.G descri#e el algoritmo más !ormalmente. Si el grupo de procesos

    interesados en la región crítica tiene n procesos, o#tener el permiso lleva (n-1)mensa&es, n-1  para solicitarlo otros tantos para concederlo. En el algoritmocentraliado anterior son necesarios dos mensa&es )nicamente. 'no para solicitarlo otro para concederlo, algo que lo 2ace muc2o más e!iciente que el algoritmo de-icart AgraOala. Por otra parte, en este )ltimo todo proceso está involucrado entodas las solicitudes de entrada en la región crítica, para las que de#e aportar ciclosde '0P, lo cual resta a)n más e!iciencia al algoritmo de -icart AgraOala. Elalgoritmo reemplaa un punto de !allo del algoritmo anterior por n puntos de !allo. Siun proceso termina inesperadamente, no responderá a ninguna solicitud de entrada,por lo que #loqueará al resto, a que su silencio es interpretado por el resto comoque la región crítica está ocupada. a que la pro#a#ilidad de que uno de los nprocesos caiga es n veces superior a que caiga el servidor del algoritmo anterior, esalgoritmo de -icart AgraOala es n veces menos ro#usto que el algoritmo delservidor.

    En con&unto, el algoritmo es más lento, más complicado menos ro#usto que elalgoritmo centraliado, de modo que

  • 8/19/2019 Apuntes de Sistemas Operativos II

    30/51

    la dirección del proceso al que pasa el testigo. 0uando un proceso reci#e el testigo,si no está interesado en la región crítica, pasa es testigo a su vecino. Si necesitaentrar en la región crítica, espera #loqueado la llegada del testigo, que es retenido no es entregado al vecino sino cuando a#andona la región crítica.

    Para o#tener el testigo, como má3imo se emplean n-1 mensa&es. 'na desventa&a esque los mensa&es se envían continuamente aun en el caso de que ning)n procesoreclame el testigo. Ktra es que este algoritmo tiene n puntos de !allo, si #ien larecuperación es más !ácil que en los casos anteriores. Si cada ve que se reci#e eltestigo se envía un mensa&e de con!irmación, es sencillo detectar la caída de unproceso retirarlo del anillo.

      Al&o"it*os de elección

    'na elección es un procedimiento cua !unción es elegir un proceso en un grupoa !in de que este desempee un papel determinado, como puede ser centraliar peticiones de entrada en una región crítica, a modo de coordinador. ;amos aconsiderar que los procesos implicados en la elección son idénticos, sin que ningunode ellos tenga una característica destaca#le como para ser el coordinador idóneo.0ada proceso tiene un identi!icador )nico como puede ser su dirección de red. Engeneral, los algoritmos de elección intentan localiar al proceso con el identi!icador más alto para 2acerlo coordinador. Para enviar los mensa&es, los procesosnecesitan conocer las direcciones de red de todo el grupo de procesos en #usca decoordinador, de modo que la elección a estaría 2ec2a de antemano. El pro#lema esque los procesos desconocen cuáles de ellos están a)n activos cuáles no. Elrequisito que de#e cumplir una elección de coordinador es que esta sea )nica. Losalgoritmos di!ieren unos de otros en el modo de conseguirlo.

    El al&o"it*o del *atónEste algoritmo data de 4>@5 es de#ido a Marcía1Nolina. 0uando un proceso seaperci#e de que el coordinador no responde a sus mensa&es, inicia unaconvocatoria de elección. 'na elección se desarrolla como sigue*

    (. 2   envía un mensa&e de tipo ELE00(K8 a todos los procesos conidenti!icadores más altos.

    ). Si ninguno de ellos responde, 2   gana la elección se convierte en elcoordinador.

    '. En cuanto 2  reci#e el mensa&e de respuesta de alguno de ellos, renuncia a ser el coordinador su tra#a&o 2a terminado. 0ada uno de estos procesos, trasenviar el mensa&e, convocan una elección

    En cualquier momento, un proceso puede reci#ir un mensa&e ELE0(K8 de unode los procesos con identi!icador in!erior. La rutina que sirve el mensa&e envía unmensa&e de con!irmación toma el control iniciando una elección, a menos que aesté cele#rando una. Llega un momento en que todos los procesos renuncian uno de ellos se convierte en el nuevo coordinador, 2ec2o que anuncia al resto delos procesos mediante el envío de un mensa&e.

    Si un proceso que inicialmente esta#a caído se recupera, inicia una elección. Si esel de identi!icador más alto, ganará la elección asumirá el papel de coordinador.

    Siempre gana el proceso de identi!icador más grande, de a2í el nom#re delalgoritmo.

  • 8/19/2019 Apuntes de Sistemas Operativos II

    31/51

    En la !igura 6.? vemos el desarrollo de una elección en un grupo de oc2o procesosnumerados del H al ?, siendo este )ltimo el coordinador que, en un momento dado,de&a de estar operativo. El proceso 7 es el primero en darse cuenta de que elcoordinador no responde convoca una elección, enviando un mensa&e de tipo

    ELE00(K8 a los procesos J, G ?, los dos primeros con!irmando el mensa&e. Encuanto el proceso 7 reci#e la con!irmación del proceso J da su tra#a&o por terminado. Sa#e que él no será el coordinador, sino uno de los superiores que 2ancon!irmado. Los procesos J G convocan elecciones de !orma más o menossimultánea. El proceso cinco reci#e con!irmación del G renuncia. El proceso G noreci#e con!irmación alguna, de modo que se erige en ganador, algo que anuncia alresto enviándoles un mensa&e 0KK-(8AK-. El proceso 7, que esta#aesperando el resultado de la elección 1aunque a lo casi lo conocía1 reanuda sutra#a&o, esta ve con un nuevo coordinador.

      T"ansacciones ató*icasEl paradigma cliente1servidor proporciona una #uena !orma de estructurar el sistema de desarrollar aplicaciones, pero necesita del concepto de transacción paracontrolar secuencias comple&as de interacciones entre el cliente el servidor. Sintransacciones no se puede conseguir que los sistemas distri#uidos !uncionen en lasaplicaciones típicas de la vida real. Los conceptos de transacciones !ueronconce#idos para poder a#ordar la comple&idad de las aplicaciones on1line ensistemas de un )nico procesador. Estos conceptos, a veteranos, son 2o díaincluso más críticos en la implementación con é3ito de sistemas masivamentedistri#uidos, que operan !allan en !ormas muc2o más comple&as.

    Los sistemas de proceso de trasacciones !ueron pioneros en conceptos decomputación distri#uida computación tolerante a !allos. Ellos introdu&eron los datosdistri#uidos en aras de la !ia#ilidad, disponi#ilidad prestaciones. Ellos desarrollaronel almacenamiento tolerante a !allos el proceso tolerante a !allos a !in de garantiar la disponi#ilidad de datos aplicaciones. !ueron ellos quienes desarrollaron elmodelo cliente1servidor las llamadas a procedimiento remoto para la computacióndistri#uida. , lo más importante, las propiedades A0( de las transacciones 2anemergido como los conceptos uni!icadores de la computación distri#uida $Mra>6B%.0omo puede apreciarse, no es posi#le o#viar el tópico de las transaccionesatómicas en un curso so#re sistemas distri#uidos. En esta sección nos ocupamos deellas, tratando algunos de sus m)ltiples aspectos.

  • 8/19/2019 Apuntes de Sistemas Operativos II

    32/51

    %i&. '.4  'n e&emplo del algoritmo del matón.

     Int"od/cción a las t"ansacciones ató*icas

    Pensemos en una primitiva de sincroniación como un semá!oro. Su#ir o #a&ar unsemá!orno es una operación de mu #a&o nivel que o#liga al programador a tratar losdetalles de la e3clusión mutua, la gestión de la región crítica, la recuperación encaso de !allo, etc, cuando opera so#re datos compartidos. Lo que nos gustaría en unentorno de datos compartidos con componentes suscepti#les de !allo es disponer de primitivas de manipulación de datos de más alto nivel que permitan alprogramador*

    4. 0oncentrarse en el pro#lema, ignorando que los datos son accedidos de !ormaconcurrente

    5. (gnorar que un !allo puede de&ar los datos en un estado inconsistente.

    Estas primitivas se utilian ampliamente en los sistemas distri#uidos $su !inalidad escompartir datos recursos tienen más posi#ilidades de !allo% se llamantransacciones atómicas.

    El uso de las transacciones se remonta a los aos GH cuando los datos sealmacena#an en cintas magnéticas. 'na #ase de datos residía en una cinta. que sellama#a el D!ic2ero maestroU. Las actualiaciones residían en una o más cintas $por e&emplo las ventas diarias o semanales% llamadas D!ic2eros de movimientosU.Naestro movimientos se monta#an en el computador para producir un nuevo!ic2ero maestro, que sería utiliado al día o a la semana siguiente con nuevos!ic2eros de movimientos. La venta&a de este método 1no reconocida su!icientementeen aquellos aos1 es que si el programa que lleva#a a ca#o las actualiaciones!alla#a, se producía una caída en la alimentación eléctirica, etc el proceso deactualiación se interrumpía, siempre se podía descartar la nueva cinta que 2a#ía

  • 8/19/2019 Apuntes de Sistemas Operativos II

    33/51

    quedado a medias volver so#re el maestro las actualiaciones para generar denuevo el !ic2ero maestro. Así, una actualiación del maestro procedía correctamente2asta el !inal o no se modi!ica#a en a#soluto. Esta propiedad era una transacciónatómica so#re el o#&eto D!ic2ero maestroU.

    0onsideremos a2ora una aplicación #ancaria que realia una retirada de unacantidad de una cuenta el ingreso correspondiente en otra cuenta distinta. Si elcomputador !alla después de la retirada antes del ingreso, el dinero se desvanece.Puede que am#as cuentas residan en distintas máquinas el !allo se de#a a unapérdida de la cone3ión tele!ónica entre am#as operaciones. Sería necesario agrupar am#as operaciones en una transacción atómica como en el e&emplo de la cintamagnética que garantiase que la operación se realia completamente o no serealia. La clave reside en volver al estado inicial de las cuentas si es que se 2aproducido un !allo en mitad del proceso. Esta 2a#ilidad es proporcionada por lastransacciones atómicas.

      Se"5icios t"ansaccionales0onviene e3aminar la aplicación #ancaria anterior en el conte3to del modelo cliente1servidor. 0uando decimos que un servidor porporciona operaciones atómicassigni!ica que el e!ecto de desarrollar una operación en #ene!icio del cliente*

    Está li#re de inter!erencia de las operaciones realiadas en #ene!icio de otrosclientes

    :ien la operación conclue completamente o no tiene e!ecto alguno si el servidor !alla.

    'na transacción entre un cliente un servidor es una secuencia de interacciones. El

    servidor #ancario proporciona las operaciones epósito, -etirada, :alance,otalSucursal. so#re una serie de o#&etos, en este caso cuentas*

    epósito$0uenta, 0antidad%

    eposita la cantidad 0antidad en la cuenta 0uenta

    -etirada$0uenta, 0antidad%

    -etira la cantidad 0antidad de la cuenta 0uenta

    :alance$0uenta% → 0antidad

    evuelve el #alance de la cuenta 0uenta

    otalSucursal → otal

    evuelve la suma de todos los #alances

    0onsideremos un cliente que quiere realiar una serie de operaciones so#re lascuentas A, :, 0. La primera operación trans!iere 4HH pesetas de A a :. La segundatrans!iere 5HH pesetas de 0 a :*

    ransacción* *-etirada$A, 4HH%Qepósito$:, 4HH%Q-etirada$0, 5HH%Qepósito$:, 5HH%Q

    Endransacción$%

  • 8/19/2019 Apuntes de Sistemas Operativos II

    34/51

    0omo vemos, desde el punto de vista del cliente, una transacción es una secuenciade operaciones que se realian en un sólo paso, llevando al servidor de un estadoconsistente a otro. El cliente no es consciente de que otros clientes pueden realiar operaciones so#re las cuentas A :. A un servidor de este tipo se le conoce comoservidor transaccional o que provee de un sericio transaccional .

    En un servicio transaccional, el cliente, cuando inicia una transacción con el servidor,emite la petición A#rirransacción el servidor le devuelve un indenti!icador detransacción. Este indenti!icador será usado en las operaciones siguientes. El clientenoti!ica al servidor el !inal de la secuencia de operaciones mediante la primitiva0ierraransacción.

     A#rirransacción→ rans

     Arranca en el servidor una nueva transacción devuelve un )nicoidenti!icador de transacción o (, que será usado como parámetro en elresto de las operaciones de la transacción

    0errarransacción$rans%→ $0ompromiso, A#orto%ermina la transacción. Si devuelve un compromiso, indica que la transacciónse 2a comprometido $se 2a realiado en su totalidad%. Si devuelve un valor de A#orto, la transacción no se 2a realiado.

     A#ortarransacción$rans% A#orta la transacción

    La transacción puede a#ortar por varias raones. Entre ellas la naturalea misma dela transacción su desarrollo, con!lictos con otra transacción o el !allo de procesos omáquinas. La transacción puede ser a#ortada, tanto por el cliente como por el

    servidor. 0uando el servidor decide unilateralmente a#ortar la transacción en curso,la operación en curso devuelve un código de error como SE-;E-VA:K-.;eamos cual es el comportamiento de cliente servidor en presencia de !allos*

    %allo en el se"5ido" Si un servidor transaccional !alla inesperadamente, cuando vuelve a arrancar, a#ortatoda transacción no comprometida utiliando un procedimiento de recuperación pararestaurar los valores de los items de datos provisionales a los valores de!initivosproducidos por la transacción comprometida más recientemente previa al !allo.-eplica al cliente la operación solicitada con un valor SE-;E-VA:K-. Ktraposi#ilidad es que el cliente dé un plao de respuesta al servidor para cadaoperación emitida. Si el servidor se recupera dentro del plao, contin)a con latransacción en curso en lugar de a#ortarla.

    %allo en el clienteSi un cliente !alla inesperadamente en el desarrollo de una transacción, el servidor puede dar un plao de e3piración a la transacción. Si una nueva operación de latransacción no llega en ese plao el servidor a#orta la transacción e inicia elprocedimiento de recuperación.

      P"opiedades de las t"ansacciones ató*icas

    Las transacciones tienen cuatro propiedades !undamentales que se conocen por el acrónimo A0(* Atomicidad, Consistencia, serialia#ilidad o aislamiento$DIsolationU% Dura#ilidad.

  • 8/19/2019 Apuntes de Sistemas Operativos II

    35/51

      Ato*icidad

    La atomicidad  garantia que la transacción procede 2asta que se completa o no serealia en a#soluto. Si se completa, esto ocurre en una acción indivisi#le einstantánea. Nientras una transacción está en progreso, otros procesos, estén o no

    estén implicados en transacciones, no pueden ver los estados intermedios. Por e&emplo, supongamos una transacción que se ocupa de aadir octetos a un !ic2erode 4H octetos. Nientras la transacción esta en curso, otro proceso de#e ver un!ic2ero de sólo 4H #tes. 0uando la transacción se compromete, el !ic2eroinstantánemente aparece con su nuevo tamao. 'n sistema de !ic2eros quegarantia este comportamiento es un sistema de !ic2eros transaccional. La maoríade los sistemas de !ic2eros no son transaccionales.

      Consistencia

    La propiedad de la consistencia o#liga cumplir ciertos invariantes de los datos delservidor. Por e&emplo, como resultado de una trans!erencia interna, una sucursal

    #ancaria de#e mantener el mismo dinero en su saldo que antes de que latransacción se realice. La consistencia de los datos puede ser violada por el clientesi las operaciones que emite no son consistentes por el servidor si no dispone deun adecuado mecanismo de control de concurrencia. Si las operaciones de !ormanuna transacción que emite un cliente son consistentes, el servidor garantia que laconsistencia de los datos que comparte con otra transacción ' no va ser violadapor la concurrencia de las operaciones de '.

      Se"iali#a1ilidad

    La tercera propiedad dice que las transacciones de#en ser aisladas. Aislada signi!icatransacciones concurrentes en un servidor no inter!ieren las unas con las otras. 'na

    !orma de lograr el aislamiento es anular la concurrencia del servidor de modo quee&ecute las transacciones de !orma estrictamente secuencial, una tras otra. Elo#&etivo de un servidor, sin em#argo es ma3imiar sus prestaciones, algo que pasapor la atención concurrente al maor n)mero de transacciones posi#le. Esto signi!icaque si un servidor está atendiendo a dos o más transacciones simultáneamente queoperan so#re datos compartidos por los clientes 1un !ic2ero, por e&emplo1, el servidor transaccional de#e garantiar que el resultado !inal de estos datos es aquel queproduce una realiación estrictamente secuencial de las transacciones. Estarealiación, no o#stante, es decidida ar#itrariamente por el servidor. Supongamosque un servidor transaccional mantiene una varia#le  #  que es accedida por tresclientes. Las transacciones de los clientes en un momento dado son las siguientes*

    P"oceso (*

     A#rirransacciónQ3 *I HQ3 *I 3 W 4Q0errarransacciónQ

     P"oceso )*

     A#rirransacciónQ3 *I HQ3 *I 3 W 5Q

    0errarransacciónQ 

  • 8/19/2019 Apuntes de Sistemas Operativos II

    36/51

    P"oceso '*

     A#rirransacciónQ3 *I HQ3 *I 3 W 6Q0errarransacciónQ

    Las peticiones de las distintas transacciones llegan al servidor entrelaadas. A cadasecuencia de e&ecución de las peticiones por parte del servidor se le llama entrelaadoo plani!icación. Si el servidor es transaccional, no todas las plani!icaciones son válidas.En la ta#la que sigue vemos tres plani!icaciones posi#les, donde el tiempo transcurre2acia la derec2a*

    Plani!icación 4 3 *I HQ 3 *I 3 W4Q

      3 *I HQ 3 *I 3 W 5Q 3 *I HQ 3 *I 3 W 6Q legal

    Plani!icación 5 3 *I HQ 3 *I HQ 3 *I 3 W 4Q 3 *I 3 W 5Q 3 *I HQ 3 *I 3 W 6Q legal

    Plani!icación 6 3 *I HQ 3 *I HQ 3 *I 3 W 4Q 3 *I HQ 3 *I 3 W 5Q 3 *I 3 W 6Q ilegaltiempo  →

    En la plani!icación 4 las transacciones son e&ecutadas de !orma estrictamentesecuencial, el valor !inal es 6. ecimos que esta plani!icación 2a sido serialiada. Laplani!icación 5 no es serialiada, pero es legal por que, al !inal, #  toma un valor quepodría 2a#er sido alcanado por una plani!icación estrictamente secuencial. Laplani!icación 6 es ilegal, a que  #   termina con un valor de J, valor que imposi#lealcanar con una plani!icación serialiada.

    E6/i5alencia se"ial

    Si un entrelaado de dos o más transacciones tiene el mismo e!ecto so#re los datosque alguna e&ecución serialiada de dic2as transacciones decimos que el entrelaadoes serialmente equivalente. La plani!icación 5 de la !igura es serialmente equialente.

      D/"a1ilidad

    'na transacción de#e ser dura#le. Esta propiedad esta#lece que si un servidor compromete una transacción 1por e&emplo con una réplica a una primitiva0errarransacción$rans%que devuelva el valor 0ompromiso1, no importa lo queocurra, los cam#ios son a permanentes. 8ing)n !allo después del compromiso puededesacer los resultados o causar su desaparición, con la consiguiente con!usiónposterior en el cliente.

      Rec/pe"ación de t"ansacciones

  • 8/19/2019 Apuntes de Sistemas Operativos II

    37/51

    #loque 1. Sólo después de que el registro de la operación se 2a realiadocompletamente en el DlogU, se 2ace la modi!icación en el !ic2ero.

    3 *I HQ

    *I HQ tiempo →

     A#rirransacción$% Log Log Log3 *I 3 W 4Q 3 *I H/4 3 *I H/4 3 *I H/4

    *I W 5Q *I H/5 *I H/5

    3 *I Q 3 *I 4/7

    0errarransacción$%

    $a% $#% $c% $d%%i&. '.7  $a% 'na transacción. $#%1$d% El log antes de que cada operación sea e&ecutada.

    La !igura 6.@ muestra cómo !unciona el log. En $a% tenemos una transacción que usados varia#les compartidas $u otros o#&etos%, 3 e , am#as inicialiadas a cero. Para

    cada una de las operaciones de la transacción, el log es escrito antes de e&ecutar laoperación. El valor antiguo el nuevo se muestran separados por una #arra inclinada.El log va creciendo a medida que las operaciones de la transacción se vane&ecutando. Si todas las operaciones tienen é3ito, el servidor, al reci#ir la primitiva0errarransacción, escri#e en el log una marca que signi!ica que la transacción estácomprometida.

    Supongamos que el cliente a#orta la transacción mediante una primitiva A#ortarransacción$%, entonces el servidor restaura los valores de las varia#les 3 e apartir de la in!ormación del log. A esta acción se le denomina re#o#inado o rollbac3 . Ellog tam#ién se usa para recuperación del !allos en el servidor. Supongamos que el

    servidor de la !igura 6.@ se cae después de 2a#er escrito en el log la )ltimamodi!icación de 3 $7% pero antes de cam#iarla. 0uando el servidor arranca, e3amina ellog para determinar si alguna transacción esta#a en curso cuando se produ&o la caída.El servidor descu#re que la varia#le 3 tiene el valor 4 mientras que el log registra elvalor de 7. Está claro que la caída se produ&o antes de la actualiación e!ectiva de lavaria#le, de modo que se actualia a 7 espera la llegada de una nueva operacióndesde el cliente. Si, tras el rearranque, 3 vale 7, está igualmente claro que la caída seprodu&o después de la actualiación , por lo tanto, no necesita ser cam#iada. 'sandoel log, es posi#le ir 2acia adelante o 2acia atrás en la transacción.

      P"otocolos de co*p"o*iso ató*icoEs posi#le que los datos que mane&a una transacción estén distri#uidos en dos o

    más servidores. A estas transacciones se las denomina transacciones distribuidas.'no de los servidores act)a como coordinador   al resto se les considera tabajadores.La primitiva A#rirransacción$%, se envía al coordinador. El identi!icador de latransacción rans devuelto al cliente es utiliado por este para comunicar a lostra#a&adores que están involucrados en una transacción. Así, dos nuevas primitivasson necesarias en las transacciones distri#uidas*

     AadirServidor$rans, (d0oordinador%

    0on esta primitiva, el cliente in!orma al servidor tra#a&ador que está implicadoen la transacción rans quién es el coordinador en la transacción

    8uevoServidor$rans, (d0oordinador%

  • 8/19/2019 Apuntes de Sistemas Operativos II

    38/51

    (nvocada por un nuevo tra#a&ador que se incorpora a la transacción dirigida alcoordinador para in!ormarle de su participación. El coordinador toma nota enuna lista de tra#a&adores.

    0on estas primitivas, el coordinador conoce cuáles son los tra#a&adores los

    tra#a&adores conocen cuál es el coordinador, in!ormación que necesitarán cuandollegue el tiempo de realiar el compromiso de la transacción. urante el progreso dela transacción, no 2a comunicación entre el coordinador los tra#a&adores apartedel paso del mensa&e con el que cada tra#a&ador in!orma al coordinador cuando seincorpora a una transacción. La !igura 6.@ muestra el desarrollo de una transaccióndistri#uida.

    %i&. '.7  'na transacción #ancaria distri#uida.

    'no de los mecanismos que garantian la atomicidad de las transaccionesdistri#uidas es el denominado protocolo de compromiso en dos fases, que, aunque noes el )nico, sí es el más ampliamente utiliado. 0uando se utilia el protocolo decompromiso en dos !ases, la llamada 0errarransacción o A#ortarransacción por parte del cliente se dirige al coordinador. Es cuando se invoca 0errarransaccióncuando comiena el protocolo de compromiso en dos !ases. La !igura 6.> ilustra elprotocolo.

  • 8/19/2019 Apuntes de Sistemas Operativos II

    39/51

    %i&. '.8  El protocolo de compromiso en dos !ases

     Al reci#ir 0errarransacción, el coordinador escri#e una entrada en un log diciendoque el protocolo 2a comenado , a continuación, envía un mensa&e a los tra#a&adorescomunicándoles que su tra#a&o 2a terminado que se preparen para comprometerse.0uando el tra#a&ador reci#e el mensa&e, comprue#a que está preparado paracomprometerse, 2ace una anotación en su log envía un mensa&e al coordinador consu decisión. 0uando el coordinador 2a reci#ido todas las respuestas, sa#e sicomprometer la transacción o a#ortarla. Si todas las respuestas son !avora#les, latransacción se compromete. Si alguna de ellas no es !avora#le, la transacción sea#orta. a concluido la primera !ase. 0omprometida o a#ortada, la decisión acerca dela suerte de la transacción es escrita por el coordinador en su log envía un mensa&e

    a cada tra#a&ador in!ormándole so#re la decisión, que tam#ién envía al cliente como laréplica a 0errarransacción.

    Si el coordinador !alla después de 2a#er escrito la marca DPreparadoU en el log, tras elrearranque puede continuar donde lo de&ó. Si se cae después de 2a#er de 2a#er escrito en el log el resultado de la votación, tras el rearranque puede rein!ormar a lostra#a&adores de este.

    Si un tra#a&ador se cae antes de 2a#er replicado al primer mensa&e, el coordinador seguirá enviándole mensa&es 2asta que renuncie. Si !alla después, tras el rearranquedescu#re donde esta#a contin)a el tra#a&o.

      Cont"ol de conc/""encia

    En general, un servidor e&ecuta operaciones en #ene!icio de varios clientes cuasoperaciones pueden estar entrelaadas. Las transacciones atómicas permiten a losclientes especi!icar secuencias atómicas de operaciones. Estas secuencias deoperaciones de#en ser plani!icadas en el servidor de tal !orma que su e!ecto so#re losdatos compartidos sea serialmente equivalente. Estos métodos de plani!icación sonconocidos como métodos o algoritmos de control de concurrencia. Esta secciónvamos a e3aminar tres de ellos.

     

  • 8/19/2019 Apuntes de Sistemas Operativos II

    40/51

    Blo6/eo

    'n e&emplo simple de mecanismo de serialiación es el uso de #loqueose3clusivos. En este método, el servidor intenta #loquear cualquier dato que utilia latransacción en curso. Si el cliente pide el acceso a un dato que a 2a sido #loqueadopor otra transacción de un cliente 9, la petición es suspendida el cliente de#e

    esperar 2asta que el dato sea des#loqueado. La !igura 6.4H ilustra el uso de los#loqueos e3clusivos.

    T"ansacción T9 T"ansacción U9

    -etirada$A, 7%Q -etirada$0, 6%Qepósito$:, 7%Q epósito$:, 6%Q

    Kperaciones :loqueos Kperaciones :loqueos

     A#rirransacción#alance *I A.-ead$% #loquea A A.Escri#e$#alance17%

     A#rirransacción  #alance *I 0.-ead$% #loquea 0  0.Escri#e$#alance16%

    #alance *I :.-ead$% #loquea :#alance *I :.-ead$% espera por :

    :.Escri#e$#alanceW7%0ierraransacción es#loquea A,:

    #loquea :  :.Escri#e$#alance W 6%

    0ierraransacción des#loquea :, 0%i&. '.(:  os transacciones concurrentes con #loqueos e3clusivos

     Am#as transacciones comparten la cuenta #ancaria : el pro#lema es ma3imiar todo lo posi#le la concurrencia de estas transacciones mediante una plani!icaciónserialmente equivalente. La planicación de la !igura 2a sido realiada mediante elalgoritmo de bloqueo en dos fases , que consiste en que a una transacción no se lepermite #loquear un nuevo dato si es que a 2a 2a cedido un #loqueo. Esta políticaconduce a que cada transacción tiene una primera !ase denominada fase decrecimiento en la que adquiere todos los #loqueos so#re los datos que accede unasegunda !ase en la que li#era los #loqueos, denominada fase de reducción en queli#era los datos que de&a de utiliar. Así, en la !igura 6.4H vemos cómo la transacción #loquea la cuenta A accede a ella, después ' #loquea la cuenta 0 accede a ella #loquea : accede a ella. 0omo no va a utiliar más datos, la !ase de crecimiento

    de 2a terminado. En ese instante, ' se dispone a acceder a la cuenta : trata de#loquearla pero se encuentra con que ' a la 2a #loqueado, de modo que le tocaesperar 2asta que la li#ere cuando 2aa terminado con ella. Es entonces cuando la#loquea para sí termina su !ase de crecimiento. 0omo vemos, el algoritmo de#loqueo en dos !ases garantia la serialidad de una plani!icación proporciona ciertogrado de concurrencia. Por esta raón, es ampliamente utiliado.

    En algunos sistemas, la !ase de reducción no empiea 2asta que la transacción no 2aaca#ado, #ien por que se 2a comprometido o #ien por que 2a sido a#ortada. A estavariante se la denomina bloqueo en dos fases estricto. La !igura anterior lo utilia. Laventa&a es que toda transación siempre lee un valor escrito por una transacción

    comprometida. En el algoritmo no estricto, sería posi#le que en la !ase de reducciónde una transacción li#erásemos el #loqueo de un dato, antes de concluir la !ase de

  • 8/19/2019 Apuntes de Sistemas Operativos II

    41/51

    reducción, otra transacción ' accediese a ese dato. La !ase de reducción de contin)a, pero antes de concluir reci#e una operación de a#orto por parte del cliente.La transacción entera de#e ser desec2a re#o#inando el log. El pro#lema es que a2ora' tiene un dato erróneo 1denominado lectura sucia1, por lo que el servidor de#e tomar la decisión de a#ortar '. Este a#orto puede provocar nuevos a#ortos, etc. En suma se

    evitan los denominados abortos en cascada.

      Cont"ol de conc/""encia opti*ista

    Xung -o#inson $4>@4% identi!icaron un n)mero de desventa&as del mecanismo de#loqueo propusieron una apro3imación alternativa optimista a la serialiación detransacciones que evitan sus de!ectos. Entre los de!ectos del #loqueo identi!icaron lossiguientes*

    • El mantenimiento de los #loqueos representa una so#recarga para un servidor 

    transaccional. (ncluso las transacciones que sólo leen datos, como las #)squedas,

    que no tienen posi#ilidad de a!ectar a la integridad de los datos, necesitan #loqueode tipo lectura a !in de garantiar que el dato que se está leendo no es modi!icadopor otras transacciones al mismo tiempo.

    • El uso de los #loqueos, incluso el #loqueo en dos !ases, puede conducir a

    inter#loqueos. Si dos procesos tratan cada uno de adquirir el mismo par de#loqueos pero en orden opuesto, resulta el #loqueo. Los inter#loqueos se puedenprevenir utiliando técnicas como numerar los datos en un orden canónico eimponiendo a la transacción un acceso a los mismos en orden creciente. Frente ala evitación del inter#loqueo está el permitir que se producan , cuando estoocurre, detectarlo. Por e&emplo, se puede imponer a la transacción que nomantenga un #loqueo so#re un dato un tiempo maor de   segundos. 0uando esto

    ocurre, salta un temporiador asociado al dato, lo que indica que con altapro#a#ilidad se 2a producido un inter#loqueo.

    • Para evitar a#ortos en cascada, los #loqueos no pueden se cedidos 2asta el !inal

    de la transacción, lo que reduce sustancialmente el grado de concurrencia.

    La alternativa de Xung -o#inson es optimista porque está #asada en la o#servaciónde que, en la maoría de las veces la verosimilitud de que dos transacciones accedanal mismo dato es #a&a. A las transacciones se les permite continuar como si no2u#iese posi#ilidad de con!licto 2asta que el cliente emite la primitiva0errarransacción. Es a2ora, antes de comprometer la transacción cuando se eval)ala posi#ilidad de con!licto con otras transacciones. Si se detecta, la transacción no secompromete, sino que simplemente se a#orta para que el cliente la reinicie, esta vequiá con me&or suerte. 0ada transacción sigue tres !ases, la !ase de lectura, la !asede validación la !ase de escritura.

    4. %ase de lect/"a. El servicio de la transacción construe una copia de los datos quela transacción utilia. A esta copia se la denomina tam#ién ersión tentatia. Latransacción tra#a&a so#re la copia no so#re los !ic2eros reales. Las operacionesde lectura son realiadas inmediatamente, #ien desde la copia o, si a)n no se 2acreado la copia de un dato, desde la versión real más recientementecomprometida. Las operaciones de escritura registran los valores de los datos en lacopia. 0uando varias transacciones acceden al mismo dato, varias copias de ese

    dato coe3isten, una por transacción.

  • 8/19/2019 Apuntes de Sistemas Operativos II

    42/51

    5. %ase de 5alidación. 0uando se reci#e la operación 0ierraransacción latransacción se valida. A grandes rasgos, si los datos que utilia la transacción encurso 2an sido utiliados por otras transacciones desde que comenó latransacción en curso, la validación !alla. Si la validación tiene é3ito, la transacciónse compromete. En caso contrario, de#e utiliarse alguna !orma de resolución de

    con!licto #ien a#ortar la transacción actual o aquellas implicadas en el con!licto.6. %ase de esc"it/"a. Si la transacción es validada, todos los cam#ios registrados en

    la versión tentativa se 2acen permanentes. Las transacciones de sólo lecturapueden comprometerse inmediatamente, mientras que las de escritura tienen queesperar a ser gra#adas en disco.

      Eti6/etado te*po"al

    'na apro3imación completamente di!erente al control de concurrencia es asignar una etiqueta temporal   a la transacción en el cliente cuando este invoca A#rirransacción. 'sando el algoritmo de Lamport, podemos asegurar que lasetiquetas temporales son )nicas.

    El algoritmo de control de concurrencia #asado en etiquetas temporales utiliatam#ién el concepto de copias o versiones tentativas de los datos. Así, cadatransacción dispone de una copia para cada dato al que accede. Las operaciones deescritura se gra#an en versiones tentativas 2asta que el cliente emita la primitiva0errarransacción en que la transacción se compromete la versión tentativa del datose trans!orma en de!initiva. anto el dato como cada una de sus copias tienenasociados una etiqueta temporal de escritura. El dato tiene un con&unto de etiquetasde lectura que son resumidas por la etiqueta más reciente. 0uando una transacciónse compromete, la copia de cada dato accedido por la transacción se convierte en el

    dato la etiqueta temporal de cada copia se convierte en la etiqueta temporal del datocorrespondiente.

    En control de concurrencia por etiquetado temporal, el servidor comprue#a que cadaoperación de lectura o escritura so#re un dato es con!orme con las reglas de conflicto.'na operación de la transacción en curso & puede entrar en con!licto con operacionesprevias 2ec2as por otras transacciones i #ien comprometidas, #ien a)n nocomprometidas. Las reglas de con!licto son las siguientes.

    Re&la T $

    4. Escritura  & no de#e escri#ir un dato que 2a sido leído por alguna i más reciente

    $i T &%5. Escritura  & no de#e escri#ir un dato que 2a sido escrito por alguna i más reciente

    6. Lectura  & no de#e leer un dato que 2a sido escrito por una i más reciente

    Re&la de esc"it/"a. 0om#inando las reglas 4 5 tenemos la siguiente regla paradecidir si aceptar una operación de escritura de la transacción & so#re el dato .

    (F & ≥ má3ima etiqueta de lectura en A8

    & T etiqueta de escritura del dato comprometido E8 realia la operación de escritura en la copia de con etiqueta de escritura &ELSE A#orta la transacción & $ Es demasiado tarde %E8

  • 8/19/2019 Apuntes de Sistemas Operativos II

    43/51

    +ue signi!ica que* Si  & es más moderna que la transacción que creó el dato es másmoderna que la transacción que leó el dato por )ltima ve, entonces escri#e en lacopia. En caso contrario a#orta la transacción.

    Re&la de lect/"a. 'sando la regla 6 tenemos el siguiente procedimiento para decidir 

    si aceptar inmediatamente, esperar o rec2aar una operación de lectura de latransacción & so#re el dato .

    (F & T etiqueta de escritura del dato comprometido E8

    Sea s la copia 2ec2a por la transacción más reciente más antigua o igual que &(F s no e3isteE8 Lee de ELSE Esperar 2asta que la transacción que copió s se comprometa o a#orteE8

    ELSE A#orta &E8

    8ótese que*

    • Si & a 2a escrito en la copia su versión del dato, este será el usado.

    • 'na operación de lectura que llega demasiado pronto 1transacciones más antiguas

    que tam#ién usan a)n no se 2an comprometido1 espera a que la transacciónanterior se comprometa. Si la transacción anterior se llega a compometer, entoces& leerá de su versión comprometida. Si a#orta, & repetirá la operación de lectura$ seleccionará la versión previa%. Esta regla evita las lecturas sucias.

    • 'na lectura que llega demasiado tarde, es decir, otra transacción más reciente a

    2a escrito el dato se 2a comprometido, es a#ortada.

    0onviene repasar el mecanismo de escritura con un e&emplo. Supongamos que

    tenemos tres transacciones P, + - de etiquetas temporales EP,

     

    E+ 

    E-respectivamente. P e&ecutó 2ace muc2o tiempo utilió todos los !ic2eros que van autiliar + -. odas las etiquetas temporales de estos !ic2eros valen E P. + -comienan concurrentemente, siendo - más moderna que +, por lo que la etiquetatemporal E+

      E-. 0onsideremos una operación de + en la que accede a un !ic2eropara escri#ir. Las etiquetas de lectura escritura de este !ic2ero son -F RFrespectivamente, P se comprometió 2ace tiempo tenemos que -F I EP 

    RF I EP. Secumple la condición del (F de escritura se actualia   la copia de F con la escritura2ec2a por +. A2ora la etiqueta de la copia de F de la transacción +, RF+, es E+ $

    RF+ IE+%, pero la etiqueta del dato sigue siendo la anterior EP $

    RF I EP%.

    Supongamos a2ora que, después de que + escri#e so#re F, pero antes de que + secomprometa, - realia una operación de escritura so#re el !ic2ero F. 0omo el dato Fno se 2a tocado, las condiciones son las mismas que antes* en el (F de escritura secompara la etiqueta de la transacción la de la versión comprometida del dato, demodo que se actualia la copia de F de -. enemos a2ora dos copias de F, conetiquetas $RF+ I E+% $

    RF- I E-%, mientras la etiqueta de escritura del dato F es $RF I

    EP%. 0omo vemos, am#as transacciones operan concurentemente, despreocu