SISTEMAS OPERATIVOS DISTRIBUIDOS - Icesi

29
SISTEMAS OPERATIVOS DISTRIBUIDOS JOSE FERNANDO BASTIDAS C. HERBERT CARRILLO G. DAVID EDUARDO CIFUENTES C. MARIA FERNANDA SERRANO B. ANDRES VARGAS CABAS Alumnos del curso de Investigación de VIII Semestre de Ingeniería de Sistemas dellCESI OBJETIVOS - Dar un concepto claro de lo que es un Sistema Distribuido, tocando al- gunos temas técnicos importantes, pero explicándolos de manera que lleguen fácilmente a las personas. - Dar a conocer la importancia de apo- yar la investigación en este campo, que apenas está surgiendo, pero que promete mucho para el desarrollo tecnológico mundial. - Conocer la manera como cooperan y se sincronizan los procesos entre sí, en un Sistema Distribuido, así como la forma de implantar regiones críticas o asignar recursos. Conocer las características y com- ponentes de un Sistema Distribuido de archivos. - Exponer los puntos fundamentales en la Implantación de un Sistema Distribuido de archivos. - Lograr captar el interés de todas aquellas personas interesadas en consultar este libro, específicamen- te de quienes se encuentran de una u otra forma vinculados con el análi- sis y desarrollo del software, para que empiecen a interesarse en la creación de aplicaciones enfocadas hacia la distribución, las cuales de- ben conducir a que, en un futuro no muy lejano, podamos hablar de co- municaciones a nivel mundial, real- mente confiables, transparentes y eficientes. INTRODUCCION Desde hace algunos años el uso de los computadores ha cambiado enorme- mente, debido a la transición, desde los sistemas centralizados que constan de un único CPU, sus periféricos de me- moria y algunas terminales, hacia siste- mas de cómputo compuestos por un gran número de CPUs, conectados me- diante una red de alta velocidad, cono- cidos como Sistemas Distribuidos. Aun- que los sistemas operativos necesarios ¡,f"

Transcript of SISTEMAS OPERATIVOS DISTRIBUIDOS - Icesi

Page 1: SISTEMAS OPERATIVOS DISTRIBUIDOS - Icesi

SISTEMAS OPERATIVOS DISTRIBUIDOS

JOSE FERNANDO BASTIDAS C.HERBERT CARRILLO G.

DAVID EDUARDO CIFUENTES C.MARIA FERNANDA SERRANO B.

ANDRES VARGAS CABASAlumnos del curso de Investigación de VIII Semestre de Ingeniería de Sistemas dellCESI

OBJETIVOS

- Dar un concepto claro de lo que esun Sistema Distribuido, tocando al­gunos temas técnicos importantes,pero explicándolos de manera quelleguen fácilmente a las personas.

- Dar a conocer la importancia de apo­yar la investigación en este campo,que apenas está surgiendo, pero quepromete mucho para el desarrollotecnológico mundial.

- Conocer la manera como cooperany se sincronizan los procesos entresí, en un Sistema Distribuido, asícomo la forma de implantar regionescríticas o asignar recursos.

Conocer las características y com­ponentes de un Sistema Distribuidode archivos.

- Exponer los puntos fundamentalesen la Implantación de un SistemaDistribuido de archivos.

- Lograr captar el interés de todasaquellas personas interesadas en

consultar este libro, específicamen­te de quienes se encuentran de unau otra forma vinculados con el análi­sis y desarrollo del software, paraque empiecen a interesarse en lacreación de aplicaciones enfocadashacia la distribución, las cuales de­ben conducir a que, en un futuro nomuy lejano, podamos hablar de co­municaciones a nivel mundial, real­mente confiables, transparentes yeficientes.

INTRODUCCION

Desde hace algunos años el uso delos computadores ha cambiado enorme­mente, debido a la transición, desde lossistemas centralizados que constan deun único CPU, sus periféricos de me­moria y algunas terminales, hacia siste­mas de cómputo compuestos por ungran número de CPUs, conectados me­diante una red de alta velocidad, cono­cidos como Sistemas Distribuidos. Aun­que los sistemas operativos necesarios

¡,f"

Page 2: SISTEMAS OPERATIVOS DISTRIBUIDOS - Icesi

114 __-':._:1:1_:1:=:=::=:=::::::::::===::::/CES/

Ventajas de los Sistemas Distribuidos con respecto de los Centralizados.

:========================:~115/CES/

na su propio computador para que locont~ole. Al conectarse éstos, se tieneun Sistema Distribuido Industrial.

Otra ventaja potencial de un SistemaDistribuido sobre uno Centralizado esuna mayor confiabilidad. Al distribuir lacarga de trabajo en muchas máquinas,la falla de un chip descompondrá, a losumo, una máquina, pero el resto se­guirá intacto. Para el caso de aplicacio­nes críticas, como el control de los reac­tores nucleares o de los aviones, el usode un sistema distribuido, para lograruna mayor confiabilidad, puede ser elfactor dominante.

Por último, el crecimiento por incre­~entos también es una ventaja poten­cial. Con frecuencia ocurre que una com­pañía compra un "mainframe", con laintención de hacer todo su trabajo en él.Si la .compañía prospera y la carga detrabajO aumenta, el "mainframe" no seráadecuado en cierto momento. Las ideasde reemplazar el "mainframe" por otromás grande (si existe) o añadir un se­gundo "mainframe", pueden dar un tre­mendo castigo a las operaciones de lacompañía. Por el contrario, con un sis­tema distribuido, podrían añadirse sim­plemente más procesadores al sistema,lo que permitiría un desarrollo gradual,conforme surjan las necesidades.

Los microprocesadores ofrecen una mejorproporción precio-rendimiento que los

mainframes.

Un sistema distribuido puede tener un mayorpoder de cómputo que un mainframe.

Alguna,s aplicaciones utilizan máquinas queestan separadas una cierta distancia.

Si una máquina se descompone, sobrevive elsistema como un todo.

Se puede añadir poder de cómputo enpequeños incrementos.

ECONOMIA

VELOCIDAD'

DISTRIBUCIONINHERENTE

CONFIABILIDAD

CRECIMIENTO PORINCREMENTOS

colección de microprocesadores no sólofacilita una mejor proporCión precio/des­empeño que un único "mainframe", sinoque puede producir un mejor rendimien­to del que podría proporcionar cualquier"mainframe" a cualquier precio. Porejemplo, con la tecnología actual es po­sible construir un sistema a partir de los1.000 chips de un computador moder­no, cada uno de los cuales tiene unaejecución de 20 MIPS (millones de ins­trucciones por segundo), para un rendi­mie~t? total de 20.000 MIPS. Para queun UnlCO procesador (es decir, CPU) lo­gre esto, tendría que ejecutar una ins­trucción en 0,05 nanosegundos (50picosegundos). Ninguna máquina exis­tente llega a acercarse a esta cifra ade­má~ de ~u~ consideraciones teóri~as yde Ingenlerla lo consideran improbabledurante algún tiempo. Así, si el objetivoes un rendimiento normal a bajo costo,o un alto rendimiento con un mayor cos­to, los Sistemas Distribuidos tienen mu­cho que ofrecer.

Otra razón para la construcción deun Sistema Distribuido es que ciertasaplicaciones son dispuestas en formainherente. En un sistema de automati­zación de una fábrica, que controle losrobots y las máquinas, a lo largo de unalínea de ensamblaje, con frecuencia tie­ne sentido darle a cada robot o máqui-

1.2.1. Ventajas de los SistemasDistribuidos respectode los Centralizados

La fuerza real, detrás de la tenden­cia hacia la descentralización, es la eco­nomía. Por unos cuantos cientos dedólares es posible comprar un CHIP deCPU, que puede ejecutar más instruc­ciones, por segundo, de las que realiza­ba uno de los más grandes "mainframes"de los años ochenta. Si uno está dis­puesto a pagar el doble, se obtiene elmismo CPU, sólo que con una veloci­dad un poco mayor. Como resultado, lasolución más eficaz, en cuanto a cos­tos, es limitarse a un gran número deCPUs baratos, reunidos en un mismosistema. Así, la razón número uno de latendencia hacia los Sistemas Distribui­dos es que éstos tienen en potencia unaproporción precio/desempeño muchomejor que la de un único sistema cen­tralizado.

Una ligera variación, con respeto aeste tema, es la observación de que una

1.2. Ventajas y desventajas de losSistemas Distribuidos

un milisegundo o un tiempo parecido. Lamayor cantidad de datos se puede des­plazar, entre las máquinas, a razón de10 millones de bits/segundo y aun más.

Hoy en día es fácil reunir sistemasde cómputo, compuestos por un grannúmero de CPUs, conectados median­te una red de alta velocidad, los cualesreciben el nombre genérico de SistemasDistribuidos, en contraste con los Siste­mas Centralizados que constan de unúnico CPU, sus periféricos de memoriay algunas terminales.

Los Sistemas Distribuidos necesitanun software radicalmente distinto del delos sistemas centralizados. En particu­lar,aunque los sistemas operativos, ne­cesarios para estos Sistemas Distribui­dos, están apenas en una etapa de sur­gimiento, ya se sabe bastante acerca deellos.

1.1. Historia

El uso de los computadores está apunto de sufrir una revolución. Desde1945, cuando comenzó la era del com­putador moderno, hasta 1985, los com­putadores eran grandes y caros, inclu­yendo los minicomputadores. Como re­sultado, las organizaciones tenían ungrupo pequeño de computadores queoperaban independientemente, por ca­recer de una forma para conectarlos.

A partir de 1985 comenzó a cambiaresta situación. Primero, con el desarro­110 de poderosos microprocesadores, sedisponía de máquinas de 8 bits, peropronto se volvieron comunes las CPUde 16,32 e incluso 64 bits, muchas delas cuales tenían el poder de cómputode un "mainframe" respetable; y segun­do, con la invención de redes locales dealta velocidad (LAN), las cuales permi­tieron conectar docenas e incluso cien­tos de máquinas, de tal forma que sepudiesen transferir pequeñas cantida­des de información, entre ellas, durante

1. INTRODUCCION A LOSSISTEMAS DISTRIBUIDOS

para estos Sistemas Distribuidos estánapenas en etapa de surgimiento, ya esbastante lo que conocemos acerca deellos.

Nuestro objetivo es presentar a uste­des, de manera clara y sencilla, los con­ceptos básicos acerca de los SistemasDistribuidos, sus principales caracterís­ticas, las ventajas y desventajas, elmanejo de la comunicación y la sincro­nización dentro de estos sistemas, lossistemas distribuidos de archivos y unestudio de los procesos y procesadoresde los Sistemas Distribuidos.

Esperamos que el lector comprendala filosofía de los Sistemas Distribuidos,después de haber leído nuestra obra, ypueda llenar, si no todas, muchas de lasexpectativas que tenga acerca de estenovedoso campo de los sistemas decomputación.

Page 3: SISTEMAS OPERATIVOS DISTRIBUIDOS - Icesi

Ventajas de los Sistemas Distribuidos respecto de los pe

116-:-:==:==:=::::====::::::::::::'CES'

DATOS COMPARTIDOS Permite que varios usuarios tengan accesoa una base de datos común.

DISPOSITIVOS Permiten que varios usuarios compartanCOMPARTIDOS periféricos caros, como las impresoras de color.

COMUNICACION Facilita la comunicación de persona a persona;por ejemplo, mediante el correo electrónico.

FLEXIBILIDAD Difunde la carga de trabajo entre las máquinasdisponibles, de la forma más eficaz,

en cuanto a los costos.

La siguiente categoría es SIMD("Single Instruction Multiple Data"), conun flujo de instrucciones y varios flujosde datos. En este tipo, se ordenan losprocesadores con una unidad que bus­ca una instrucción y, después, ordena avarias unidades de datos para que la lle­ven a cabo, en paralelo, cada una consus propios datos. Ciertos super­computadores son SIMD.

La siguiente categoría es MISO(Multiple Instruction Single Data), conflujo de varias instrucciones y un soloflujo de datos. Ninguno de los computa­dores conocidos se ajusta a este mode­lo.

Por último viene MIMD (MultipleInstruction Multiple Data), que significaun grupo de computadores independien­te, cada uno con su propio contador delprograma, programas y datos.Todos lossistemas distribuidos son MIMD.

los que no tienen que ver; por lo tanto,es preferible tener un computador per­sonal aislado, sin conexiones de red conlas demás máquinas, para que los da­tos se mantengan en secreto.

A pesar de estos problemas poten­ciales, se puede ver que las ventajas tie­nen mayor peso que las desventajas y,de hecho, es probable que en unoscuantos años muchas organizacionesconecten la mayoría de sus computa­dores a grandes sistemas distribuidos,para proporcionar un servicio mejor, másbarato y más conveniente para sususuarios.

Existe poco software para los sistemasdistribuidos en la actualidad.

La red se puede saturar o causar otrosproblemas.

Un acceso sencillo también se aplica adatos secretos.

REDES

SOFTWARE

SEGURIDAD

1.3. Conceptos de hardware

Aunque todos los sistemas distribui­dos constan de varios CPUs, existen di­versas formas de organizar el hardware;en particular, en la forma de inter­conectarse y comunicarse entre sí. Sehan propuesto diversos esquemas, peroninguno de ellos ha tenido un éxito com­pleto.

Es probable que la taxonomía máscitada sea la de Flynn (1972), aunquees algo rudimentaria. Flynn eligió doscaracterísticas, consideradas por élcomo esenciales: el número de flujos deinstrucciones y el número de flujos dedatos.

Un computador, con un solo flujo deinstrucciones y un solo flujo de datos,se llama SISO ("Single Instruction SingleData"). Todos los computadores de un5010 procesador caen dentro de estacategoría.

Desventajas de los Sistemas Distribuidos.

añadirse una segunda. En ambos ca­sos, hay que tender cables en uno o másedificios, con un gran costo; o bien, hayque reemplazar las tarjetas de interfazde la red..Una vez que el sistema llegaa depender de la red, la pérdida o satu­ración de ésta puede desvirtuar algunasde las ventajas que el sistema distribui­do tenía.

Por último, la seguridad es, con fre­cuencia, un problema, debido a que silas personas pueden tener acceso a losdatos en todo el sistema, entonces tam­bién pueden tener acceso a datos con

:::::::::::::::::::::::=:::~117ICES'

r~.,

\.

Un segundo problema potencial esel ocasionado por las redes de comuni­cación, ya que se pueden perder men­sajes, por lo cual se requiere de un soft­ware especial para su manejo y éstepuede verse sobrecargado. Al saturar­se la red, ésta debe reemplazarse o

en un sistema distribuido, es lograr unamayorcomunicación entre las personas,en donde, según la gente, el correo elec­trónico tiene numerosos atractivos res­pecto del correo con cartas, el teléfonoo el fax.

Por último, un sistema distribuido tie­ne una mayor flexibilidad potencial queel hecho de darle a cada usuario uncomputador personal aislado. No 5610existe el método de conectar un grupode computadores personales, median­te una LAN, sino también tener unamezcla de computadores personales ycompartidos, tal vez con distintos tama­ños, y dejar que 105 trabajos se ejecu­ten de la forma más adecuada, en vezde ejecutarlos siempre en el computa­dor del propietario. De esta manera, lacarga de trabajo se puede difundir entre105 computadores, de forma más eficaz,y la pérdida de unas cuantas máquinasse puede compensar, si se permite a laspersonas que ejecuten sus trabajos enotra parte.

1.2.3. Desventajas de los SistemasDistribuidos

El peor de 105 problemas de 105 sis­temas distribuidos es el software, debi­do a que no se tiene mucha experien­cia en el diseño, implantación y uso delsoftware distribuido.

1.2.2. Venta/as de los SistemasDistribuidos respectode los pe independientes.

Muchos usuarios necesitan compar­tir ciertos datos. Por ejemplo, 105 em­pleados de reservaciones, en las líneasaéreas, necesitan tener acceso a la basemaestra de datos de los vuelos y reser­vaciones existentes. Si se le diera a cadaempleado una copia particular de todala base de datos, eso no funcionaría,puesto que nadie conocería 105 asien­tos vendidos por 105 demás empleados.Los datos compartidos son absoluta­mente esenciales para ésta yotras apli­caciones, de modo que las máquinasdeben estar conectadas entre sí. Losdatos no son 105 únicos elementos quese pueden compartir; otros candidatosson también 105 periféricos caros, comolas impresoras láser de color, los equi­pos de fotocomposición y 105 dispositi­vos de almacenamiento masivo (porejemplo, las cajas ópticas).

Una tercera razón, para la conexiónde un grupo de computadores aislados

Page 4: SISTEMAS OPERATIVOS DISTRIBUIDOS - Icesi

118~=======================::=ICESI ::==:==::::=:=::=:=======:=~119Icesl

BUS

dar de cruceta y hace la misma función,pero tiene un problema de retraso, pueses muy lenta. Los investigadores dise­ñaron NUMA (Acceso no uniforme a lamemoria), la cual tiene un rápido acce­so a su memoria, pero un lento accesoa la memoria de los demás.

En resumen, los multiprocesadoresbasados en buses, incluso con cachésmonitores, quedan limitados como máxi­mo a 64 CPUs, por la capacidad del bus.Para rebasar estos límites es necesa­rio una red de conmutador, como unconmutador de cruceta, una red omegao algo similar. Los grandes conmutado­res de cruceta son muy caros y las gran­des redes omega son caras y lentas.Las máquinas NUMA necesitan comple­jos algoritmos para un buen software decolocación. La conclusión es clara: Laconstrucción de un multiprocesadorgrande, fuertemente acoplado y conmemoria compartida, es difícil y cara.

él, también sea escrita en la memoria; yadem{.s. este caché mantiene un moni­toreo permanente del bus, para sabercuándo una palabra que está en él hasido modificada y, por lo tanto, tambiénmodificarla en él. Mediante el uso deeste caché es posible colocar de 32 a64 CPUs en el mismo bus.

CPU CPU CPUMEMORIA

I caché 1 I caché 1 I caché I

se encuentra en memoria caché. Perotambién se presenta un problema dememoria incoherente, en el caso de quedos CPUs lean la misma palabra en susrespectivos cachés y uno de ellos lamodifique y el otro lea el valor viejo dela palabra. Los investigadores han so­lucionado esto con el diseño de un cachéque cuando una palabra sea escrita en

1.3.2. Muniprocesadorescon conmutador

Para construir un multiprocesadorcon más de 64 procesadores, es nece­sario un método distinto para conectarcada CPU con la memoria. Una posibili­dad es dividir la memoria en módulos yconectarlos a la CPU con un conmuta­dor. Cada CPU y cada memoria tienenuna conexión que sale de él. En cadaintersección está un delgado Conmu­tador del punto de cruce electrónico.que el hardware puede abrir y cerrar.Cuando un CPU desea tener acceso auna memoria particular, el conmutadordel punto de cruce qtle los conecta secierra de manera momentánea, para quetenga lugar dicho acceso. Esta descrip­ción es del Conmutador de Cruceta,pero los Investigadores han dado a co­nocer otros tipos de conmutación, comoes la Red Omega, que utiliza muchomenos conmutadores que el conmuta-

f,

En general, los multiprocesadorestienden a estar más fuertemente aco­piados que los multicomputadores,puesto que pueden intercambiar datosa la velocidad de sus memorias, peroalgunos multicomputadores, basados enfibras ópticas, pueden funcionar tam­bién con velocidad de memoria.

Aunque el estudio de multipro­cesadores y multicomputadores, conbase en bus y con conmutador, no afec­ta directamente el estudio de los siste­mas operativos distribuidos, es impor­tante tener un concepto claro acerca decada uno de ellos.

1.3.1. Multiprocesadores con baseen buses

Los multiprocesadores con base enbuses constan de cierto número deCPUs, conectados a un bus común, jun­to con un módulo de memoria. Una con­figuración sencilla consta de un planode base ("backplane") de alta velocidado tarjeta madre, en la cual se puedeninsertar varias tarjetas de memoria y elCPU.

Para leer una palabra de memoria,un CPU coloca la dirección de la pala­bra deseada en las líneas de direccióndel bus y una señal en las líneas ade­cuadas de control, para indicar que de­sea leer. La memoria responde y colocael valor de la palabra en las líneas dedatos, para permitir la lectura de éstapor parte del CPU solicitante. La escri­tura funciona de manera similar.

El problema con este esquema esque si sólo se dispone de 4 ó 5 CPUs; elbus estará, por lo general, sobrecarga­do y el rendimiento disminuirá en formadrástica. La solución es añadir una Me­moria Caché de alta velocidad entre elCPU y el bus, donde se guardan laspalabras de acceso reciente y no haynecesidad de utilizar el bus para ir abuscar, en la memoria, una palabra que

Los Computadores MIMO se puedendMdlren-dos grupos: aquellos que tie­nen memoña':compartida, que, por logeneral, se Daman Multiprocesadoresy aquellos que no, que a veces recibenel nombre de Multicomputadores. Ladiferencia esencial es que un Mul­tiprocesador tiene un solo espacio dedirecciones virtuales, compartido portodos los CPU; yen un Multicomputador,cada máquina tiene su propia memoriaparticular.

Estas dos categorías se pueden sub­dividir, con base en la arquitectura de lared de interconexión, en Bus y conConmutador. En la primera queremosindicar que existe una sola red, planode base, bus, cable u otro medio queconecta todas las máquinas, como esel caso de la televisión comercial porcable; los sistemas con Conmutador notienen una sola columna vertebral comola televisión por cable, sino que tienencables individuales de una máquina aotra y utilizan varios patrones diferen­tes de cableado. Los mensajes se mue­ven a través de los cables y se hace unadecisión explícita de conmutación encada etapa, para dirigir el mensaje a Jolargo de uno de los cables de salida.

En ciertos sistemas las máquinasestán Fuertemente Acopladas y enotras están DébilmenteAcopladas; enun sistema Fuertemente Acoplado el

. retraso que se experimenta, al enviar unmensaje de un computador a otro, escorto y la tasa de transmisión de datos,es decir, el número de bits por segundoque se puede transferir es alto; en unsistema Débilmente Acoplado ocurre locontrario.

Los sistemas luertemente acopladostienden a utilizarse más como sistemasparalelos (para trabajar con un solo pro­blema) y los débilmente acoplados tien­den a utilizarse como sistemas distribui­dos (para trabajar con varios problemasno relacionados entre sí), aunque estono siempre es cierto.

Page 5: SISTEMAS OPERATIVOS DISTRIBUIDOS - Icesi

120~===================:====:=ICESI

eCONMUTADORPUNTO DE CRUCE

IeCPU

C

MEMORIA MEMORIA MEMORIALOCAL LOCAL LOCAL

CPU CPU CPU

El software débilmente acoplado per­mite que las máquinas y usuarios de unsistema distribuido sean independientesentre sí, en lo fundamental, pero queinteractúen, en cierto grado, cuando seanecesario. Consideremos un grupo decomputadores personales, cada uno delos cuales tiene su propio CPU, su pro­pia memoria, su propio disco duro y supropio sistema operativo, pero que com­parten ciertos recursos, tales como lasimpresoras láser y las bases de datos,en una LAN. Este sistema está débil­mente acoplado, puesto que las máqui­nas individuales se distinguen con clari­dad, cada una de las cuales tiene supropio trabajo por realizar. Si la red fallapor alguna razón, las máquinas indivi­duales continúan su ejecución en ciertogrado considerable, aunque se puedeperder cierta funcionalidad.

En el otro extremo, podríamos tenerel caso de un multiprocesador dedica­do a la ejecución de un único programade ajedrez, en paralelo. A cada CPU sele asigna un tablero para su evaluacióny éste ocupa su tiempo, en. la evalua­ción de este tablero y de los tableros quese pueden generar a partir de él. Al ter­minar la evaluación, el CPU informa desus resultados y se le proporciona unnuevo tablero para trabajar con él. Elsoftware para este sistema, es decir, elprograma de aplicación y el sistemaoperativo necesario para soportarlo,están más fuertemente acoplados queen el caso anterior.

Con lo que hemos tratado hasta aho­ra, podemos ver que existen cuatro ti­pos de hardware distribuido y dos tiposde software distribuido. En teoría, debe­rían existir ocho combinaciones de hard­ware y software. Pero sólo existen cua­tro, puesto que para el usuario lainterconexión de la tecnología no es vi­sible. Un multiprocesador es un mul­tiprocesador, sin importar si utiliza un buscon cachés monitores o una red omega.

1.4. Conceptos de software

Aunque el hardware es importante,el software 10 es aún más. La imagenque un sistema presenta a sus usuariosy la forma de pensar de éstos, acercadel sistema, queda determinada, en granmedida, por el software del sistema ope­rativo, no por el hardware.

Los sistemas operativos no se pue­den colocar fácilmente dentro de unosestándares como el hardware. Por supropia naturaleza, el software es vago yamorfo. Aún así, es más o menos posi·ble distinguir dos tipos de sistemas ope­rativos para los sistemas de variosCPUs: Los Débilmente Acoplados yLos Fuertemente Acoplados.

1.3.4. Municomputadorescon conmutador

Se han propuesto y construido variasredes de interconexión, pero todas tie­nen la propiedad de que cada CPU tie­ne acceso directo y exclusivo a su pro­pia memoria particular. Existen dostopologías populares, una Retículay unHipercubo. Las retículas son fáciles decomprender y se basan en las tarjetasde circuitos impresos. Se adecuan me­jor a problemas, con una naturalezabidimensional inherente, como la teoríade gráficos o la visión.

Un hipercubo es un cubo-n-dimen­sional. Cada vértice es un CPU. Cadaarista es una conexión entre dos CPUs.Cada CPU tiene Un" conexiones conotros CPUs. Así, la complejidad delcableado aumenta en proporción lo­garítmica con el tamaño. Puesto quesólo se conectan los vecinos más cer­canos, muchos mensajes deben reali­zar varios saltos, antes de llegar a sudestino. Los hipercubos con 1.024 CPUsestán disponibles en el mercado desdehace varios años y ya comienzan a es·tar disponibles los hipercubos, con has­ta 16.384 CPUs.

:========================~121ICESI

M

ESTACIONDE TRABAJO

M

RED

interconexión, pero sólo es para la co­municación entre un CPU y otro. El vo­lumen del tráfico será menor, varios ór­denes, si se utiliza la red de inter·conexión para el tráfico CPU-Memoria;el sistema de interconexión puede te­ner una LAN de menor velocidad, encomparación con un "backplane".

M

MEMORIAS

ESTACIONDE TRABAJO

M

C

ESTACIONDE TRABAJO

-, ;

1.3.3. Multicomputadorescon base en buses

La construcción de un multicom­putador es fácil. Cada CPU tiene unaconexión directa con su propia memorialocal. El único problema consiste en de·finir la forma en que los CPUs se comu­nican entre sí. Es claro que aquí tam­bién se necesita cierto esquema de

Page 6: SISTEMAS OPERATIVOS DISTRIBUIDOS - Icesi

122-:-=========================::ICESI :========================~123ICESI

clientes a los servidores, junto con lasrespuestas correspondientes, enviadaspor los servidores de regreso a los clien­tes. Mientras un servidor reconozca ypueda manejar todas las solicitudes enlos protocolos, no necesita saber algode sus clientes. En forma análoga, losclientes consideran a los servidorescomo "cajas negras". El primer protoco­lo de NFS maneja el montaje. Un clien­te puede enviar el nombre de una rutade acceso a un servidor y solicitar elpermiso para montar ese directorio enalguna parte de su jerarquía de directo­rios. El segundo protocolo de NFS espara el acceso a los directorios y archi­vos. Los clientes pueden enviar mensa­jes a los servidores para el manejo delos directorios y la lectura o escritura dearchivos. Además, también pueden te­ner acceso a los atributos de archivo,tales como su modo, tamaño y fecha dela última modificación.

• Implantación de NFS: La implan­tación del código del cliente y del servi­dor es independiente de los protocolos.Consta de tres capas: la capa superiores la capa de llamadas al sistema; éstamaneja las llamadas del tipo OPEN,READ Y CLOSE. Después de analizarla llamada y verificar los parámetros, lla­ma a la segunda capa, la capa del sis­tema virtual de archivos (VFS). La tareade la capa VFS es mantener una tabla,con una entrada por cada archivo abier­to, análoga a la tabla de ínodos, paralos archivos abiertos en Unix. Despuésde descubrir el nombre de la máquinadonde se localiza el directorio por mon­tar, se relaciona esa máquina buscandoun "file handle" para el directorio remo­to. Si el directorio existe y está disponi­ble para su montaje remoto, el servidorregresa, entonces, un ''file handle" parael directorio. Por último, se transfiere el''file handle" al núcleo.

de servidores de archivo en Unix, conCPU de Motorola 68030 o SunSparc.

Existen tres aspectos importantes deNFS: la Arquitectura, el Protocolo y laImplantación.

• La Arquitectura de NFS: La ideafundamental de NFS es permitir que unacolección arbitraria de clientes y servi­dores compartan un sistema de archi­vos común. En la mayoría de los casos,todos los clientes y servidores están enla misma LAN, pero esto no es necesa­rio. Es posible ejecutar el NFS en unaWAN. Tomamos a los clientes y servi­dores como máquinas distintas, peroNFS también permite que cada máqui­na sea un cliente y un servidor al mismotiempo.

• La característica básica de la ar­quitectura de NFS es que los servido­res exportan directorios y los clientes losmontan de manera remota. Si dos o másclientes montan el mismo directorio almismo tiempo, ellos se pueden comuni­car y compartir archivos en sus directo­rios comunes. Un programa para uncliente puede crear un archivo y un pro­grama para otro cliente distinto, puedeleer dicho archivo. Una vez llevados acabo los montajes, no hay que hacernada especial para lograr compartir losarchivos. Los archivos compartidos es­tán ahí, en la jerarquía de directorios devarias máquinas, y se puede leer o es­cribir en ellos de la manera usual. Estasencillez es uno de los grandes atracti­vos de NFS.

• Protocolos de NFS: Puesto queuno de los objetivos de NFS es soportarun sistema heterogéneo, en donde losclientes y servidores podrían ejecutardistintos sistemas operativos en hard­ware diverso, es esencial que la interfazentre los clientes y servidores esté biendefinida. NFS logra este objetivo me­diante la definición de dos protocoloscliente-servidor. Un Protocolo es unconjunto de solicitudes que envían los

de archivos. Cada una de las solicitu­des que llegue se examina, se ejecuta yla respuesta se envía de regreso.

Los servidores de archivos tienen, porlo general, un sistema jerárquico de ar­chivos, cada uno de los cuales tiene undirectorio raíz, con sus directorios y ar­chivos. Las estaciones de trabajo pue­den importar o montar estos sistemasde archivos, lo que aumenta sus siste­mas locales de archivos con aquelloslocalizados en los servidores.

El sistema operativo por utilizar, eneste tipo de ambiente, debe controlartanto las estaciones de trabajo, en loindividual, como a los servidores de ar­chivos, y también debe encargarse dela comunicación entre ellos. Es posibleque todas las máquinas ejecuten el mis­mo sistema operativo, pero esto no esnecesario. Si los clientes y los servido­res ejecutan diversos sistemas, enton­ces, como mínimo, deben coincidir enel formato y significado de todos losmensajes que podrían intercambiar. Enuna situación como ésta, en la que cadamáquina tiene un alto grado de autono­mía y existen pocos requisitos a lo largode todo el sistema, las personas se re­fieren a ella como un Sistema Operati­vo de Red.

Uno de los mejores sistemas opera­tivos de red es el Network File System,de Sun Microsystems, conocida en ge­neral como NFS. Es un sistema conamplio uso. Sun Microsystems diseñó eimplantó NFS, en un principio para suuso en estaciones de trabajo con baseen UNIX. Ahora lo soportan otros fabri­cantes tanto para Unix como para otrossistemas operativos (como MS-DOS).NFS soporta sistemas heterogéneos,por ejemplo, clientes de MS-DOS quehacían uso de servidores Unix. Ni siquie­ra se pide que las máquinas utilicen elmismo hardware. Es común encontrar­se con clientes de MS-DOS que utilizanCPU de Intel 386 y obtienen servicios

1.4.1. Sistemas Operativosde Redes y NFS

La combinación más común, en mu­chas organizaciones, es un softwaredébilmente acoplado en un hardwareigual. Un ejemplo típico es una red deestaciones de trabajo de ingeniería, co­nectadas mediante una LAN. En estemodelo, cada usuario tiene una estaciónde trabajo para su uso exclusivo, lo mis­mo que su propio sistema operativo, endonde lo normal es que todos los co­mandos se ejecuten en forma local, pre­cisamente en la estación de trabajo.

Sin embargo, a veces es posible queun usuario se conecte de manera remo­ta con otra estación de trabajo, median­te un comando.

El efecto de este comando es con­vertir la propia estación de trabajo delusuario en una terminal remota, enlaza­da con la máquina remota. Los coman­dos escritos en el teclado se envían a lamáquina remota y la salida de ésta seexhibe en la pantalla. En cualquier ins­tante, sólo se puede utilizar una máqui­na y la selección de ésta se realiza enforma manual.

Las redes de las estaciones de tra­bajo también tienen un comando de co­piado remoto, para copiar archivos deuna máquina a otra, pero el usuario debeestar consciente de la posición de losarchivos.

Aunque es mejor que nada, esta for­ma de comunicación es primitiva en ex­tremo. Un método más conveniente decomunicación y distribución de la infor­mación consiste en proporcionar un sis­tema de archivos global compartido,accesible desde todas las estaciones detrabajo. Una o varias máquinas, llama­das Servidores de Archivos, soportanel sistema de archivos. Los servidoresaceptan solicitudes de los programas deusuarios, los cuales se ejecutan en lasotras máquinas (No servidoras), llama­das Clientes, para la lectura y escritura

Page 7: SISTEMAS OPERATIVOS DISTRIBUIDOS - Icesi

124~:::::::::::::::::::::::::==:ICESI

TRANSPARENCIA Los usuarios no pueden indicar la localización deDE LOCALlZACION. los recursos.

TRANSPARENCIA Los recursos se pueden mover a voluntad, sinDE MIGRACION cambiar sus nombres.

TRANSPARENCIA Los usuarios no pueden indicar el número deDE REPLICA. copias existentes.

TRANSPARENCIA Varios usuarios pueden compartir recursos deDE CONCURRENCIA. manera automática.

TRANSPARENCIA Las actividades pueden ocurrir en parelelo, sin elDE PARALELISMO. conocimiento de los usuarios.

2. COMUNICACIONESEN LOS SISTEMAS DISTRIBUIDOS

La diferencia más importante entre unsistema distribuido y un sistema de úni­co procesador es la comunicación en­tre los procesos. En un sistema con unsolo procesador, la mayor parte de lacomunicación entre procesos supone,de manera implícita, la existencia de lamemoria compartida. Un ejemplo típicoes el problema de los lectores escrito­res, en donde un proceso escribe en un"buffer" compartido y otro proceso lo lee.Incluso, en las formas más básicas desincronización, como el semáforo, hayque compartir una palabra (La variabledel semáforo). En un sistema distribui­do no existe tal memoria compartida, porlo que toda la naturaleza de la comuni­cación entre procesos debe replantearsea partir de cero.

Comenzaremos con el análisis de lasreglas a las que se deben apegar losprocesos respecto de la comunicación

1.5.5. Esca/amiento - Extensión

La mayoría de los sistemas distribui­dos está diseñada para trabajar conunos cuantos cientos de CPUs. Es po­sible que los sistemas futuros tenganmayores órdenes de magnitud y que lassoluciones que funcionen bien para 200máquinas fallen de manera total para200 millones; por esto, es importante queal construir los sistemas distribuidos sepiense en el número de máquinas queen un futuro se le acondicionarán.

miento (número de trabajos por hora),el uso del sistema y la cantidad consu­mida de la capacidad de la red. El pro­blema del desempeño se complica porel hecho que la comunicación, factoresencial en un sistema distribuido (yausente en un sistema con un únicoprocesador), es algo lenta por lo gene­ral. Así, para optimizar el desempeño,con frecuencia hay que minimizar elnúmero de mensajes.

1.5.4. DesempeñoLa construcción de un sistema distri­

buido transparente, flexible y confiableno hará que usted gane premios si esmuy lento. En particular, cuando se eje­cuta una aplicación en un sistema dis­tribuido, no debe parecer peor que suejecución en un único procesador.

Se pueden utilizar diversas métricasdel desempeño. El tiempo de respuestaes uno, pero también lo son el rendi-

1.5.3. Confiabllidad

Uno de los objetivos originales de laconstrucción de sistemas distribuidosfue el hacerlos más confiables que lossistemas con un único procesador. Laidea es que si una máquina falla, algu­na otra máquina se encargue del trabajo.

::::======:::::=:::::::::::~125ICESI

1.5.2. Flexibilidad

Es importante que el sistema seaflexible, ya que apenas estamos apren­diendo a construir sistemas distribuidos.Es probable que este proceso tengamuchas salidas falsas y una considera­ble retroalimentación. Las decisiones dediseño que ahora parezcan razonablespodrían demostrar ser incorrectas pos­teriormente.

Existen dos escuelas de pensamien­to en cuanto a la estructura de los siste­mas distribuidos. Una escuela dice quecada máquina debe ejecutar un núcleotradicional que proporcione la mayoríade los servicios. la otra sostiene que elnúcleo debe proporcionar lo menos po­sible y que el grueso de los servicios delsistema operativo se obtenga a partir delos servidores al nivel usuario. La pri­mera escuela, conocida como el núcleomonolítico, opera en el actual sistemaoperativo y centralizado básico, aumen­tado con las capacidades de la red y laintegración de los servicios remotos. Lasegunda escuela, conocida como elmicronúcleo, opera en los sistemas dis­tribuidos diseñados actualmente.

te acoplado en un hardware igual. Aun­que existen varias máquinas de propó­sito especial en esta categoría (como lasmáquinas dedicadas a las bases de da­tos), los ejemplos más comunes de pro­pósito general son los multiproce­sadores, como los fabricados porSequent y Encare, que operan como unsistema de tiempo compartido de Unix,sólo que con varios CPU en lugar de unosolo.

La característica clave de este tipode sistema es la existencia de una solacola para la ejecución: una lista de to­dos los procesos, en el sistema, que noestán bloqueados en forma lógica y lis­tos para su ejecución. La cola de ejecu­ción es una estructura de datos conte­nida en la memoria compartida.

1.5 Aspectos del diseño

1.5.1. Transparencia

Un sistema es transparente cuandohace que las personas piensen que lacolección de máquinas es tan sólo unsistema de tiempo compartido de un soloprocesador, es decir, cuando se le ocul­ta la distribución del sistema y piensanque un solo computador es el que hacetodo el trabajo. Existen cinco tipos detransparencia:

1.4.2. Sistemas realmentedistribuidos

El siguiente paso, en la evolución, esel de un software fuertemente acopladoen un hardware débilmente acoplado (esdecir, multicomputadores). El objetivo deun sistema de este tipo es crear la ilu­sión, en las mentes de los usuarios, deque toda la red de computadores es unsolo sistema de tiempo compartido, envez de una colección de máquinas di­versas. Esto nos lleva a nuestra defini­ción de sistema distribuido: un SistemaDistribuido es aquel que se ejecuta enuna colección de máquinas sin memo­ria compartida, pero que aparece antesus usuarios como un solo computador

Para que un sistema sea realmentedistribuido, debe existir un mecanismode comunicación global entre los pro­cesos, de forma que cualquier procesopuede hablar con cualquier otro; ade­más, no tiene que haber distintos me­canismos en distintas máquinas o dis­tintos mecanismos para la comunicaciónlocal o la comunicación remota; tambiéndebe existir un esquema global de pro­tección.

1.4.3. Sistemas de multiprocesadorcon tiempo compartido

La última combinación que queremosanalizar es la de un software fuertemen-

Page 8: SISTEMAS OPERATIVOS DISTRIBUIDOS - Icesi

conocida como protocolo. Para los sis­temas distribuidos, estos protocolos to­man con frecuencia la forma de variascapas, cada una con sus propias metasy reglas; luego analizaremos con másdetalle el modelo cliente-servidor, delcual tanto se ha hablado. Finalmente,veremos la forma en que se intercam­bian los mensajes y las muchas opcio­nes disponibles para los diseñadores delsistema.

2.1. Redes y Comunicaciones

Como vimos en la primera parte, eldisponer de una red es uno de los re­quisitos para poder hablar de un siste­ma operativo completamente distribui­do; por ello, se hace importante estu­diar las características de las comuni­caciones, en los diferentes tipos de re­des, bien sea en las redes del área lo­cal LAN o en las redes de área ampliaWAN. Estas últimas permitirán, en unfuturo, ofrecer la posibilidad de conexiónen el mundo, entre computadores yusuarios; por ello se deben acordar pro­tocolos o reglas de comunicaciónestándar entre los usuarios, e inclusoentre los diferentes tipos de redes.

En el exterior existen diferentes or­ganismos, los cuales han tratado deestablecer protocolos comunes paraseguir en todas las comunicaciones quese puedan llevar a cabo en los diferen-

. tes tipos de redes. Entre los organismosmás destacados vale la pena mencio­nar la Organización Internacional parala Internacionalización (ISO), con sumodelo de referencia para la inter­conexión de sistemas abiertos OSI; elComité Consultivo Intemacional para laTelegrafía y las Telecomunicaciones(CCITI) y el Instituto NacionalAmerica­no de Normas (ANSI).

Entre los conjuntos de normas másimportantes podemos citar el OSI, queabarca una arquitectura de servicios yprotocolos y es comúnmente usado en-

tre las redes de área amplia, y el TCP/IP, utilizado entre los computadores delDepartamento de Defensa de los Esta­dos Unidos.

2.2. Protocolos con capas

Debido a la ausencia de memoriacompartida, todas las comunicacionesen los sistemas distribuidos se basan enla transferencia de mensajes. Cuandoel proceso A quiere comunicarse con elproceso B, construye primero un men­saje en su propio espacio de direccio­nes. Entonces, ejecuta una llamada alsistema para que éste busque el men­saje y lo envíe, a través de la red, haciaB. Como vemos, esto parece sencillo,pero, para evitar confusiones, A y B de­ben coincidir en el significado de los bitsque se envíen. Por ejemplo, si A envíaun mensaje, en código ASCII, y B espe­ra un mensaje en el código EBCDIC, lacomunicación no será óptima.

Como vemos, se necesitan muchospuntos de común acuerdo para estable­cer una buena comunicación. ¿Cuántosvoltios hay que utilizar para la señal co­rrespondiente a un bit cero y cuántospara un bit uno? ¿Cómo sabe el recep­tor cuál es el último bit del mensaje?¿Cómo puede detectar si un mensajeha sido dañado o perdido, y qué debehacer si lo descubre? ¿Qué longitud tie­nen los números, cadenas y otros ele­mentos de datos y cuál es la forma enque están representados? De este ejem­plo se puede deducir que se necesitanvarios puntos de acuerdo con una am­plia gama de niveles, desde los detallesde bajo nivel de los bits hasta los deta­lles de alto nivel, acerca de la formacomo debe expresarse la información.

2.2.1. Modelo de referencia para lainterconexión de sistemasabiertos OSI

Este modelo está diseñado para per­mitir la comunicación entre los sistemas

abiertos. Un sistema abierto es aquelpreparado para comunicarse con cual­quier otro sistema abierto, mediante re­gias estándar que gobiernan el formato,el contenido y el significado de los men­sajes recibidos. Estas reglas se formali­zan en lo que se llaman protocolos. Entérminos básicos, un protocolo es unacuerdo de la forma en que debe desa­rrollarse la comunicación. Cuando sepresentan una mujer y un hombre, ellapuede optar por extender la mano. El, asu vez, puede decidir si estrechársela obesársela según si, por ejemplo, ella esuna abogada en una junta de negocioso una princesa europea en un baile for­mal. La violación del protocolo hará quela comunicación sea más difícil o, tal vez,imposible.

El modelo OSI distingue entre dos ti­pos generales de protocolos: los orien­tados hacia las conexiones y los que notienen ninguna conexión; los primeros,antes de intercambiar los datos entre elemisor y el receptor, negocian el proto­colo por utilizar, mientras que los segun­dos no necesitan ninguna configuraciónprevia para empezar a transmitir el men­saje. Un ejemplo de comunicación sinconexión podría ser el depositar unacarta en un buzón, ya que el receptorno espera que le llegue la carta que enese momento ha sido depositada y mu­cho menos ha podido establecer unaconexión previa con el emisor para neogociar las normas que se deberían utili­zar en el envío de la carta.

En el modelo OSI, la comunicaciónse divide hasta en siete niveles o ca-

pas, como se muestra en la Figura 2.1.Cada capa se encarga de un aspectoespecífico de la comunicación; de estaforma, el problema se puede dividir enpiezas manejables, cada una de las cua­les se puede resolver en forma indepen­diente de las demás. Cada capa propor­ciona una interfaz con la capa siguien­te. La interfaz consiste en un conjuntode operaciones, para definir el servicioque la capa está preparada a ofrecer asus usuarios.

2.2.2. Capas del modelo OSI

El modelo OSI cuenta con siete ca­pas, una serie de interfaces y siete pro­tocolos, los que garantizarán que la co­municación entre el emisor y el receptorsea eficiente y confiable, como se mues­tra en la Figura 2.1. Las siete capas delmodelo OSI y su utilidad se describirána continuación:

La capa física: Se preocupa por latransmisión de los ceros y los unos.El número de voltios por utilizar (O y1), el número de bits por segundoque se pueden enviar, el hecho quela transmisión se lleve a cabo enambas direcciones, en forma simul­tánea, son todos aspectos claves enla capa física. Además, el tamaño yforma del conector en la red, asícomo el número de PINS y el signifi­cado de cada uno son temas de in­terés para dicha capa. El protocolode la capa física controlará que,cuando una máquina envíe el bit O,sea realmente recibido como un bitoyno como un bit 1.

126~::::=::::=:::::========:::::ICESI :===::====::=::::::::::::=:~127ICESI

Page 9: SISTEMAS OPERATIVOS DISTRIBUIDOS - Icesi

MODELO OSI tal. Sin embargo, como el servicio pos­tal es malo, en cierto momento las dossecretarias deciden abandonarlo y co­municarse por fax. Lo pueden hacer sinmolestar a sus jefes, puesto que su pro­tocolo se refiere a la transmisi6n físicade las órdenes y a su contenido. En for­ma análoga, el jefe de servicios de pa­sajeros decide no pedir el pollo y pedirel nuevo especial de Mushy, un filete,sin que esa decisión afecte a las secre­tarias. Lo que debemos observar es queaquí tenemos dos capas: Los jefes y lassecretarias, y cada capa tiene su propioprotocolo: temas de discusión y tecno­logía, que se pueden cambiar indepen­dientemente el uno del otro.

De la misma forma, cuando un pro­ceso A de la máquina 1 desea comuni­carse con el proceso B de la máquina 2,construye un mensaje y lo transfiere ala capa de aplicación en su máquina; elsoftware de dicha capa agregará un en­cabezado y hará seguir el mensaje pormedio de la interfaz hasta la capa de pre­sentación, en donde se le agregará otroencabezado y así sucesivamente se re­petirá el proceso hasta llegar a la capade enlace de datos, como se muestraen la Figura 2.2. Una vez la máquina 1tenga el mensaje, con los encabezadoscorrespondientes, lo enviará a la máqui­na 2, la cual, realizando el proceso in­verso, lo interpretará en la forma correc­ta.

final de lacapa debase dedatos.Figura 2.2. Un mensaje típico, tal eomo aparece en la red.

EJEMPLO DE UN MENSAJE ENVIADO DE ACUERDO CON EL MODELO OSIEncabezado de la capa de enlace de datos

Encabezado de la capa de red

J!¡EncabezadO de la capa de transporte

f1JncabezadO de la capa de sesión

Dncabezado de la capa de presentación

J j ~ncabezadD de la capa de aplicación

rr::o:IIJ M.","], ~LI 1 Extremo

registro de la parte que está hablan­do en cierto momento y proporcionafacilidades en la sincronización. Enla práctica, pocas aplicaciones estáninteresadas en la capa de sesión yrara vez se le soporta.

La capa de presentación: Esta capase encarga de dar un formato al men­saje del emisor, para hacerlo en­tendible por el receptor; dicho forma­to será una especie de registro, concampos de tamaño adecuado paraalbergar datos como nombres, direc­ciones, etc.

La capa de aplicación: Esta capa seencarga de establecer protocolospara actividades comunes entre ter­minales remotas; los más conocidosson el protocolo de correo electróni­co XAOO y el servidor de directoriosX.500.

Para entender mejor el porqué de laexistencia de las diferentes capas, en elmodelo de comunicaciones OSI, veamosun ejemplo:

Consideremos la comunicación entredos compañías, ZyppyAirlines ysu pro­veedor, Mushy Mea/s. /ne. Cada mes, eljefe de servicios de pasajeros, en Zippy,le pide a su secretaria que haga contac­to con la secretaria del gerente de ven­tas en Mushy, para ordenar cien mil ca­jas de pollo. Por lo general, las órdenesse solicitan por medio de la oficina pos-

:=========================~129ICES'

'J ,,'1',

compañías telefónicas, y el orienta­do a la no conexión, llamado IP deprotocolo internet, el cual es usadopor el Departamento de Defensa delos Estados Unidos.

- La capa de transporte: Esta capa seencarga de recibir el mensaje pro­veniente de la capa de sesión, loparte en pequeños pedazos, de for­ma que cada una se ajuste a un úni­co paquete; le asigna a cada uno unnúmero secuencial y después losenvía al receptor. Existen diferentesprotocolos de transporte, entre ellosestán desde el TPO hasta el TP4,protocolos oficiales de transporteISO; el TCP, protocolo de transportedel Departamento de Defensa de losEstados Unidos; la combinaciónTCP/IP, protocolo de transporte dela mayoría de los sistemas UNIX, yel UDP, utilizado por los programasde usuario que no necesitan las co­nexiones.

- La capa de sesión: Esta capa es unaversión mejorada de la capa detransporte. Proporciona el control dediálogos, con el fin de mantener un

Máquina 1 Máquina 2

~roceso0 QrocesoD

~ t1 IProtocolo de aplicación

Aplicación r ~ AplicaciónProtocolo de presentación

t 2 Presentación ~ ~ Presentación9

3 Sesión ¡. Protocolo de sesión~ Sesión

4 Transporte ~Protocolo de transporte

~ Transportea Protocolo de red

5 Red ¡.. ~ Redz Protocolo de enlace de dato~61 Enlace de datos ~ Enlace de Datos

71Protocolo físico

Físico ~ ~ Físico

Figura 2.1. Capas, interfaces y protocolos en el modelo OSI.

RED

- La capa de enlace de los datos: Estacapa no sólo detecta los errores sinoque los corrige. lo que hace es agru­par los bits en unidades, que a ve­ces se llaman marcos, y revisar quecada marco se reciba en forma co­rrecta; los marcos están conforma­dos por tres campos: un bit al inicio,un bit al final y otro de verificación,conocido como CKECKSUM; esteúltimo contendrá la suma de todoslos bits del marco, así, en el momen­to en que el mensaje llegue al re­ceptor, éste sólo tendrá que volver acalcular la suma de los bits del mar­co ycompararla con el contenido delCKECKSUM, para determinar si lainformación llegó correctamente; encaso contrario, el receptor pedirá alemisor la retransmisión de los datos.

- La capa de la red: Esta capa se en­carga de enrutar los datos del emi­sor, para que lleguen por el caminomás corto posible al receptor. Exis­ten dos protocolos comúnmente usa­dos en las capas de red: el orienta­do a las conexiones, denominadoX.25, utilizado con frecuencia por las

128~=======================::=ICES'

Page 10: SISTEMAS OPERATIVOS DISTRIBUIDOS - Icesi

TRANSFERENCIA DE MENSAJES EN EL MODELO CLIENTE SERVIDOR

Figura 2.3.

130~==========================ICE;

la máquina-destino? ¿Cuál de ellos ob­tiene el mensaje? El núcleo no tiene for­ma de decidir. En consecuencia, un es­quema que utilice las direcciones en lared para la identificación de los proce­sos indica que sólo se puede ejecutarun proceso en cada máquina. Aunqueesta limitación no es fatal, a veces esuna seria restricción, razón por la cualsurgen tres tipos de métodos para la di­rección de los procesos en un modelocliente-servidor. El primero integra el"machine-number" al código del cliente;es decir, se envían mensajes a los pro­cesos en lugar de enviárselos a las má­quinas. Aunque este método eliminatoda la ambigüedad acerca de quién esel verdadero receptor, presenta el pro­blema de cómo identificar los procesos.Un esquema común consiste en utilizarnombres con dos partes, para especifi­car tanto la máquina como el proceso.Por ejemplo, el número 243.4 me indi­cará que estoy refiriéndome a la máqui­na 243 y al proceso 4, como se mues­tra en la Figura 2.5.

El segundo método será dejar quelos procesos elijan sus direcciones alazar entre un espacio de direccionesgrande y disperso, como lo es el deenteros binarios de 64 bits. la probabi-

Solicitud/Respuesta

Enlace de datos

Física

TRANSFERENCIA DE MENSAJES EN EL MODELO CLIENTE

SERVIDOR

Capas

7

6

5

4

3

2

Debido a esta estructura tan sencillase pueden reducir los servicios de co­municación que presta el micronúcleo;por ejemplo, a dos llamadas al sistema,una para el envío de mensajes y otrapara recibirlos. Estas llamadas al siste­ma se pueden pedir a través de proce­dimientos de librerías, como SEND(DEST, &MPTR) Y RECEIVE (ADDR, &MPTR). La primera envía el mensaje alque apunta MPTR, en un proceso quese identifica como DEST, y provoca quequien hace la llamada se bloquee hastacuando se envíe el mensaje. La segun­da hace que quien hizo la llamada sebloquee hasta que reciba un mensaje.Cuando llega un mensaje, éste se co­pia en el "buffer" al que apunta MPTR yquien hizo la llamada se desbloquea. ElparámetroADDR determina la direcciónen la cual escucha el receptor.

Figura 2.4.

2.3.1. Dirección

Para que un cliente pueda enviar unmensaje a un servidor, debe conocer ladirección de éste. Si sólo existe un pro­ceso en ejecución en la máquina-desti­no cuando se envía el mensaje, el nú­cleo sabrá qué hacer con el mensajerecibido (dárselo al único proceso enejecución). Sin embargo, ¿qué ocurre siexisten varios procesos en ejecución en

:==========================~131,ICESI

des distancias, el utilizar OSI implicaríacontroles innecesarios y, por ende, des­perdicio de tiempo de la CPU y un ~~sto

excesivo comparado con sus benefiCIOS.

Por ello, se hace necesario es­tructurar el sistema operativo de unaforma diferente, dando origen así almodelo cliente servidor, éste tendrá unsistema operativo estructurado por gru­pos de procesos en coopera~ión, 1I~",la­

dos servidores, que ofreceran serviCIOSa los usuarios, llamados clientes. Lasmáquinas de los clientes y servidoresejecutan, por lo general, el mismomicronúcleo y ambos se ejecutan comoprocesos del usuario.

Para evitar un gasto excesivo en losprotocolos orientados a la conexión, ta­les como OSI o TCP/IP, lo usual es queel modelo cliente-servidor se base en unprotocolo solicitudlrespuest~, sencillo ysin conexión. El cliente envla Ull' men­saje al servidor, para pedir cierto servi­cio, por ejemplo, la lectura de un bloquede cierto archivo. El servidor hace el tra­bajo y regresa los datos solicitados o uncódigo de error, para indicar la razón porla cual un trabajo no se pudo llevar acabo, como se muestra en la Figura 2.3.La principal ventaja de dicho modelo essu sencillez, ya que el cliente envía unmensaje y obtiene una respuesta; porsu parte, como se ve en la Figura 2.4, lapila de capas del modelo es mucho máscorta que la de OSI, contando únicamen­te con tres capas: la física, la de enlacede datos y la de solicitud y respuesta.

SolicitudCliente Servidor

Respuesta

Núcleo Núcleo

I RED I

2.3. El modelo cllente-servidor

A primera vista, los protocolos concapas, a lo largo de las líneas OSI: seven como una forma fina de organizarun sistema distribuido. En efecto, unemisor establece una conexión; es de­cir una especie de entubamiento de bitsco~ el receptor y, entonces, empieza abombear los bits que llegan sin error, enorden, al receptor. Surge entonces lapregunta: ¿qué podría estar mal en estemodelo?

A pesar de que el modelo OSI pare­ce ser la forma más eficiente para con­trolar la comunicación entre el emisor yel receptor, esto sólo se puede afirmarsi es utilizado en redes de tipo WAN, yaque, por tratarse de redes en las q~e

los terminales se encuentran distancia­dos en muchas ocasiones por kilóme­tros, no importará tener que recurrir aun modelo tan complicado como el OSI,que a pesar de demandar gran cantid~d

de tiempo en la comunicación, nos brin­dará la certeza de contar con datosconfiables, sin importar las diferenciasque puedan existir, tanto en hardwarecomo en el sistema operativo entre elemisor y el receptor, diferencias q,uepodrán ser sorteadas fácilmente graciasa sus siete capas de control.

Para las redes de tipo LAND no esaconsejable utilizar este modelo, ya quepor tratarse de comun.ic~cion~s.entreterminales con caractenstlcas Similares,las cuales no están separadas por gran-

Page 11: SISTEMAS OPERATIVOS DISTRIBUIDOS - Icesi

Cliente en ejecución

Regreso

... ..Envío del mensaje

general, los diseñadores del sistemaaunque en algunos cuantos sistemas s~dispone de ambos y los usuarios pue·den elegir su favorito. Sin embargo, laventaja de desempeño que ofrecen lasprimitivas sin bloqueo se ve afectada poruna seria desventaja: el emisor puedemodificar el "buffer" de mensajes cuan­do se envíe el mensaje; en caso de quese modificara, se enviarían datostraslapados. Para solucionar dicho pro­blema, podríamos optar por copiar elmensaje a un "buffer" interno del núcleoy, así, permitir al proceso continuar conel envío del mensaje y, a la vez, dejar elbloqueo.

Otra altemativa sería la primitiva sinbloqueo con interrupción, en la cual, unavez se ha terminado de enviar el men­saje, se interrumpe al emisor para avi­sarle que ya puede utilizar el "buffer".

Clientebloqueado

'C •Mensajecopiadoal núcleodel "buffer"

Señalamiento

Cliente en ejecución

Figura 2.9. Una primitiva senda sin bloqueo.

PRIMITIVAS DE BLOQUEO VS. NO BLOQUEO

PRIMITIVAS DE BLOQUEO VS. NO BLOQUEO

Cliente en ejecución Cliente en ejecución

Figura 2.8. Una primitiva senda con bloqueo.

-------4- ......f--------I..~Señalamiento r--R-e-g-re-s-o-----

d I. I Cliente bloqueado

e nuc eo del núcleo

Proceso de Procesobloqueado liberado

Envío del mensaje

En RECEIVE, el proceso se suspen­de hasta cuando llega un mensaje, in­cluso, aunque tarde varias horas. Enciertos sistemas el receptor puede es­pecificar de quiénes quiere recibir men­sajes, en cuyo caso permanece blo­queado hasta que llegue un mensaje delemisor especificado.

Una alternativa a las primitivas conbloqueo son las primitivas sin bloqueo oasíncronas, como se muestra en la Fi·gura 2.9. Si SENO no tiene bloqueo, re·gresa de inmediato el control a quienhizo la llamada, antes de enviar el menosaje. La ventaja de este esquema es queel proceso del emisor puede continuarsu cómputo, en forma paralela con latransmisión del mensaje, en vez de te­ner inactivo al CPU.

La elección entre las primitivas conbloqueo o sin bloqueo la hacen, por lo

:=========================~133ICES'

1: Transmisión2: Aquí estoy3: Solicitud

4: Respuesta

DIRECCION

DIRECCION

1: Búsqueda2: Respuesta a NS

3: Solicitud

4: Respuesta

Figura 2.7: Búsqueda de dirección pormedio de un servidor de nombres.

2.3.2. Primitivas de bloqueovs. no bloqueo

Las primitivas de transferencia demensajes, descritas hasta el momento,reciben el nombre de primitivas de blo­queo, a veces llamadas primitivassíncronas. Cuando un proceso llama unSENO, especifica un destino yun "buffer"dónde enviar ese destino. Mientras seenvía el mensaje, el proceso del emisorse bloquea. La instrucción que sigue ala llamada SENO se ejecuta cuando elmensaje se envía en su totalidad, comose muestra en la Figura 2.8. Oe maneraanáloga, una llamada a RECEIVE regre­sa el control cuando realmente se reci­be un mensaje Y éste se coloca en el"buffer" de mensajes a donde apunta el

parámetro.

~=.Red

Figura 2.6. Dirección de procesos contransmisión.

Servidor

DIRECCION

1: Solicitud a 243.0

2: Respuesta a 199.0

Figura 2.5. Dirección máquina-proceso.

132~=====================:::==,,..~;;,

lidad de que dos procesos elijan el mis­mo número es muy pequeña y el méto­do puede utilizarse en sistemas másgrandes. Sin embargo, aquí tambiénexiste un problema: ¿Cómo sabe el nú­cleo emisor a cuál máquina enviar elmensaje? La respuesta es simple; elnúcleo emisor transmite un paquete es­pecial de localización, con la direccióndel proceso-destino, a toda la red; porsu parte, los núcleos verifican si la di­rección en circulación es la suya y encaso que lo sea, regresa un mensajediciendo "aquí estoy", con su direcciónen la red; es decir, el número de la má­quina. En ese momento el núcleo emi­sor utiliza, entonces, esa dirección y lacaptura para evitar el envío de otra trans­misión la próxima vez que necesite alservidor, como se muestra en la Figura

2.6.El tercer método, para el direc­

cionamiento de procesos en un mode­lo-cliente servidor, consiste en utilizaruna máquina adicional, llamada servi­dor de nombres, que me servirá para laasociación, en códigoASCII, de los nom­bres de los servicios con las direccio­nes de las máquinas, como se muestraen la Figura 2.7; el servidor de nombresle suministra al cliente el número de lamáquina donde se localiza, en ese mo­mento, el servidor. Una vez obtenida ladirección, se puede enviar la solicitudde manera directa.

Page 12: SISTEMAS OPERATIVOS DISTRIBUIDOS - Icesi

2.3.3. Primitivas almacenadasen "buffer" va.no almacenadas

Las primitivas descritas hasta ahorason esencialmente primitivas no alma­cenadas, Esto significa que una direc­ción se refiere a un proceso específico.Una llamada RECEIVE (ADDR, &M) leindica al núcleo de la máquina en dón­de se ejecuta; además, que el procesoque hace la llamada escucha a la direc­ción ADDR y está preparada para reci­bir el mensaje enviado a esa dirección.

PRIMITIVAS ALMACENADAS VS. NOALMACENADAS

Figura 2.10. Transferencia de mensajessin almacenamiento en buffer.

2.3.4. Primitivas confiablesvs. no confiables

Hemos supuesto de una manera im­plícita que cuando un cliente envía unmensaje, el servidor lo recibirá. Losmensajes se pueden perder, lo cualafecta la semántica del modelo de trans­ferencia de mensajes. Cuando se utili­zan las primitivas por bloqueo y el clienteenvía un mensaje, se le suspende has­ta que el mensaje ha sido enviado. Sinembargo, cuando vuelve a iniciar, noexiste garantía alguna de que el men­saje ha sido entregado. El mensaje po­dría haberse perdido. Existen tres dis­tintos enfoques de este problema.

Se dispone de un único "buffer" de men­sajes, al que apunta M, con el fin de cap­turar el mensaje por llegar. Cuando elmensaje llega el núcleo receptor, lo co­pia al "buffer" y elimina el bloqueo delproceso receptor, como se muestra enla Figura 2.10.

Un ejemplo de primitiva almacenadaes aquél en el cual los mensajes quellegan al servidor son almacenados enun "buffer" llamado buzón. como se ilus­tra en la Figura 2.11.

PRIMITIVAS ALMACENADAS VS. NOALMACENADAS

La direcciónse refierea un buzón

0 CDNúcleo

I IFigura 2.11. Transferencia de mensajescon almacenamiento en buffer.

El primero consiste en volver a defi­nir la semántica del SEND para hacerlono confiable. El sistema no da garantíaalguna acerca de la entrega de los men­sajes. La implantación de una comuni­cación confiable se deja enteramente enmanos de los usuarios. La oficina de co­rreos funciona de esta manera. Cuan­do usted deposita una carta en un bu­zón, la oficina de correos hace lo mejorpor entregarla, pero no promete nada.

El segundo método exige que el nú­cleo de la máquina receptora envíe unreconocimiento al núcleo de la máqui­na emisora. Sólo cuando se reciba estereconocimiento el núcleo emisor Iibera-

rá el proceso hacia los usuarios (clien­tes). El reconocimiento va de un núcleoa otro; ni el cliente ni el servidor ven al­guna vez un reconocimiento, de la mis­ma forma que la solicitud de un clientea un servidor es reconocida por el nú­cleo del servidor; la respuesta del servi­dor, de regreso al cliente, es reconocidapor el núcleo del cliente. Así, una solici­tud de respuesta consta de cuatro men­sajes, como se muestra en la Figu­ra 2.12.

PRIMITIVAS CONFIABLES VS. NOCONAABLES

1 ~

~i~~3

E~4

Núcleo Núcleo

Iz

IRed

1. Solicitud (del cliente al servidor)2. Reconocimiento (de núcleo a núcleo)3. Respuesta del servidor al cliente4. Reconocimiento (de núcleo a núcleo)

Figura 2.12. Mensajes reconocidos en for­ma individual.

El tercer método aprovecha el hechoque la comunicación cliente-servidor seestructura como una solicitud del clien­te al servidor, seguida de una respuestadel servidor al cliente. En este método,el cliente se bloquea después de enviarun mensaje. El núcleo del servidor noenvía de regreso un reconocimiento sinoque la misma respuesta funciona comotal. Así, el emisor permanece bloquea­do hasta que regresa la respuesta. Sitarda demasiado, el núcleo emisor pue­de volver a enviar la solicitud, para pro­tegerse contra la posibilidad de una pér­dida elel mensaje. Este método se mues­tra en la Figura 2.13.

PRIMITIVAS CONAABLES VS. NOCONFIABLES

1 ~

C§~2

E~~Núcleo 3 Núcleo

I Red I1. Solicitud (del cliente al servidor)2. Respuesta (del servidor al cliente)3. Reconocimiento (de núcleo a núcleo)

Figura 2.13. La respuesta se utifiza comoreconocimiento de la solicitud.

El problema con el modelo básicocliente-servidor es que, desde el puntode vista conceptual, la comunicaciónentre procesos se maneja como E/S, yaque dicha comunicación utiliza uno delos modelos más sencillos de protoco­los (solicitud y respuesta). Ahora, cuan­do una colección de procesos, por ejem­plo servidores duplicados de archivo,tiene que comunicarse con otra comogrupo, se necesita algo más. Los siste­mas de tipo ISIS proporcionan una so­lución a este problema: la comunicaciónen grupo. ISIS ofrece una gama de pri­mitivas. de las cuales la más importan­te es CSCAST. CSCAST ofrece una se­mántica de comunicación débil con baseen la causalidad y se implanta median­te la inclusión de vectores de númerossecuenciales en cada mensaje, parapermitir al receptor que revise si el men­saje se debe entregar de manera inme­diata o retrasarse hasta que lleguen al­gunos mensajes anteriores; éstos noserán tratados por ser casos particula­res y más complicados.

De esta forma vemos que, gracias almodelo cliente-servidor, se puede en­tender un poco mejor cómo se desarro­llan las comunicaciones entre procesosen una red de terminales inteligentes y.además, los diferentes aspectos que se

134~====================:::===ICESI :=======================:=~135/CES/

Page 13: SISTEMAS OPERATIVOS DISTRIBUIDOS - Icesi

13~~========================ICESI :=========================~137ICESI

deberían tener en cuenta si se quisieradesarrollar un sistema de estas carac­terísticas; entre ellos aspectos de dise­ño, tales como si se utilizaran primitivasalmacenadas o no almacenadas, con­fiables o no confiables, con bloqueo osin bloqueo, etc.

3. SINCRONIZACION EN SISTEMASDISTRIBUIDOS

Un aspecto muy importante es la for­ma en que los procesos cooperan y sesincronizan entre sí. Por ejemplo, la for­ma de implantar las regiones críticas oasignar los recursos en un sistema dis­tribuido.

En los sistemas que sólo cuentan conuna CPU, los problemas relativos a lasregiones críticas, la exclusión mutua yla sincronización se resuelven, en ge­neral, mediante métodos tales como lossemáforos y 105 monitores. Estos méto­dos no son adecuados para su uso enlos sistemas distribuidos, puesto quesiempre se basan (de manera implícita)en la existencia de la memoria compar­tida.

3.1. Sincronización de relojes

La sincronización es más complejaen los sistemas distribuidos que en loscentralizados, puesto que los primerosdeben utilizar algoritmos distribuidos.

Por lo general no es posible (o reco­mendable) reunir toda la informaciónrelativa al sistema en un solo lugar ydespués dejar que cierto proceso la exa­mine y tome una decisión, como se haceen el caso centralizado.

En general los algoritmos distribuidostienen las siguientes propiedades:

1. La información relevante se distribu­ye entre varias máquinas.

2. Los procesos toman las decisionessólo con base en la información dis­ponible en forma local.

3. Debe evitarse un único punto de.ta­110 en el sistema.

4. No existe un reloj común o algunaotra fuente precisa del tiempo global.

Los primeros tres puntos indican quees inaceptable reunir toda la informaciónen un solo lugar para su procesamien­to; además, el hecho que sólo exista unsolo punto de fallo, como éste, hace queel sistema no sea confiable. La idea esque un sistema distribuido debería sermás confiable que las máquinas indivi­duales. Si alguna de ellas falla, el restopuede continuar su funcionamiento.

El último punto de la lista también escrucial. En un sistema centralizado, eltiempo no tiene ambigüedades. Cuan­do un proceso desea conocer la hora,llama al sistema y el núcleo se lo dice.En un sistema distribuido no es trivialponer de acuerdo todas las máquinasen la hora.

3.1 .1. Relojes lógicos

Casi todas las computadoras tienenun circuito para el registro del tiempodenominado cronómetro, el cual es, porlo general, un cristal de cuarzo trabaja­do con precisión. Cuando se mantienesujeto a tensión, un cristal de cuarzooscila con una frecuencia bien definida,que depende del tipo de cristal, la for­ma en que se corte y la magnitud de latensión. A cada cristal se le asocian dosregistros, un contadory un registro man­tenedor (holding register). Cada oscila­ción del cristal decrementa en uno alcontador. Cuando el contador toma elvalor cero, se genera una interrupción yel contador se vuelve a cargar median­te el registro mantenedor. De esta for­ma es posible programar un cronómetro,de modo que genere una interrupcióncon la frecuencia que se desee. Cadainterrupción recibe el nombre de unamarca de reloj.

Cuando se trabaja con varias máqui­nas, cada una con su propio reloj, la si­tuación es muy distinta de la que se pre­senta con un solo sistema. Aunque la

'f •

! .

frecuencia de un oscilador de cristal esmuy estable, es imposible garantizar quelos cristales de computadoras distintasoscilen con la misma frecuencia. En lapráctica, cuando un sistema tiene ncomputadores, los ncristales correspon­dientes oscilarán a tasas un poco dis­tintas, lo que provoca una pérdida desincronía en los relojes (de software) yque, al leerlos, tengan valores distintos.La diferencia entre los valores del tiem­po se llama distorsión del reloj. Comoconsecuencia de esta distorsión, po­drían fallar los programas que esperanel tiempo correcto, asociado a un archi­vo, objeto, proceso o mensaje; esto esindependiente del sitio donde haya sidogenerado (es decir, el reloj utilizado).

En un artículo clásico, Lamport (1978)demostró que la sincronización de relo·jes es posible y presentó un algoritmopara lograr esto. Lamport señaló que lasincronización de relojes no tiene queser absoluta. Si dos procesos no inte­ractúan, no es necesario que sus relo­jes estén sincronizados, puesto que lacarencia de sincronización no será ob­servable y, por tanto, no podría provo­car problemas. Además, señaló que loque importa, por lo general, no es quetodos los procesos estén de acuerdo demanera exacta en la hora sino que co­incidan en el orden en que ocurren loseventos.

Para la mayoría de los fines, bastaque todas las máquinas coincidan en lamisma hora. Para una cierta clase dealgoritmos, lo que importa es la consis­tencia interna de los relojes, no su cer­canía particular al tiempo real. Para es­tos algoritmos se conviene en hablar delos relojes como relojes lógicos. Parasincronizar los relojes lógicos, Lamportdefinió una relación llamada ocurre an­tes de (happens-before). La expresióna ~ b se lee: "a ocurre antes de b" eindica que todos los procesos coincidenen que primero ocurre el evento a y des-

pués el evento b. Esta relación se pue·de observar de manera directa en dossituaciones:

1. Si a y b son eventos en el mismoproceso y a ocurre antes de b, en­tonces a ~ b es verdadero.

2. Si a es el evento del envío de unmensaje por un proceso y b es elevento de la recepción del mensajepor otro proceso, entonces a ~ btambién es verdadero. Un mensajeno se puede recibir antes de ser en­viado o al mismo tiempo en que seenvía, puesto que tarda en llegar unacantidad finita de tiempo.

Si dos eventos x y y están en proce­sos diferentes que no intercambian men­sajes, entonces x~ y no es verdadero,pero tampoco lo es y ~ x. Se dice queestos eventos son concurrentes, lo quesignifica que nada se puede decir (o senecesita decir) acerca del momento enel que ocurren o cuál de ellos es el pri­mero.

Lo que necesitamos es una forma demedir el tiempo, tal que a cada evento ale podamos asociar un valor del tiempoC (a) en el que todos los procesos es­tén de acuerdo. El tiempo del reloj Csiempre debe ir hacia adelante (crecien­te) y nunca hacia atrás (decreciente). Sepueden hacer correcciones al tiempo, alsumar un valor positivo al reloj, peronunca se le debe restar un valor positi­vo.

En la Figura 3.1 (a) vemos un ejem­plo en donde existen tres procesos dife­rentes que se ejecutan en distintas má­quinas, cada una con su propio reloj yvelocidad. Cada reloj corre a una razónconstante, sólo que las razones son dis­tintas, debido a las diferencias en loscristales. Al tiempo 6, el proceso O en­vía el mensaje A al proceso 1; el relojdel proceso 1 lee 16 cuando el mensajellega. Si el mensaje acarrea el tiempode inicio, entonces el proceso 1 concluirá

Page 14: SISTEMAS OPERATIVOS DISTRIBUIDOS - Icesi

138~=========================ICES.

RELOJES LOGICOS

2 O

Figura 3.1 (a). Tres procesos, cada unocon su propio reloj. Los relojes corren adiferentes velocidades.

y el tiempo solar creciera hasta 800milisegundos constantes. Esta correc­ción da lugar a un sistema de tiempobasado en los segundos IAI, pero quepermanece en fase con el movimientoaparente del sol; se le llama tiempocoordenado universal (UTC).

Para proporcionar UTC a las perso­nas que necesitan un tiempo preciso, elInstituto Nacional del Tiempo Estándar(NIST) opera una estación de radio deonda corta, con las siglas WWV, desdeFort Collins, Colorado. WWV transmiteun pulso corto al inicio de cada segun-

.do UTC.

Varios satélites terrestres tambiénofrecen un servicio UTC, tal como elSatélite de Ambiente OperacionalGeoestacionario (GEOS).

3.1.3. Algoritmos parar laSincronización de Relojes

Si una máquina tiene un receptorWWV, entonces el objetivo es hacer quetodas las máquinas se sincronicen conella. Si ninguna máquina tiene recepto­res WWV, entonces cada máquina llevael registro de su propio tiempo y el obje­tivo es mantener el tiempo de todas lasmáquinas, tan cercano como sea posi­ble.

.El algoritmo de Berkeley

En este caso, el servidor de tiempo(en realidad, un demonio para el tiem­po) está activo y realiza un muestreoperiódico de todas las máquinas parapreguntarles el tiempo. Con base en lasrespuestas, calcula un tiempo promedioy les indica a todas las demás máqui­nas que avancen su reloj a la nueva horao que disminuyan la velocidad del mis­mo, hasta lograr cierta reducción espe­cífica. Este método es adecuado paraun sistema donde no exista un receptorde WWV. La hora del demonio, para eltiempo, debe ser establecida en formamanual por el operador, de manera pe­riódica.

3.1.2. Relojes f(slcos

Cuando existe la restricción adicio­nal de que los relojes no sólo deben seriguales sino que además no deben des­viarse del tiempo real más allá de ciertamagnitud, los relojes reciben el nombrede relojes físicos. Para estos sistemasse necesitan relojes físicos extemos. Porrazones de eficiencia y redundancia, porlo general, son recomendables variosrelojes físicos, lo cual implica dos pro­blemas:

1. ¿Cómo sincronizar los relojes con elmundo real?

2. ¿Cómo sincronizar los relojes entresr?

Con la invención del reloj atómico, en1948, fue posible medir el tiempo demanera mucho más exacta y en formaindependiente de todo el ir y venir de laTierra, al contar las transiciones del áto­mo de cesio 133. Los físicos retomaronde los astrónomos la tarea de medir eltiempo y definieron el segundo como eltiempo que tarda el átomo cesio 133para hacer exactamente 9.192.631.770transiciones.

Actualmente cerca de 50 laboratoriosen el mundo tienen relojes de cesio 133.En forma periódica, cada laboratorio leindica a la Oficina Intemacional de laHora en París (BIH) el número de mar­cas de su reloj. La oficina hace un pro­medio de estos números para producirel tiempo atómico inlemacional (TAl),que aunque es muy estable y está a dis­posición de todos los que quieran com­prarse un reloj de cesio, existe un serioproblema con él; 860400 segundos TAl,a un tiempo cerca de tres milisegundosmenor que el de un día solar medio, loque significaría que, con el paso de losaños, el medio día ocurrirra cada vezmás temprano.

La BIH resolvió el problema median­te la introducción de segundos de salto,siempre que la discrepancia entre elTAI

:=====================:=:==~139ICESI

2

o O O._.._--_.. -.._-_ .._- --_.._.._ --------6 8 10.. --- -------- -------- -..._-----12 16 20-----........._-- ..- ....-.._-- --..__......18 24 30

---...._- ------ ...- oo-24 32 40_._ .._-- oo ....._ ...._ .......... __.... __.. __.. __

--~º--- ------- --~-Q-_. -------- --~Q---36 • ~_~__• _ ~SL_

__1?___ _ ~_L. . '?Q _

--~--- -- .- --~-~--- -------- --ªQ---70 77 90.......-_..... --_...._........~------ _.._-oo---76 85 100

ocurren eventos en los procesos 1 y 2,ambos en el tiempo 40, entonces el pri­mero se convierte en 40.1 y el segundoen 40.2.

Por medio de este método tenemosahora una forma de asignar un tiempo atodos los eventos en un sistema distri­buido, con las siguientes condiciones:

1. Si a ocurre antes de b en el mismoproceso, C (a) < C(b).

2. Si a y b son el envío y recepción deun mensaje, C (a) < C(b).

3. Para todos los eventos a y b,C(a) ~C(b).

En la solución propuesta por Lamport,para la asignación de tiempos a loseventos, Figura 3.1. (b), cada mensajeacarrea el tiempo de envío de acuerdocon el reloj del emisor. Cuando un men­saje llega y el reloj del receptor muestraun valor anterior al tiempo en que seenvió el mensaje, rápidamente el recep­tor adelanta su reloj para que tenga unaunidad más que la del tiempo de envío.

Figura 3.1 (b). El algoritmo de Lamport. corrige los errores.

O----_ ...---------10------- --------20._----- --_...----30

...- ...... -----_.....40------- --------50------- --------60

...- ........-------70----_.... --------80..oo ... __.. - .... _

90_..._---- ..._------

100

O

O O-------- ..._----- ------_...6 8

...------- _e. __12 16......._......- -------18 24

...----_ -- - -----24 32

..------- ------ --------30 40-------- ------- ------......36 48

..._------ ------- --------42 56

_..._----- ------- ----_..._-48 64--_...__ ...- --54 72...._---- -_Oo_----60 80

Este algoritmo satisface nuestrasnecesidades para el tiempo global, conuna pequeña adición, que entre cuales­quiera dos eventos, el reloj debe mar­car al menos una vez. Si un procesoenvía o recibe dos mensajes en seriemuy rápidamente, debe avanzar su re­loj en (al menos) una marca entre ellos.

En ciertas situaciones existe un re­quisito adiCional: dos eventos no debenocurrir exactamente al mismo tiempo.Para lograr esto podemos asociar elnúmero del proceso en que ocurre elevento y el extremo inferior del tiempo, .separados por un punto decimal. Así, si

que tardó 10 marcas de reloj en hacerel viaje. El mensaje B, de 1 a 2, tarde 16marcas que, al igual que A, es un valorplausible.

El problema está en los mensajes Cy D, puesto que van de un valor mayora uno menor; estos valores sonimposi­bies y ésta es la situación que hay queevitar.

Page 15: SISTEMAS OPERATIVOS DISTRIBUIDOS - Icesi

(e). Cuando el proceso 1sale de la región crrtica, selo dice al coordinador, el cualresponde, entonces, a 2.

ceso 2, que espera una respuesta. Otraaltemativa consiste en enviar una res­puesta que diga ·permiso denegado".De cualquier manera, forma en una colala solicitud de 2, por el momento.

Cuando el proceso 1 sale de la re­gión crítica, envía un mensaje al coor­dinador, para liberar su acceso exclusi­vo, Figura 3.3 (e). El coordinador ex­trae el primer elemento de la cola desolicitudes diferidas y envía a ese pro­ceso un mensaje que otorga el permi­so. Si el proceso estaba bloqueado (esdecir, éste es el primer mensaje que sele envía), elimina el bloqueo y entra enla región crítica.

Es fácil ver que el algoritmo garanti­za la exclusión mutua: el coordinadorsólo deja que un proceso esté en cadaregión crítica a la vez. También es jus­to, puesto que las solicitudes se aprue­ban en el orden en que se reciben. Nin­gún proceso espera por siempre. Esteesquema también es fácil de implantarysólo requiere tres mensajes, por cadauso de una región crítica (solicitud, otor­gamiento, liberación).

(b). El proceso 2 pide, en­tonces, permiso para en­trar en la misma región crr­tica.

EXCLUSION MUTUA: Algoritmo centralizado

3.2.1. Un algoritmo centralizado

La forma más directa de lograr la ex­clusión mutua, en un sistema distribui­do, es simular la forma en que se lleva acabo en un sistema con un únicoprocesador. Se elige un proceso comoel coordinador; siempre que un procesodesea entrar en una región crítica envíaun mensaje de solicitud al coordinador,donde se indica la región crítica en laque desea entrar y pide permiso. Sí nin­gún otro proceso está por el momentoen esa región crítica, el coordinador en­vía una respuesta para el permiso. Fi­gura 3.3 (a).

Cuando llega la respuesta, el proce­so solicitante entra en la región crítica.Supongamos ahora que otro proceso,2, Figura 3.3 (b), pide permiso para en­trar en Ja misma región crítica. El coor­dinador sabe que un proceso distinto yase encuentra en esta región, por lo queno puede otorgar el permiso. El métodoexacto utilizado para negar el permisodepende de la máquina. En la Figura 3.3(b) el coordinador s610 se abstiene deresponder, con lo cual se bloquea el pro-

Figura 3.3 (a). El proceso1 pide permiso al coordi­nador para entrar en unaregión crrtica. El permisoes concedido.

:==========================~141ICESI

DT3:05

3:05

(e) El demonio para el tiem­po les dice a todas la for­ma de ajustar sus relojes.

sencillo consiste en promediar los valo­res de todas las demás máquinas.

Una ligera variación de este temaconsiste en descartar primero tos mva­lores más grandes y los m valores máspequeños y promediar el resto. El he­cho de descartar los valores extremosse puede considerar como autodefe~sa

contra m relojes fallidos que envlanmensajes sin sentido.

3.2. Exclusión mutuaLos sistemas con varios procesos se

programan más fácilmente mediante lasregiones críticas. Cuando un procesodebe leer o actualizar ciertas estructu­ras de datos compartidas, primero en­tra en una región crítica para lograr laexclusión mutua y garantizar que nin­gún otro proceso utilizará las estructu­ras de datos al mismo tiempo. Ana­lizaremos algunos ejemplos de implan­tación de las regiones críticas y exclu­sión mutua en los sistemas distribuidos.

como la del demonio. Con estos núme­ros el demonio calcula el tiempo pro­medio y le dice a cada máquina cómoajustar su reloj (e).

3:25

(b). Las máquinas contes­tan.

140~=========================ICE"

Algoritmos con promedioEl método anterior es altamente cen­

tralizado. Una clase de algoritmos de re­loj descentralizada trabaja ~ara d~vidi~ eltiempo en intervalos de resl~cromzac~ó~de longitud fija. El j-ésimo Intervalo 101­

cia en 10 + iRy va hasta 10 + (i + 1) Rdonde 10 es un momento ya acordadoen el pasado y R es un parámetro delsistema.Al inicio de cada intervalo, cadamáquina transmite el tiempo actual, se­gún su reloj. Puesto que los relojes d~las diversas máquinas no corren preci­samente a la misma velocidad, estastransmisiones no ocurrirán exactamen­te en forma simultánea.

Después de que una máquina trans­mite su hora, inicializa un cronómetro lo­cal, para reunir las demás transmisionesque lleguen en cierto intervalo S. cu~n­do llegan todas las transmisiones, se eJe­cuta un algoritmo para calcular una nue­va hora para ellos. El algoritmo más

Figura 3.2 (a). El demoniopara el tiempo pregunta atodas las otras máquinaspor el valor de sus relojes.

En la Figura 3.2 (a), a las 3:00, eldemonio para el tiempo indica, a lasdemás máquinas, su hora y les pregun­ta las suyas. En (b), las máquinas res­ponden, con la diferencia de sus horas

EL ALGORITMO DE BERKELEY

Page 16: SISTEMAS OPERATIVOS DISTRIBUIDOS - Icesi

142-r=====================::::=ICESI

EXCLUSION MUTUA: Algorlbno distribuido

El poseedor delelemento puedeentrar en la regióncrítica o transferirel elemento.

o~K

o 0Entra a la regi6n

crItica

(e). Cuando se termina elproceso 0, envía un OK,por lo que 2 puede ahoraentrar en la región crítica.

(b). Un anillo ló­gico construidoen software.

Red

el anillo. Se transfiere del proceso k alproceso k +1 en mensajes puntuales.Cuando un proceso obtiene la ficha desu vecino, verifica si intenta entrar en unaregión crítica. En ese caso, el procesoentra en la región, hace todo el trabajonecesario y sale de la región. Despuésde salir, pasa la ficha a lo largo del ani­llo. No se permite entrar en una segun­da región crítica con la misma ficha.

Si un proceso recibe la ficha de suvecino y no está interesado en entrar enuna región crítica, sólo la vuelve a pa­sar. En consecuencia, cuando ningunode los procesos desea entrar en una re­gión crítica, las fichas sólo circulan a granvelocidad en el anillo.

(b). El proceso Otiene unamarca de tiempo menor, .por lo que gana.

Figura 3.5(a) Un grupono ordenadode procesosen una red.

3.2.3. Un algoritmo de anillode fichas (Token Rlng)

Este es un método completamentedistinto para lograr la exclusión mutuaen un sistema distribuido. Se tiene porejemplo una red basada en un bus, Fi­gura 3.5 (a). En software se construyeun anillo lógico y a cada proceso se leasigna una posición en el anillo, Figura3.5 (b). Las posiciones en el anillo sepueden asignar en orden numérico delas direcciones de la red o mediante al­gún otro medio. Lo importante es quecada proceso sepa quién es el siguien­te en la fila después de él.

Al iniciar el anillo, se le da al procesoO(cero) una ficha, la cual circula en todo

EXCLUSION MUTUA: Anillo de fichas (Token Ring)

8

80/~

0- @.:12

Figura 3.4(8). Dos proce­sos desean entrar en lamisma región crítica en elmismo momento.

::::=======================:-:143ICES'

nor, el receptor envía de regreso unmensaje OK Si su propio mensajetiene una marca menor, el receptorforma la solicitud en una cola y noenvía nada.

Después de enviar las solicitudes quepiden permiso para entrar en una regióncrítica, un proceso espera hasta que al­guien más obtenga el permiso. Tan pron­to llegan todos los permisos, puedenentrar en la región crítica. Cuando salede ella, envía mensajes OKa todos losprocesos en su cola y elimina a todoslos elementos de la cola.

En el ejemplo de la Figura 3.4 (a) semuestra qué sucede si dos procesosintentan entrar en la misma región críti­ca de manera simultánea. El proceso Oenvía, a todos, una solicitud con la mar­ca de tiempo 8, mientras que al mismotiempo el proceso 2 envía, a todos, unasolicitud con la marca de tiempo 12. Elproceso 1 no se interesa en entrar en laregión crítica, por lo que envía OK aambos emisores. Los procesos Oy 2 venel conflicto y comparan las marcas. Elproceso 2 pierde y envía un OK a O. Elproceso Oentra en la región crítica, Fi­gura 3.4 (b). Cuando termina, retira lasolicitud de 2 de la cola y envía un OKa2 y éste entra en la región crítica, Figu­ra 3.4 (c).

Como en el caso del algoritmo cen­tralizado, la exclusión mutua queda ga­rantizada, sin bloqueo ni inanición. Elúnico punto de fallo es reemplazado porn puntos de fallo. Si cualquier procesofalla, no podrá responder a las solicitu­des. Este silencio será interpretado (in­correctamente) como una negación delpermiso, con lo que se bloquearán lossiguientes intentos de los demás proce­sos para entrar en todas las regionescríticas.

Es posible mejorar un poco estealgoritmo. Por ejemplo, la obtención delpermiso de todos para entrar en unaregión crítica es realmente redundante.Todo lo que se necesita es un métodopara evitar que dos procesos entren enla misma región crítica al mismo tiem­po.

El método centralizado también tie­ne limitaciones. El coordinador es unúnico punto de fallo, por lo que, si sedescompone, todo el sistema se puedevenir abajo. Si los procesos se bloquean,por lo general después de hacer unasolicitud, no pueden distinguir entre ·uncoordinador muerto" y un "permiso ne­gado", puesto que en ambos casos noreciben una respuesta. Además, en unsistema de gran tamaño, un único coor­dinador puede convertirse en un cuellode botella para el desempeño.

3.2.2. Un algoritmo distribuidoRicart yAgrawala (1981 ) hicieron más

eficaz el artículo de Lamport (1978), re­lativo a la sincronización de los relo­

'-',~s, que fue el primer algoritmo distribui­do.

El algoritmo de Ricart y Agrawala re­quiere la existencia de un orden total detodos los eventos en el sistema; debeser claro cuál de ellos ocurrió primero,

Cuando un proceso desea entrar enuna región crítica, construye un mensa­je con el nombre de ésta, su número deproceso y la hora actual. Entonces, en­vía el mensaje a todos los demás pro­cesos y, de manera conceptual, a él mis­mo.

Cuando un proceso envía un men­saje de solicitud de otro proceso, la ac­ción que realice depende de su estadocon respecto de la región crítica nom­brada en el mensaje. Hay que distinguirtres casos:

1. Si el receptor no está en la regióncrítica y no desea entrar en ella, en­vía de regreso un mensaje OK alemisor.

2. Si el receptor ya está en la regióncrítica, no responde sino que formala solicitud en una cola.

3. Si el receptor desea entrar en la re­gión crítica pero no lo ha logrado to­davía, compara la marca de tiempoen el mensaje recibido con la marcacontenida en el mensaje que enviócada uno. La menor de las marcasgana. Si el mensaje recibido es me-I

I

i

!IIIli

Page 17: SISTEMAS OPERATIVOS DISTRIBUIDOS - Icesi

144~=====================::::=ICESI

Elecciónf:\ Elección

\!!.-J~ ./Elección

X ¿ 0 (e). Ahora 5 y 6 hacen una elección.

gura 3.6 (b); el proceso 4 sabe que en gura 3.6 (d) el proceso 6 indica a 5 queeste momento ha terminado su trabajo. toma~á el control. Cuando está listo paraEn la Figura 3.6 (c), tanto 5 como 6 rea· a~umlr el control, el proceso 6 lo anun-lizan elecciones enviando mensajes a cla, para lo cual envía mensajes coordi-procesos mayores que ellos. En la Fi- nadara todos los procesos en ejecución.

ALGORITMOS DE ELECCION: Algoritmo del grandulón

088

00 00~

B_6n-0 ~OK-0Elección

r::~ "- OK~60'ecc;ón ~0 0) Vo0) .n"~~~':7,'~ .:..·······0 0)F~gura3.6 (a). Elproceso 4 hace una elec- (b). El proceso 5 y 6 responde e indica a 4ción. que se detenga.

(d). El proceso 6 indica a 5 que se detenga. (e). El proceso 6 gana y se lo informa a todos.

0880)08

:::======:::==:==:::==:==::~145ICESI

3.3.1. El algoritmo del grandulón

Diseñado por García-Molina (1982).Cuando un proceso observa que el coor­dinador ya no responde a las solicitu­des, inicia una elección. Un proceso Prealiza una elección de la siguiente ma­nera:

1. P envía un mensaje elección a losdemás procesos, con un número

. mayor.

2. Si nadie responde, P gana la elec·ción y se convierte en el coordina­dor.

3. Si uno de los procesos, con un nú­mero mayor, responde, toma el con­trol. El trabajo de P termina.

En cualquier momento un procesopuede recibir un mensaje elección deuno de sus compañeros, con un núme­ro menor. Cuando esto sucede, el ra­ceptor envía de regreso un mensaje DKal eniisor para indicar que está vivo yque tomará el control. El receptor reali­za entonces una elección, a menos queya esté realizando alguna. En ciertomomento, todos los procesos se rinden,menos uno, el cual se convierte en elnuevo coordinador. Anuncia su victoriaal enviar un mensaje a todos los proce­sos para indicarles que, a partir de esemomento, es el nuevo coordinador.

Si un proceso inactivo se activa, rea­liza una elección. Si ocurre que es elproceso en ejecución, con el nÚmeromáximo, ganará la elección y tomarápara sí el trabajo del coordinador. Así,siempre gana el tipo más grande; de ahíel nombre.

En la Figura 3.6 vemos el funciona­miento de este algoritmo. El grupo cons·ta de ocho procesos, numerados de Oa17. El proceso 7 era el coordinador peroacaba de fallar. El proceso 4 lo nota yenvía mensajes elección a los procesosmayores que el 5, 6 Y 7, Figura 3.6 (a).Los procesos 5 Y 6 responden OK Fi·

3.3. Algoritmos de elección

Muchos de los algoritmos distribuidoSnecesitan que un proceso actúe comocoordinador, iniciador, secuenciador oque desempeñe, en cierta forma, algúnpapel especial. Si todos los procesosson idénticos, no existe forma de elegiruno de ellos como especial. En conse­cuencia, supondremos que cada proce­so tiene un número único; por ejemplo,su dirección en la red. En general losalgoritmos de elección intentan localizarel proceso con el máximo número delproceso y designarlo como coordinador.

Además, también supondremos quecada proceso sabe el número del pro­ceso de todos los demás; lo que sí des­conoce es si los procesos están activoso inactivos. El objetivo de un algoritmode elección es garantizar que al iniciaruna elección, ésta concluya con elacuerdo de todos los procesos con res­pecto a la identidad del nuevo coordina­dor.

También este algoritmo tiene proble­mas. Si la ficha llega a perderse, debeser regenerada. De hecho es difícil de­tectar su pérdida, puesto que la canti­dad de tiempo entre las apariciones su­cesivas de la ficha en la red no está aco­tada. El hecho que la ficha no se hayaobservado durante una hora no signifi­ca su pérdida; tal vez alguien la está uti­lizando.

El algoritmo también tiene problemassi falla un proceso. Si pedimos un reco'nocimiento a cada proceso que recibala ficha, entonces se detectará un pro­ceso muerto si su vecino intenta darlela ficha y fracasa en el intento. En esemomento el proceso muerto se puedeeliminar del grupo y el poseedor de laficha puede enviar ésta, por encima dela cabeza del proceso muerto, al siguien­te miembro, o al siguiente después deéste, en caso necesario.

Page 18: SISTEMAS OPERATIVOS DISTRIBUIDOS - Icesi

ALGORITMOS DE ELECCION: Algoritmo de anillo

Detección distribuida de bloqueos

Un algoritmo típico es el algoritmo deChandy-Misra-Haas. Este permite quelos procesos soliciten varios recursos(por ejemplo, cerraduras) al mismo tiem­po, en vez de uno cada vez. Al permitirlas solicitudes simultáneas de varios pro­cesos, la fase de crecimiento de unatransacción se puede realizar muchomás rápido. La consecuencia de estecambio al modelo es que un procesopuede esperar ahora a dos o más re­cursos en forma simultánea.

El algoritmo Chandy-Misra-Haas seutiliza cuando un proceso debe esperarcierto recurso.

Un algoritmo alternativo consiste enque cada proceso añada su identidad alfinal del mensaje de exploración, demodo que cuando regrese al emisor ini­cial se enliste todo el ciclo. El emisorpuede ver, entonces, cuál de los proce­sos tiene el número más grande yelimi­narlo, o bien enviar un mensaje que lepidaque se elimine a sí mismo. De cual­quier forma, si varios procesos descu­bren el mismo ciclo al mismo tiempo,todos elegirán la misma víctima.

3.4.2. Prevención distribuidade bloqueos

Consiste en el diseño cuidadoso delsistema, de modo que los bloqueos seanimposibles, desde el punto de vista es­tructural. Entre las distintas técnicas seincluye el permitir a los procesos quesólo conserven un recurso a la vez; exi­gir a los procesos que soliciten todos susrecursos desde un principio y hacer quetodos los procesos liberen todos susrecursos cuando soliciten uno nuevo.

En un sistema distribuido con tiempoglobal y transacciones atómicas sonposibles otros algoritmos prácticos.Ambos se basan en la idea de asociar,

3.4. Bloqueos en sistemasdistribuidos

Son más difíciles de evitar, prevenire incluso detectar, además de ser másdifíciles de curar cuando se les sigue lapista, puesto que toda la informaciónrelevante est,á dispersa en muchas má­quinas.

Existen cuatro estrategias usualespara el manejo de los bloqueos:

1. El algoritmo del avestruz. (ignorar elproblema).

2. Detección (permitir que ocurran losbloqueos, detectarlos e intentar re­cuperarse de ellos).

3. Prevención (hacer que los bloqueossean imposibles desde el punto devista estructural).

4. Evitarlos (evítar los bloqueos me·diante la asignación cuidadosa delos recursos).

Las cuatro estrategias son aplicablesde manera potencial a los sistemas dis­tribuidos. Nuestro análisis de los blo­queos de los sistemas distribuidos secentrará solamente en dos de las técni­cas: detección y prevención.

3.4.1. Detección distribuidade bloqueos

.Detección centralizadade bloqueos

Aunque cada máquina mantiene lagráfica de recursos de sus propios pro­cesos y recursos, un coordinador cen­tral mantiene la gráfica de recursos detodo el sistema (la unión de todas lasgráficas individuales). Cuando el coor·dinador detecta un ciclo, elimina uno delos procesos para romper el bloqueo.

A diferencia del caso centralizado,donde se dispone de toda la informa­ción de manera automática en el lugarcorrecto, en un sistema distribuido estainformación se debe enviar de maneraexplícita.

:=========================~147ICESI

propio número de proceso. ~n este pun:to el mensaje escrito cambia a COOrdl­

nadory circula de nuevo, esta vez parainformar a todos los demás quién es elcoordinador (el miembro de la lista conel número máximo) y quiénes son losmiembros del nuevo anillo. Una vez hacirculado, el mensaje se elimina y todosse ponen a trabajar. En la Figura 3.7vemos qué ocurre si dos procesos, 2 y5, descubren simultáneamente que hafallado el coordinador, proceso 7. Cadauno construye un mensaje elección ycomienza a circularlo. En cierto momen­to ambos mensajes habrán dado la vuel­ta y ambos se convertirán en mensajescoordinador, con los mismos miembrosy en el mismo orden. Cuando han dad~

una vuelta completa, ambos serán eh­minados.

IgI

El coordinador (:;\anterior ha fallado~

.........

.N~ hay respuest~'"

Figura 3.7(a) Algoritmo de elección mediante un anillo.

146~=========================ICE:'

3.3.2. Un algoritmo de anillo

Suponemos que los procesos tienenun orden, físico o lógico, de modo quecada proceso conoce a su sucesor.Cuando algún proceso observa que elcoordinador no funciona, construye unmensaje elección con su propio núme­ro de proceso y envía el mensaje ~ susucesor. Si éste está inactivo, el emisorpasa sobre el sucesor y va ha~ia ~I si­guiente número del anillo o al sigUientede éste hasta localizar un proceso enejecuci6n. En cada paso el emisor añ.a­de su propio número de proceso a la lis­ta en el mensaje.

En cierto momento el mensaje regre­sa a los procesos que lo iniciaron. Eseproceso reconoce este evento cuandorecibe un mensaje de entrada con su

!!I11., !,11

1

'

Page 19: SISTEMAS OPERATIVOS DISTRIBUIDOS - Icesi

Contador del programa

los sistemas operativos tradicionales,cada proceso tiene un espacio de direc­ciones y un único hilo de control (puedeser ésta una aproximada definición deun proceso); a pesar de que frecuente­mente existan situaciones en donde sedesea tener varios hilos de control quecompartan el mismo espacio de direc­ciones, pero que se ejecuten de mane­ra cuasi-paralela, como si fuesen pro­cesos independientes (siendo su únicadiferencia que comparten el mismo es­pacio de direcciones).

En la Figura 4.1, parte (a), se tieneuna máquina con tres procesos. Cadauno de ellos posee su propio contadordel programa, su propia pila', su propioconjunto de registros y su propio espa­cio de direcciones. Los procesos no tie­nen ninguna relación entre sí; la únicamanera posible de comunicación seríamediante las primitivas de comunicaciónentre procesos del sistema, como lossemáforos, monitores o mensajes. Enla parte (b) se tiene otra máquina conun solo proceso, con la única diferenciaque éste tiene varios hilos de control,los cuales generalmente son llamadoshilos o procesos ligeros. En muchasocasiones se pueden considerar los hi­los como unos miniprocesos. Cada hilose ejecuta de manera estrictamentesecuencial y tiene su propio contador delprograma y una pila para llevar un re­gistro de su posición.

Proceso Hilos

Computadora

Figura 4.1 (a). Tres procesos con un hilo cada uno.

(b). Un proceso con tres hilos.

La Figura 3.9 (a) recibe el nombreDerecho de prioridad y la (b) se deno­mina espera. Este algoritmo se llamaherida-espera. Si un proceso antiguodesea un recurso mantenido por unojoven, el proceso antiguo ejerce su de­recho de prioridad sobre el joven, Figu­ra 3.9 (a). Es probable que el joven vuel­va a iniciar su ejecución de manera in­mediata, con lo que intentaría adquirirde nuevo el recurso; esto lleva a la si·tuación de la Figura 3.9 (b).

4. PROCESOS Y PROCESADORESEN SISTEMAS DISTRIBUIDOS

Aunque los procesos son un concep­to muy importante en los sistemas deun procesador, se tratará de hacer én­fasis en los aspectos del manejo de pro­cesos que frecuentemente no son estu­diados en el contexto de los sistemasoperativos clásicos.

En la mayoría de los sistemas distri·buidos se presenta la posibilidad de te­ner muchos hilos ("threads") de controldentro de un proceso, lo cual llevará atener ventajas significantes, pero tamobién se presentarán varios problemasque serán estudiados más adelante.

4.1. Hilos

Los hilos se inventaron para permitirla combinación del paralelismo con laejecución secuencial yel bloqueo de lasllamadas al sistema. En la mayoría de

:=========================~149ICESI

(b)

(b)

Muerte

en la cadena en forma descendente.

Aunque las dos opciones previenenlos bloqueos, es más sabio dar priori­dad a los procesos más viejos. Se hanejecutado durante más tiempo, por loque el sistema ha invertido mucho enellos y es probable que conserven más

recursos.

En la Figura 3.8 (a), un proceso anti­guo desea un recurso que mantiene unproceso joven; debemos permitir al pro­ceso que continúe. En (b), un procesojoven desea un recurso que mantieneun proceso antiguo; en este caso, lodebemos eliminar. Este algoritmo sedenomina espera-muerte.

BLOQUEOS: Prevención distribuida

Conserva recursos Desea recursos Conserva recursos

(a)

(a)

Espera

Figura 3.8. Algoritmo espera-muerte para la prevención de bloqueos.

C rva recursos Desea recursos Conserva recursosDesea recursos onse

148~!!!!!!!!!!!!!!~~~~~~~::::==========:=::

Derecho Esperade prioridad

Figura 3.9. Algoritmo herida-muerte para la prevención de bloqueos.

a cada transacción, una marca de tiem­po global al momento de su inicio.

La idea detrás de este algoritmo esque cuando un proceso está a punto debloquearse, en espera de un recurso queestá utilizando otro proceso, se verificacuál de ellos tiene la marca de tiempomayor (es decir, es más joven).

Podemos permitir, entonces, la espe­ra s610 si el proceso en estado de espe­ra tiene una marca inferior (más viejo)que el otro. Otra alternativa consiste enpermitir la espera de procesos sólo si elproceso que espera tiene una marcamayor (es más joven) que el otro proce­so, en cuyo caso las marcas aparecen

Page 20: SISTEMAS OPERATIVOS DISTRIBUIDOS - Icesi

Figura 4.2 Conceptos por hilo y por proceso

En la figura, parte (c), se ilustra elmodelo de entubamiento, en el cual elprimer hilo genera ciertos datos y lostransfiere al siguiente, para su procesa­miento. Los datos pasan de hilo en hiloy, en cada etapa, se lleva a cabo ciertotipo de procesamiento. Esto puede lle­gar a ser una buena solución en proble­mas como el de productores y consu­midores, pero no sería adecuado paraservidores de archivos. Los entu­bamientos se utilizan· ampliamente enmuchas áreas de los sistemas de cóm­puto, desde la estructura intema de laCPU RISC, hasta las líneas de coman­dos de UNIX.

(e)

L=::::::====:J.......-i~N:..=úcI=· eo

Figura 4-3. Tres organizaciones de hilos en un proceso.

Buzón~) (~

S/ague,--;========::::;-_-jC8clié

Uega una solicitudde trabajo r-----==,.........----,

Hilo del servidor

Hilo del trabajadorr--\------==~----f~

y dirá si se puede satisfacer esa solici­tud.

En el modelo de equipo, parte (b),todos los hilos son iguales y cada unoobtiene y procesa sus propias solicitu­des. Como se puede observar en la fi­gura, no hay servidor, y a veces llegaun trabajo que un hilo no puede mane­jar, ya que cada hilo se especializa enmanejarcierto tipo de trabajo. Para estecaso, se puede manejar una cola de tra­bajo pendiente. Con este tipo de orga­nización, un hilo debe verificar primerola cola de trabajo, antes de buscar en elbuzón del sistema.

:=========================~151ICESI

Elementos por proceso

de hilos en un proceso. En la parte (a)se muestra una primera organización enla que un hilo, el servidor, lee las solici­tudes de trabajo en el buzón del siste­ma. Después de examinar la solicitud,él elige un hilo trabajador inactivo (blo­queado) y le envía la correspondientesolicitud, lo cual se realiza, con frecuen­cia, al escribir un apuntador el mensaje,en una palabra especial asociada a cadahilo, dando como resultado que el servi­dor despierte al trabajador dormido.Cuando el trabajador despierta, hace lacorrespondiente verificación por mediodel bloque Caché compartido, el cualpuede ser accesado por todos los hilos

Espacio de direcciónVariables globalesArchivos abiertosProcesos fijosCrohómetrosSeñalesSemáforos

Información contable.

procesos distintos; todos los hilos tienenel mismo espacio de direcciones, lo cualquiere decir que comparten las mismasvariables globales. Cada hilo puede te­ner acceso a cada dirección virtual, ypuede realizar las siguientes tareas: leer,escribir o limpiar de manera completa lapila de otro hilo. Como se puede obser­var, no existe ninguna protección entrelos hilos, ya que podría llegar a ser casiimposible y, en muchos casos, hastainnecesario.

Además de poseer el mismo espaciode direcciones, todos los hilos compar­ten el mismo conjunto de archivos abier­tos, procesos hijos, cronómetros, seña·les, etc., como se ilustra en la Figura 4.2.

En los procesos tradicionales (proce­sos con único hijo) los hilos pueden te­ner uno de los siguientes estados: enejecución, bloqueado, listo o terminado.Un hilo en ejecución posee la CPU y seencuentra activo. Un hilo bloqueado es­pera que otro elimine el bloqueo (comoocurre en un semáforo). Un hilo listo estáprogramado para su ejecuCión, la cualla realizará cuando llegue su debido tur­no. y por último, un hilo terminado esaquél que ha hecho su salida pero quetodavía no es recogido por su padre.

En la Figura 4.3 se ilustra un ejemplode servidor de archivos, el cual muestralas diferentes formas de organizaciones

Efementos por hilo

Contador del prog.

Pila

Conj. de registros

Hilos de los hijos

Estado

Los hilos comparten la CPU de lamisma forma que lo realizan los proce­sos: primero se ejecuta un hilo y des~

pués otro (tiempo compartido).

Solamente teniendo un multipro­cesador se podrían ejecutar realmenteen paralelo.

Otra característica de los hilos es queéstos pueden crear hilos hijos y se pue­den bloquear en espera de que se ter­minen los llamados al sistema, al igualque en los procesos regulares. Mien­tras un hilo se encuentre bloqueado sepuede ejecutar otro hilo del mismo pro­ceso (igualmente ocurre cuando se blo­quea un proceso).

Claro está que los hilos no son tanindependientes como ocurre en los

150~::::::::::::::::=:=:::::::::ICESI

1,

I

Page 21: SISTEMAS OPERATIVOS DISTRIBUIDOS - Icesi

152~=========================ICESI

Figura 4.64.2.2. El modelo de la pila

de procesadores

El método de la pila de procesadoresse ilustra en la Figura 4.7. Como se pue­de observar en el gráfico, en este mo­delo se les proporcionan terminales grá­ficas de alto rendimiento, denotadas enla figura con la letra X. Esta implemen­tación se hace debido a que los usua­rios desean tener una interface gráfica,de alta calidad y un buen desempeño.

La creación del modelo de la pila deprocesadores surge para complemen­tar la idea de las estaciones de trabajosin disco. Como el sistema de archivosse concentra en un pequeño número deservidores, para economizar la escala,se tomó la idea de hacer lo mismo paralos servidores de computadoras. Tenien­do como base lo anterior, se colocan

ceder a los sistemas de archivos deotras máquinas, lo cual da como re­sultado reducir el contacto con elmundo exterior, generando así pocacarga a la red, pero ocasionaría suprincipal desventaja, que será la deconvertirse en un sistema operativode red y no en un verdadero siste­ma distribuido.

Ventajas de las estacionesde trabajo

1. Los usuarios tienen una cantidad fijade poder de cómputo exclusivo, ga­rantizando así su propio tiempo derespuesta.

2. Los programas gráficos sofisticadospueden ser muy rápidos, ya que pue­den tener un rápido acceso a la pan­talla.

3'. Cada usuario tiene un alto grado deautonomía y puede asignar sus re­cursos correspondientes como lojuzgue necesario.

4. Los discos locales hacen posible quelos trabajos continúen si el servidorde archivos llega a fallar.

co son: su fácil mantenimiento y su fle­xibilidad; por todo esto, la gran mayoríade estas estaciones se encuentra insta­lada en universidades y empresas.

Si la estación de trabajo tiene suspropios discos, podrán ser utilizados delas siguientes maneras:

1. Paginación y archivos temporales.

En este modelo los discos locales seutilizan exclusivamente para la pa­ginación y los archivos temporalesno compartidos, que se puedan eli­minar al final de la sesión.

2. Paginación, archivos temporales ybinarios del sistema.

Presenta las mismas característicasque el punto anterior, con la únicavariante que los discos locales tam­bién contienen los programas enbinario (ejecutables), tales comocompiladores, editores de texto ymanejadores de correo electrónico.Cuando se llama a alguno de estosprogramas, se le busca en el discolocal y no en el servidor de archivos,lo cual reduce la carga en la red.

3. Paginación, archivos temporaJes,binarios del sistema y ocultamientode archivos.

Este método consiste en utilizar, deforma explícita, los discos localescomo "cachés" (además de utilizar­los para la paginación, los archivostemporales y los binarios). Los usua­rios pueden cargar los archivos des­de los servidores de archivos hastasus propios discos; leerlos y escribiren elios, de manera local y despuésregresar los archivos modificados,reduciendo la carga en la red, almantener los archivos modificadosal final de la sesión.

4. Un sistema local de archivos com­pleto.

En este caso cada máquina tiene supropio sistema de archivos autocon·tenido, con la gran posibilidad de ac-

:==========================~153ICESI

Servidorde archivos/ /

,--__,.yV

Estos dos modelos se basan en diferen­tes filosofías, en lo que concierne a unsistema distribuido.

4.2.1. El modelo de estaciónde trabajo

El modelo de estación de trabajo esun sistema que consta de estaciones detrabajo (computadoras personales dealta calidad), dispersas en un edificio oun lugar de trabajo y conectadas entresí por medio de una LAN de alta veloci­dad, como se ilustra en la Figura 4.6.

diante uno o varios servidores de archi­vos en la red. Las solicitudes de lecturao escritura serán enviadas a un servi­dor de archivos, el cual realizará el co­rrespondiente trabajo y enviará de re­greso las respuestas.

La popularidad de las estaciones detrabajo sin disco se debe a su precio, elcual es mucho más bajo que si se tu­viese una estación equipada con un pe­queño disco, razón por la cual se em­plean uno odos servidores de archivoscon discos enormes y rápidos, a los cua­les se tiene acceso mediante la LAN.Otras características que hacen popu­lares a las estaciones de trabajo sin dis-

Pila deprocesadores

CPU ----

SISTEMA BASADO EN EL MODELO

DE LA PILA DE PROCESADORES

4.2. Modelos de sistemas

Como ya es sabido, los procesos seejecutan en procesadores; en un siste­ma tradicional sólo existe un únicoprocesador, mientras que un sistemadistribuido, dependiendo del aspecto deldiseño, puede tener varios proce­sadores. Los procesadores de un siste­ma distribuido se pueden organizar devarias formas. En este parágrafo se ten­drán en cuenta los principales, comoson: el modelo de estación de trabajo yel modelo de pilas de procesadores.

Las estaciones de trabajo puedenestar ubicadas en diferentes partes,como en las oficinas de trabajo, dondecada una de ellas se dedica a un únicousuario; otras pueden estar en sitiospúblicos y tener distintos usuarios en eltranscurso del día. Es posible que enalgún instante de tiempo, ambas esta·ciones pueden tener un único usuarioconectado a ella y tener, entonces, un"poseedor" o no tenerlo (estar inactiva).

Existen dos clases de estaciones detrabajo: estaciones de trabajo sin discoo estaciones de trabajo con disco. Si lasestaciones carecen de disco, el sistemade archivos debe ser implantado me·

Page 22: SISTEMAS OPERATIVOS DISTRIBUIDOS - Icesi

4.3.2. Aspectos del diseño dealgoritmos de asignaciónde procesadores

Las principales decisiones que debetomar un diseñador se pueden resumiren los siguientes aspectos:

1. Algoritmos determinísticos vs. Heu­rísticos. Los determinísticos son ade­cuados cuando se sabe de antema­no todo aquello acerca de los pro­cesos; se supone que se tiene unalista completa de todos los procesoso necesidades de cómputo, de ar­chivos, de comunicación. Con estainformación sería posible hacer unaasignación perfecta. creando así unamejor asignación.

Los heurísticos son aquellos siste­mas en donde la carga es totalmen­te impredecible. Las solicitudes detrabajo dependen de quien las estéhaciendo, y pueden variar de mane­ra drástica cada hora. e incluso cadaminuto. La asignación de proce­sadores, en estos sistemas, utilizatécnicas ad hoc.

2. Algoritmos centralizados vs. Distri­buidos. La recolección de la informa­ción, en un lugar, permite tomar unamejor decisión, pero coloca una má­quina pesada en la máquina central.

sultar más complejas y tendrían un efec­to fun~amental en el diseño del siste­ma.

El objetivo que tienen los algoritmosde asignación de procesos, en losprocesadores, es maximizar el uso dela CPU; es decir, maximizar el uso deciclos de CPU que se. ejecutan en be­neficio de los trabajos del usuario porcada hora de tiempo real. Al tratar demaximizar el uso de la CPU, se trata deevitar todo el costo que se tiene por eltiempo inactivo de la CPU. Otro objetivoimportante es la minimización del tiem­po promedio de respuesta.4.3. Asignación de procesadores

Como ya hemos mencionado ante­riormente, un sistema distribuido cons­ta de varios procesadores. Estos pue­den organizarse como una colección deestaciones de trabajo personales, ocomo una pila pública de procesadoreso de alguna forma híbrida. No importacuál utilicemos, necesitaremos unalgoritmo para decidir qué proceso seva a ejecutar y en qué máquina. Esteparágrafo tendrá como principal objeti­vo estudiar los algoritmos que serán uti­lizados, para determinar qué proceso seasigna a un determinado procesador,dando como resultado una "asignaciónde procesadores".

4.3.1. Modelos de asignación

Las estrategias de asignación deprocesadores se pueden dividir en dosgrandes categorías. La primera. llama­da no migratoria, al crearse un proceso,toma la decisión de dónde colocarlo.Una vez colocado el proc~so en unamáquina, permanece allí hasta que ter­mine; no se puede mover, así existasobrecarga para la máquina o existanotras máquinas inactivas. La segundaes la de los algoritmos migratorios, endonde un proceso se puede trasladaraunque haya iniciado su ejecución. Lasestrategias migratorias permiten tenerun mejor balance de carga, pueden re-

puede llevar a cabo en las estacionesde trabajo, garantizando su respuesta.Este modelo hace que las estaciones in­activas no sean utilizadas, lo cual harámás sencillo el sistema yademás todoslos procesos no interactivos se ejecu­tan en la pila de procesadores, así comotodo el cómputo pesado en general.

La gran ventaja de este modelo esque proporciona una respuesta inter­activa mucho más rápida, como tambiénun uso eficiente en los recursos y pre­senta un diseño sencillo.

:=========================~155ICESI

.. ' ..

-fo

Trabajo terminado

4.2.3. Un modelo hlbrldo

Este modelo es una combinación delos dos modelos anteriormente presen­tados, el cual combina las ventajas queposee cada uno, con la única diferen­cia de que resultaría mucho más costo­so.

El modelo consiste en proporcionara cada usuario una estación de trabajopersonal y además tener una pila deprocesadores. El trabajo interactivo se

cuando éste se encuentre ocupado, losusuarios se forman para el servicio y seprocesan de acuerdo con su tumo, comose observa en la Figura 4.8.

radica en poder tener "estaciones de tra­bajo inactivas", a las que se puede te­ner acceso de manera dinámica. Losusuarios podrán obtener las CPU quesean necesarias, durante períodos cor­tos, y después regresai'las para queotros usuarios puedan disponer de ellas.

Cola de entrada

Usuarios

O

0--.L_L..L---l_L...L-l----.J--. Computadora

~Los usuarios generanun total de solicitudeslseg.

Una de las grandes aplicaciones dela pila de procesadores ocurre cuandovarios usuarios se encuentran trabajan­do en un gran proyecto de software, loscuales llevan a cabo grandes simulacio­nes, ejecutan grandes programas de in­teligencia artificial, obteniendo un fácilmanejo y acceso al manejar una pila;mientras que el trabajar en estacionesde trabajo acarrearía enormes dificulta­des y no sería nada sencillo.

Figura 4.8. Un sistema básico con colas.

Figura 4.7 Red de estaciones de trabajo personal.

El poder de cómputo se ha centrali­zado como una pila de procesadores,debido a la teoría de colas, donde losusuarios generan, en forma aleatoria,solicitudes de trabajo a un servidor, y

todas las CPU en gabinetes de gran ta­maño, dentro del cuarto de máquinas,reduciendo así los costos de energía ylos de empaquetamiento, con lo cual seproduce un mayor poder de cómputo poruna misma cantidad de dinero, comotambién se permite el uso de terminalesmás baratas. Todo el poder de cómputo

154~=========================ICES¡

I

'1

I:1

. I

l'I1

Page 23: SISTEMAS OPERATIVOS DISTRIBUIDOS - Icesi

Figura 4.9 (a). Un emisor en búsqueda de una m~quina ina~tiva

(b). Un receptor en búsqueda de trabajo por realIzar

156.=========================:ICEsi

distribuido con un diseño adecuado losclientes no deben ser conscientes dela forma de implantar el sistema de ar­chivos. En particular, no deben cono­cer el número de servidores de archi­vos, su posición o función. Todo lo quesaben es que, al llamar los procedimien­tos especificados en el servicio de ar­chivos, el trabajo necesario se lleva acabo de alguna manera y se obtienenlos resultados solicitados. De hecho, losclientes ni siquiera deben darse por en­terados de que el servicio de archivoses distribuido. Lo ideal es que se veacomo un sistema de archivos normal,de un único procesador.

Puesto que un servidor de archivoses un proceso del usuario que se eje­cuta en una máquina, un sistema pue­de contener varios servidores de archi­vos, cada uno de los cuales ofrece unservicio de archivos distinto. De esa for­ma es posible que una terminal tengavarias ventanas y que en algunas deellas se ejecuten programas en UNIX yen otras programas en MS-DOS, sinque esto provoque conflictos.

Los diseñadores del sistema se en­cargan de que los servidores ofrezcanlos servicios de archivo específicos,como UNIX o MS-DOS. El tipo y el nú­mero de servicios de archivo disponi­bles puede cambiar con la evolución delsistema.

5.1. Diseño de los sistemasdistribuidos de archivos

En esta sección analizaremos lascaracterísticas de los sistemas distribui­dos de archivos, desde el punto de vis­ta del usuario.

Un sistema distribuido tiene dos com­ponentes razonablemente distintos: elverdadero servicio de archivos y el ser­vicio de directorios. El servicio de ar­chivos se encarga de las operacionesen los archivos individuales, como lalectura, la escritura y la adición, en tan-

5. SISTEMAS DISTRIBUIDOSDE ARCHIVOS

El corazón de cualquier sistema dis­tribuido es el sistema distribuido de ar­chivos. Como en el caso de los siste­mas con un único procesador, la tareadel sistema de archivos, en los sistemasdistribuidos, es almacenar los progra­mas y los datos y tenerlos disponiblescuando sea necesario. En el caso de unsistema distribuido, es importante dis­tinguir entre los conceptos de serviciode archivos y el servidor de archivos. Elservicio de archivos es la especifica­ción de los servicios que el sistema ofre­ce a sus clientes. Describe las primiti­vas disponibles, los parámetros que uti­lizan y las acciones que llevan a cabo.

Para los clientes, el servicio de ar­chivos define con precisión el serviciocon que pueden contar, pero no dicenada con respecto a su implantación. Dehecho el servicio de archivos especificala interfaz del sistema de archivos conlos clientes.

Por el contrario, undespachadordearchivos es un proceso que se ejecutaen alguna máquina y ayuda con la im­plantación del servicio de archivos. Unsistema puede tener uno o varios servi­dores de archivos, pero en un sistema

se ejecuta o no en la máquina que logenera; si esta máquina está muy ocu­pada, hay que transferir el nuevo proce­so a otro lugar. Para el caso del algoritmolocal, se hace la verificación en la má­quina, para ver si ésta se encuentra pordebajo de su nivel, para poder asignarel nuevo proceso; para el algoritmoglobal es mejor recolectar toda la infor­mación acerca de la carga, antes dedecidir si la máquina puede o no recibiral proceso.

Los algoritmos locales son sencillos,pero no óptimos, mientras que losglobales sólo dan un resultado mejorpero a un costo mayor.

:=========================~ 157

ICESI

1Estoy aburrido.

¿Necesitasayuda?

Iniciados por el receptor. También esllamado política de localización. Des­pués de que la política de transfe­rencia ha decidido deshacerse de unproceso, la politica de localizacióndebe decidir dónde enviarlo. Estapolítica no puede ser local, debido aque se necesita información de lacarga, en todas partes, para teneruna óptima decisión: sin embargo,esta información se puede dispersarde dos formas; en la primera, losemisores son quienes inician el in­tercambio de información y, en la se­gunda, es el receptor el que toma lainiciativa.

A continuación, en la Figura 4.9,mencionaremos un ejemplo sencillopara denotar el anterior caso:

bajo y está preparada para más. Su prin­cipal objetivo es localizar una máquinadispuesta a darle trabajo.

5. Algoritmos locales vs. Globales.Este aspecto se relaciona con lo quese denomina polftica de transferencia.Debido a que cuando se está a puntode generar un proceso, hay que tomaruna decisión para ver si dicho proceso

La máquina avisade su disponibilidad.

(b)

No tengo nadaquehacer.

Estoycargado.

OOG000

La maquina decide quetiene mucho trabajo.

_L-------'

En la parte (a) se ilustra una máqui­na sobrecargada, la cual envía una so­licitud de ayuda a las demás máquinaspara que descarguen el nuevo procesoen otra. En este caso, el emisor es quientoma la iniciativa, para localizar más ci­clos de la CPU.

En la parte (b), una máquina inacti­va o sobrecargada que tiene poco tra-

¿Serían tan amablesde llevarseun proceso?

(a)

El hecho de ser centralizado, en vezde maximizar el uso de la CPU, bus­ca darle a cada procesador, de unaestación de trabajo, una parte justadel poder de cómputo.

3. Algoritmos óptimos vs. Subóptimos.Se pueden obtener soluciones ópti­mas tanto en los sistemas centrali­zados como en los descentralizados,pero, por regla general, son máscaras que las subóptimas, pues hayque recolectar más información yprocesarla un poco más. En la vidareal, la mayoría de los sistemas dis­tribuidos buscan soluciones sub­óptimas, heurísticas y distribuidas,debido a la dificultad para obtenerlas óptimas.

4. Algoritmos iniciados por el emisor vs.

1

I

'1

1

.

111

1

'1

1

;1

li1I

1

II

1,1il

Page 24: SISTEMAS OPERATIVOS DISTRIBUIDOS - Icesi

158~=============::====::::::::ICES;

Archivoanterior.

Archivonuevo.

Los archivospermanecen en

el servidor.

Servidor

ITIIJ

Servidor

través de un archivo, examinar ymodifi­car los atributos de un archivo, etc.

Mientras que en el modelo carga/des­carga el servicio de archivos sólo pro­porciona el almacenamiento físico y latransferencia, en este caso el sistemade archivos se ejecuta en los servido­res y no en los clientes. Su ventaja con­siste en quena necesita mucho espa­cio por parte de los clientes, a la vez queelimina la necesidad de transferir archi­vos completos cuando sólo se necesitauna parte de ellos.

Solicitudes delcliente para tener

acceso a unarchivo remoto.

1. Archivo de trasladoal cliente.

Figura 5.2. El modelo de acceso remoto.

Cliente

2. Los accesos se llevan .3. Cuando el clientea cabo en el cliente. termina, el archivo

regresa al servidor.

Figura 5.1. El modelo carga/descarga.

Cliente

La ventaja de este modelo es la sen­cillez del concepto. Los programas deaplicación buscan los archivos que ne­cesiten y después los utilizan de mane­ra local. Los archivos modificados o nue­vos se escriben, de regreso, al terminarel programa.

El otro tipo de servicio de archivoses el modelo de acceso remoto. Eneste modelo, el servicio de archivos pro­porciona un gran número de operacio­nes para abrir y cerrar archivos, leer yescribir partes de archivos, moverse a

:=======::::=::=:::::=::=::=159,ICESI

normal es que si se puedan modificar,pero en algunos sistemas distribuidos,las únicas operaciones de archivo sonCREATE y READ. Una vez creado unarchivo, éste no podrá ser modificado, yse dice que este archivo es inmutable.

La protección en los sistemas distri­buidos utiliza, en esencia, las mismastécnicas de los sistemas con un únicoprocesador: posibilidades y listas paracontrol de acceso. En el caso de lasposibilidades, cada usuario tiene un cier­to tipo de boleto, llamado posibilidad,para cada objeto al que tiene acceso.La posibilidad determina los tipos deacceso permitidos.

Todos los esquemas de lista paracontrol de acceso le asocian a cadaarchivo una lista implícita o explícita delos usuarios que pueden tener accesoal archivo y los tipos de acceso permiti­dos para cada uno de ellos.

El esquema de UNIX es una lista paracontrol de acceso, simplificada con bitsque controlan la lectura, la escritura y laejecución de cada archivo, en forma in­depen'diente para el propietario, el gru·po de propietarios, y todas las demáspersonas.

Los servicios de archivos se puedendividir en dos tipos: la dosificación de­pende de si soportan un modelo car­ga/descarga o un modelo de accesoremoto. En el modelo de carga/descar­ga, el servicio de archivo sólo propor­ciona dos operaciones principales: lalectura de un archivo y la escritura enun archivo.

La operación de lectura transfieretodo un archivo, de uno de los servido­res de archivo, al cliente solicitante.

La operación de escritura transfieretodo un archivo, en sentido contrario; delcliente al servidor. Así, el modelo con­ceptual es el traslado de archivos com­pletos, en alguna de las direcciones. Losarchivos se pueden almacenar en lamemoria o en un disco local.

to que el servicio de directorios se en­carga de crear y manejar directorios,añadir y eliminar archivos de los direc­torios, etc.

5.1.1. La interfaz del serviciode archivos

En muchos sistemas, como UNIX yMS-OOS, un archivo es una secuenciade bits sin interpretación alguna. El sig­nificado y la estructura de la informaciónen los archivos queda a cargo de losprogramas de aplicación; esto es irrele­vante para el sistema operativo.

Sin embargo, en los "mainframes"existen muchos tipos de archivos, cadauno con distintas propiedades. Por ejem­plo, un archivo se puede estructurarcomo una serie de registros, con llama­das al sistema operativo, para leer oescribir en un registro particular.

Por lo general se puede especificarel registro mediante su número o el va­lor de cierto campo. En el segundo caso,el sistema operativo mantiene el archi­vo como un árbol B o alguna otra es­tructura de datos adecuada, o bien utili­za tablas de dispersión, para localizarcon rapidez los registros.

Debido a que la mayoría de los siste­mas distribuidos son planeados paraambientes UNIX o MS-DOS, la mayoríade los servidores de archivos soporta elconcepto de archivo, como una secuen­cia de bits, en vez, de una secuenciade registros con cierta clave. Los archi­vos pueden tener atributos, que sonpartes de información relativas al archi­vo, pero que no son parte del archivopropiamente dicho. Los atributos típicosson el propietario, el tamaño, la fechade creación y el permiso de acceso.

Por lo general, el servicio de archi­vos proporciona primitivas para leer yescribir alguno de los atributos.

Otro aspecto importante del modelode archivo es si los archivos se puedenmodificar después de su creación. Lo

Page 25: SISTEMAS OPERATIVOS DISTRIBUIDOS - Icesi

e

Contador del númerode directorios que

apuntan a estedirectorio.

Máquina 2: O, E.

Máquina 1: A, B, C.

A

derecha de cada directorio de la figura,~e pue1e determinarsi el enlace por eli­minar es el último. Después de eliminarel enlace de A a a, el contador de refe­rencias de a se reduce de 2 al, lo cualestá bien sobre el papel. Sin embargo,ahora no es posible llegar a a desde laraíz del sistema de archivos (A). Los tresdirectores a, o y Ey todos sus archivosse convierten en huérfanos.

2

B

tiene un enlace con el directorio a. Elproblema aparece cuando se elimina elenlace de A a a. En una jerarquía conestructura de árbol sólo se puede elimi­nar un enlace con un directorio, si el di­rectorio al cual apunta es vaeío. En unagráfica se permite la eliminación de unenlace mientras exista al menos otro.Mediante un contador de referencias, elcual se muestra en la esquina superior

A

identifica el tipo de éste. Otros sistemasutilizan un atributo explícito para este fin,en vez de utilizar una extensión dentrodel nombre.

Todos los sistemas distribuidos per­miten que los directorios contengansubdirectorios, para que los usuariospuedan agrupar los archivos relaciona­dos entre sí. De acuerdo con esto, sedispone de operaciones para la creacióny eliminación de directorios, así comopara introducir, eliminar y buscar archi­vos en ellos. También, los subdirectoriospueden contener sus propios sub­directorios y así sucesivamente, lo queconduce a un árbol de directorios, el cuales conOCido como sistema jerárquicode archivos. La Figura 5.3 muestra unárbol de cinco directorios:

5.1.2. La interfaz del servidorde directorios

La otra parte del servicio de archivoses el servicio de directorios, el cual pro­porciona las operaciones para crear yeliminar directorios, nombrar o cambiarel nombre de los archivos y mover és­tos de un directorio a otro.

El servicio de directorios define unalfabeto y una sintaxis para formar losnombres de archivos y directorios. Locomún es que los nombres de archivostengan de y hasta cierto número máxi­mo de letras, números y ciertos carac­teres especiales. Algunos sistemas di­viden los nombres de archivo en dospartes, usualmente separadas median­te un punto. La segunda parte del nom­bre, llamada la extensión del archivo,

B e D E

Figura 5.3. Un árbol de directorios contenido en una máquina.

160~==========================:ICESt

Figura 5.4. Una gráfica de directorios en dos máquinas.

Otro aspecto fundamental, en el di­seño de cualquier sistema distribuidode archivos, es si todas las máquinas yprocesos deben tener la misma visiónde la jerarquía de los directorios.

5. 1.2. 1. Nombres de los archivosy directorios

Existen tres métodos usuales paranombrar los archivos y directorios enun sistema distribuido:1. Nombre de la máquina + ruta de ac­

ceso, como /máquina/ruta o má­quina:ruta.

2. Montaje de sistemas de archivosremotos en la jerarquía local de ar­chivos.

Este problema también existe en lossistemas centralizados, pero es másserio en los distribuidos. Si todo está enuna máquina, es posible descubrir losdirectorios huérfanos, puesto que todala información está en un solo lugar. Sepuede detener toda la actividad de losarchivos y recorrer la gráfica desde laraíz, para señalar todos los directoriosalcanzables. Al final de este proceso, sesabe que todos los directorios no mar­cados son inalcanzables. En un siste­ma distribuido existen varias máquinasyno se puede detener toda la actividad,por lo que es supremamente difícil to­mar una foto instantánea.

:=========================~161ICESI

árboles y gráficas es de particular im­portancia en un sistema distribuido.

La naturaleza de la dificultad se pue­de apreciar más claramente en la Figu­ra 5.4. En esta gráfica, el directorio O

E

En ciertos sistemas es posible c.rearenlaces o apuntadores hacia un direc­torio arbitrario. Estos se pueden colo­car en cualquier directorio, lo que per­mite construir no sólo árboles sino gráfi­cas arbitrarias de directorios, las cualesson más poderosas. La distinción entre

D

Page 26: SISTEMAS OPERATIVOS DISTRIBUIDOS - Icesi

162-:-=====================::::::ICESI

1. Se lee 'b'

CLIENTE 1

Escribe 'c'

de UNIX, excepto por un problema me­nor: los retrasos en la red pueden hacerque un READ, ocurrido un micro­segundo después de un WRITE, llegueprimero al servidor y que obtenga el va­lor anterior.

Un método completamente distinto dela semántica de los archivos comparti­dos, en un sistema distribuido, es quetodos los archivos sean inmutables. Asíno existe forma de abrir un archivo paraescribir en él. En efecto, las únicas ope­raciones en los archivos son CREATE yREAD. No existen actualizaciones; esmás fácil compartir y replicar.

Una cuarta vfa para enfrentar el usode los archivos compartidos en un siste­ma distribuido es usar las transaccionesatómicas. Para tener acceso a un archi·va o grupo de archivos, un proceso

1. Escribe 'c'

(a)

Se lee 'abe'

UNICO PROCESADOR

Figura 5.5 (a). En un solo procesador, cuando una READ va después de un WRITE.el valor regresado por READ es el valor recién escrito.

(b) En un sistema distribuido con ocultamiento, el valor regresado puedeser obsoleto.

El segundo método se llama se­mántica de sesión, el cual se caracte­riza porque ningún cambio es visible aotros procesos, hasta que el archivo secierra; en vez de pedir que un READvea los efectos de todos los WRITE an­teriores, uno puede tener una nueva re­gia que diga: "Los cambios a un archi­vo abierto sólo pueden ser vistos en unprincipio por el proceso (o la máquina)que modificó el archivo. Los cambiosserán visibles a los demás procesos (omáquinas) sólo cuando se cierre el ar­chivo".

exista un servidor de archivos y los clien­tes no oculten los archivos. Todas lasinstrucciones READ yWRITE pasan enforma directa al servidor de archivos,que los procesa en forma secuencial.Este método proporciona la semántica

:::========================r:163ICESI

trar el nombre binario. El propio enlacesimbólico es sólo el nombre de una rutade acceso.

Otra idea más es utilizar las posibili­dades como los nombres binarios. Eneste métddo, la búsqueda de un nom­bre en ASCII produce una posibilidad,la cual puede tomar varias formas. Unúltimo método, que a veces está presen­te en un sistema distribuido pero casinunca en uno centralizado, es la posibi­lidad de buscar un nombre en ASCII yobtener no uno sino varios nombresbinarios. Por lo general, éstos represen­tan al archivo original y todos sus res­paldos.

5.1 .3. Semántica de los archivoscompartidos

Si dos o más usuarios comparten elmismo archivo, es necesario definir conprecisión la semántica de la lectura y laescritura para evitar problemas.

Existen cuatro maneras de compar­tir archivos en un sistema distribuido. Laprimera que analizaremos es conocidacomo semántica de UNIX y consiste enque cada operación en un archivo esvisible a todos los procesos de manerainstantánea. En los sistemas con unúnico procesador que permiten a losprocesos compartir archivos, comoUNIX, la semántica establece que si unaoperación READ sigue después de unaoperación WRITE, READ regresa el va­lor recién escrito. De manera análoga,cuando dos WRITE se realizan en seriey después se ejecuta un READ, el valorque se lee es el almacenado en la últi­ma escritura. De hecho, el sistema im­pone en todas las operaciones un or­den absoluto con respecto del tiempo ysiempre regresa el valor más reciente.En un sistema con un único procesador,esto es muy fácil de comprender y tieneuna implantación directa. En un siste­ma distribuido, la semántica de UNIX sepuede lograr fácilmente, mientras sólo

5.1.2.2. Nombres de dos niveles

La mayoría de los sistemas distribui­dos utiliza cierta forma de nombres condos niveles. Los archivos tienen nom­bres simbólicos para el uso de las per­sonas, pero también pueden tener nom­bres binarios internos para uso del pro­pio sistema. Lo que los directorios ha­cen, en realidad, es proporcionar unaasociación entre estos dos nombres.Para las personas y los programas, esconveniente utilizar nombres simbólicos,pero para el uso dentro del propio siste­ma, estos nombres son demasiado gran­des y difíciles. Así, cuando un usuarioabre un archivo o hace referencia a unnombre-simbólico, el sistema busca deinmediato el nombre simbólico, en el di­rectorio apropiado, para obtener el nom­bre binario, el cual utilizará para locali­zar realmente el archivo. A veces losnombres binarios son visibles a los usua­rios y a veces no.

Un esquema más general para losnombres es que el nombre binario indi­que el servidor y un archivo específicoen ese servidor. Este método permiteque un directorio en un servidor conten­ga un archivo en un servidor distinto.

Otra altemativa, que a veces es pre­ferible, es utilizar un enlace simbólico,el cual es una entrada de directorio aso­ciada a una cadena (servidor, nombrede archivo), la cual se puede buscar enel servidor correspondiente para encon-

3. Un único espacio de nombres quetenga la misma apariencia en tod~

las máquinas.

Los primeros dos son fáciles de im­plantar, especialmente como una formade conectar sistemas ya existentes, queno estaban diseñados para su uso dis­tribuido. El tercer método es difícil y re­quiere de un diseño cuidadoso, pero esnecesario si se quiere lograr el objetivode que el sistema distribuido actúe comouna única computadora.

¡i,

Page 27: SISTEMAS OPERATIVOS DISTRIBUIDOS - Icesi

164~===============::::=======ICES,

:::========================~165ICESI

El aspecto estructural final por consi­derar es si los servidores de archivos,directorios o de otro tipo deben conte­ner la información sobre el estado de losclientes. Este aspecto tiene una contro­versia moderada, donde existen dosescuelas de pensamiento en competen­cia. Una escuela piensa que los servi­dores no deben contener los estados,es decir, "ser sin estado". En otras pala­bras, cuando un cliente envía una soli­citud a un servidor, éste la lleva a cabo,envía la respuesta y elimina de sus ta­blas internas toda la información relati­va a dicha solicitud. El servidor no guar­da información alguna relativa a losclientes entre las solicitudes. La otraescuela de pensamiento sostiene quees correcto que los servidores conser­ven la información de estado de los clien­t~s entre las solicitudes.

En el caso de un servidor sin estado,cada solicitud debe estar autocontenida.Debe contener todo el nombre del ar­chivo y el ajuste dentro de éste, paraque el servidor pueda realizar el traba­jo. Esta información aumenta la longi­tud del mensaje.

Otra forma de ver la información deestado es considerar lo que ocurre si unservidor falla y todas sus tablas se pier­den de manera irremediable. Al volvera arrancar el servidor, éste ya no tieneidea de la relación entre los clientes ylos archivos abiertos por éstos. Fraca­sarán entonces los intentos posteriorespor leer y escribir en archivos abiertos yla recuperación, entonces, queda a car­go totalmente de los clientes. En conse­cuencia, los servidores sin estado tien­den a ser más tolerantes a los fallos quelos que mantienen los estados, lo cuales un argumento a favor de los prime­ros.

En general, las ventajas de los servi­dores sin estado son: tolerancia a lasfallas; no necesita llamadas openlclose;no se desperdicia el espacio del servi-

dos, de modo que otras máquinas ten­gan acceso a ellos. En otros sistemasel servidor de archivos y el de directo­rios sólo son programas del usuario,_ porlo que se puede configurar un sistemapara que ejecute o no el software, delcliente o del servidor, en la misma má­quina, como se desee. Y en el otro ex­tremo, están los sistemas donde losclientes y los servidores son máquinasesencialmente distintas, ya sea en tér­minos de hardware o de software. Losservidores y clientes pueden ejecutarincluso versiones diferentes del sistemaoperativo. Aunque la separación de fun­ciones es un poco más transparente, noexiste una razón fundamental para pre­ferir un método por encima de los de­más.

Un segundo aspecto de la implanta­ción, en donde difieren los sistemas, esla forma de estructurar el servicio a ar­chivos y directorios. Una forma de orga­nización consiste en combinar ambos enun único servidor, que maneje todas lasllamadas a directorios y archivos. Sinembargo, la otra posibilidad es separar­los. En este caso, la apertura de un ar- .chivo exige ir hasta el servidor de direc­torios, para asociar su nombre simbóli­co con el nombre binario, y después irhasta el servidor de archivos, con elnombre en binario y llevar a cabo la lec­tura o escritura real del archivo.

El argumento en favor de la separa­ción es que las dos funciones no tienenuna relación real entre sí, por lo que esmás flexible mantenerlas separadas. Porejemplo, se puede implantar un servi­dor de directorios en MS-DOS y otroservidor de directorios en UNIX, dondeambos utilicen el mismo servidor de ar­chivos para el almacenamiento físico.También es probable que la separaciónde funciones produzca un software mássencillo. Un contraargumento es que elhecho de contar con dos servidores re­quiere de una mayor comunicación.

un patrón común es crear un archivo,leerlo y después eliminarlo.

El hecho que unos cuantos archivosse compartan, argumenta en favor delocultamiento por parte del cliente. Comoya se ha visto, el ocultamiento complicala semántica, pero si es raro el uso delos archivos compartidos, podría sermejor el ocultamiento por parte del clien­te y aceptar las consecuencias de lasemántica de sesión en favor de unmejor desempeño.

Para terminar, la existencia de distin­tas clases de archivos sugiere que, talvez, se deberían utilizar mecanismosdiferentes para el manejo de las distin­tas clases. Los binarios del sistema ne­cesitan estar presentes en diferentespartes, pero es raro que se modifiquen,por lo que tal vez se podrían duplicar envarias partes, aun cuando esto implicauna actualización ocasional compleja.

Los compiladores y los archivos tem­porales son cortos, no compartidos ydesaparecen con rapidez, por lo quedeben mantener su carácter local mien­tras sea posible. Los buzones electróni­cos se actualizan con frecuencia, peroes raro que se compartan, por lo que suduplicación no sirve de mucho.

5.2.2. Estructura del sistema

En esta sección analizaremos algu­nas de las formas de organización in­terna de los servidores de archivos ydirectorios, con atención especial a losmétodos alternativos. Comenzaremoscon una sencilla pregunta:"¿Son distin­tos los clientes y los servidores?"

En ciertos sistemas no existe distin­ción alguna entre un cliente y un servi­dor. Todas las máquinas ejecutan el mis­mo software básico, de manera que unamáquina que desee dar servicio de ar­chivos al público en general es libre dehacerlo. Este ofrecimiento del serviciode archivos consiste sólo en exportar losnombres de los directorios selecciona-

5.2.1. Uso de archivosSatyanarayanan (1981) hizo un am­

plio estudio sobre los patrones de usode los archivos. Vamos a presentar, acontinuación, las principales conclusio­nes de este estudio. Para comenzar, lamayoría de los archivos está por debajode los 10K; esta observación sugiere lafactibilidad de la transferencia· de archi­vos completos, en vez de bloques dedisco, entre el servidor y el cliente. Pues­to que la transferencia de archivos com­pletos es más sencilla y eficiente, estaidea debe tomarse en cuenta. Por su­puesto, algunos archivos son de grantamaño, por lo que también se debentomar medidas preventivas con respec­to a éstos.

Una observación interesante es quela mayoría de los archivos tiene tiem­pos de vida cortos. En otras palabras,

5:2. Implantación de un sistemadistribuido de archivos

En la sección anterior describimosvarios aspectos de los sistemas distri­buidos de archivos desde el punto devista del usuario. En esta sección vere­mos la forma en que se implantan di­chos sistemas.

ejecuta en primer lugar cierto tipo de pri­mitiva BEGINTRANSACTION, para se­ñalar que lo que sigue debe ejecutarsede manera indivisible. Después vienenlas llamadas al sistema para leer o es­cribir en uno o más archivos. Al termi­nar el trabajo, se ejecuta una primitivaENDTRANSACTION. La propiedad fun­damental de este método es que el sis­tema garantiza que todas las llamadascontenidas dentro de la transacción sellevarán a cabo en orden, sin interferen­cias de otras transacciones concurren­tes. Si dos o más transacciones se rea­lizan al mismo tiempo, el sistema garan­tiza que el resultado final es el mismoque si se ~jecutasen en cierto ordensecuencial (indeterminado).

Page 28: SISTEMAS OPERATIVOS DISTRIBUIDOS - Icesi

REDFigura 5.6. Cuatro lugares para guardar archivos o partes de ellos.

3. Repartir la carga de trabajo entrevarios servidores. Al crecer el tama­ño del sistema, el hecho de tenertodos los archivos en un únicoprocesador se puede convertir en uncuello de botella. Con varios archi­vos duplicados en dos o más servi­dores, se puede utilizar el que tengamenos carga.

Las dos primeras se relacionan conel mejoramiento de la confiabilidad y ladisponibilidad; la tercera se refiere aldesempeño.

Existen tres formas de llevar a cabola réplica: la réplica explícita de archi­vos, la réplica retrasada de archivos yla réplica de archivos mediante un gru­po.

CONCLUSIONES

- los Sistemas Distribuídos son la tec­nología que se va a imponer en elmundo, debido a ta economía quese alcanza con su implantación enlas grandes organizaciones.

No existen todavía aplicaciones dis­tribuidas para los pocos sistemasoperativos que tratan de manejar ladistribución, como Windows NT.

La diferencia más importante entreun Sistema Distribuido y un sistemade un único procesador es la comu­nicación entre procesos.

Para la organización de los pro­cesadores se pueden tener en cuen­ta dos modelos básicos: el modelode estación de trabajo yel de la pilade procesadores. Las ventajas quepresenta cada uno son muy impor·tantes, ya que le permiten tener acada usuario su propia estación detrabajo y aprovechar las estacionesde trabajo inactivas para ejecutarprocesos; en las pilas de pro­cesadores, todas las instalacionesson un recurso compartido que pue­de ser usado dependiendo de lasnecesidades de cada usuario.

El segundo es que el algoritmo debedecidir qué hacer si se utiliza toda lacapacidad del caché y hay que eliminara alguien. Aquí se puede utilizar cual­quiera de los algoritmos comunes deocultamiento, pero como las referenciasal caché son poco frecuentes, compa­radas con las referencias a la memoria,por lo general es factible una implanta­ción exacta de LRU mediante listas li­gadas: Cuando hay que eliminar a al­guien de la memoria, se elige al másantiguo. Si existe una copia actualiza­da en el disco, simplemente se descar­ta la copia del caché. En caso contra­rio, primero se actualiza el disco.

El mantenimiento de un caché en lamemoria principal del servidor es fácilde lograr y es totalmente transparentea los clientes. Puesto que el servidorpuede mantener sincronizadas sus co­pias en memoria y en disco, desde elpunto de vista de los clientes sólo exis­te una copia de cada archivo, por lo queno hay problemas de consistencia.

5.2.4. Réplica

Con frecuencia Jos sistemas distribui­dos de archivos proporcionan la réplicade archivos como servicio a sus clien­tes. En otras palabras, se dispone devarias copias de algunos archivos, don­de cada copia está en un servidor dearchivos independiente. Las principalesrazones para la existencia de tal servi­cio son:

1. Aumentar la confiabilidad al dispo­ner de respaldos independientes decada archivo. Si un servidor lalla ose pierde en forma permanente, nose pierden los datos.

2. Permitir el acceso a un archivo, auncuando falle un servidor de archivos.El fallo de un servidor no debe ha­cer que todo el sistema se detengahasta cuando aquél se pueda vol­ver a arrancar.

.~.

, ., .l¡

. ,!

··f

1

Disco delservidor

2

Memoriaprincipal

del servidor

Este algoritmo debe resolver dos pro­blemas. El primero es el de la unidadque maneja el caché. Puede manejararchivos completos o bloques del dis­co. Si se ocultan los archivos comple­tos, éstos se pueden almacenar en for­ma adyacente en el disco, lo cual per­mite transferencias a alta velocidad en­tre la memoria y el disco, así como unbuen desempeño en general. Sin em­bargo, el ocultamiento de bloques dedisco utiliza el caché y el espacio en dis­co en forma más eficiente.

cliente o la memoria principal del clien­te, como se muestra en la Figura 5.6.

El lugar más directo para almacenartodos los archivos es el disco del servi­dor. Ahí existe mucho espacio y los ar­chivos serían accesibles a todos losclientes.Además, con sólo una copia decada archivo no surgen problemas deconsistencia.

El problema con el uso del disco delservidor es el desempeño.Antes de queun cliente pueda leer un archivo, éstedebe ser transferido primero del discodel servidor a la memoria principal delservidor y luego, a través de la red, a lamemoria principal del cliente. Ambastransferencias tardan cierto tiempo.

4

Disco delcliente

(oP9ional)

......1.. ......

...........................-......

3

Memoriaprincipal

del cliente

Se puede lograr un desempeño mu­cho mejor si se ocultan (es decir, se con·servan) los archivos de más reciente usoen la memoria principal del servidor. Uncliente que lea un archivo ya presenteen el caché del servidor elimina la trans­ferencia del disco, aunque se deba rea·lizar la transferencia a la red.

Puesto que la memoria principalsiempre es menor que el disco, se ne­cesita un algoritmo para determinar losarchivos o partes de archivos que de­ben permanecer en el c~ché.

5.2.3. Ocultamiento

En un sistema cliente-servidor, cadauno con su memoria principal, y un dis­co, existen cuatro lugares donde se pue­den almacenar los archivos o partes dearchivos: el disco del servidor, la memo­ria principal del servidor, el disco del

dor en las tablas; no existe Irmite parael número de archivos abiertos y no hayproblemas si un cliente falla. Las venta­jas de los servidores con estado con­sisten en un mejor desempeño, los men­sajes de solicitud más cortos, es posi­ble la lectura adelantada, es más fácil laidempotencia y es posible la cerradurade archivos.

166~=========================:/CESJ :========================~167ICESI

Page 29: SISTEMAS OPERATIVOS DISTRIBUIDOS - Icesi

LA ULTIMA LECCIÓN*

ALFONSO aCAMPO LONDOÑORector del ICESI

DISCURSO DE GRADOPromoción DecimosegundaCali, 11 de febrero de 1995

llegar a esta importante etapa de susvidas. Esta deuda la deben pagar crean­do riqueza en Colombia y participandoen la mejoría de sus condiciones decompetitividad en un mundo que se haglobalizado o intemacionalizado y en elcual la competencia no va a ser sólo enproductos, sino en la calidad del talentohumano que se tiene y que es nuestratarea. Por ello, en este acto, en un pun­to especial y muy emotivo, los gra­duandos le hacen un homenaje de gra­titud a sus padres, cónyuges y amigos,que los han ayudado.

En el mundo de hoy, lo que se consi­dera la mayor riqueza es el conocimien­to y la información y por lo tanto la for­mación del ser humano, es la tarea másimportante para hacer. Las riquezasnaturales contribuyen al bienestar, so­lamente si hay un equipo humano quelas sepa aprovechar, para que sus be­neficios se extiendan a todos y no sóloa unos pocos. Lo que debe importar esel beneficio para la totalidad de la co­munidad y no el aprovechar todo, sólo

Volvemos hoy con gran alegría, peroal mismo tiempo con nostalgia, a gra­duar a 154 de nuestros alumnos, 95 enPregrado en Administración de Empre­sas e Ingeniería de Sistemas e Infor­mática y 59 de Postgrado, y entre éstosla primera promoción de la especializa­ción en Ingeniería del Software. Conellos ya conformamos un cuerpo decerca de 3.000 egresados que hemosentregado a la sociedad, a las empre­sas, a sus compañías familiares y laspropias.

Hemos, desde que ustedes iniciaronsus estudios, recalcado que es un granprivilegio llegar a una Universidad, yaque sólo dos de cada cien que inicianla primaria lo logran y es aún mayor pri­vilegio el de hacer formación avanzadao de postgrado. Se tiene, pues, unadeuda social que tiene que pagarse, asus padres, familiares, amigos, patro­nes, empresas, a quienes les han ser­vido, y en general a la sociedad y alEstado que les han dado las condicio­nes o infraestructura social para poder

trativa se lleva a cabo por medio decomunicaciones orales o escritas, enmuchos casos entre interlocutoresque se encuentran a grandes distan­cias, se hace necesario contar conredes de terminales inteligentes quepermitan a dichos interlocutores co­municarse en forma confiable y po­der compartir la información de ma­nera transparente.

BIBLIOGRAFIASistemas operativos modernos, Andrew S.Tanembaum. Editorial Prentice-Hall Hispa­noamericana S.A.; México, 1992.

- Intemet-Working With TCPIIP. Volumen 111.Client-Server Programming and Appli­cations.Douglas E. Comer and David L. Stevens.Department 01 Computer Sciences. PurdueUniversity.Prentice-Halllntemacional,lnc.

Cuando se tiene una colección deprocesadores para que éstos seanasignados a los procesos, se debetener la ayuda de los algoritmos deasignación de procesadores.

El sistema distribuido de archivos esel corazón de cualquier Sistema Dis­tribuido y su tarea consiste en alma­cenar los programas y los datos ytenerlos disponibles cuando sea ne­cesario.

La implantación de un sistema dis­tribuido de archivos implica la tomade varias decisiones: ver si el siste­ma es con estado o sin él, si se debehacer el ocultamiento y la forma demanejar la réplica de archivos.

Definitivamente nos encontramos enla era de las comunicaciones y, de­bido a que toda actividad adminis-

!

I1

1!

I• Este discurso continúa una tradición universitaria en que el rector da la primera y la última

Iecdón.

168~===============::::::::::::ICES, :=:::=====::=:=:::==:=====~169ICESI