ContenidoINTRODUCCIN2QU ES UN SISTEMA DISTRIBUIDO?3CONCEPTOS DE
LOS SISTEMAS DISTRIBUIDOS4VENTAJAS DE LOS SISTEMAS DISTRIBUIDOS CON
RESPECTO DE LOS CENTRALIZADOS7VENTAJAS DE LOS SISTEMAS DISTRIBUIDOS
CON RESPECTO DE LAS PC INDEPENDIENTES8DESVENTAJAS DE LOS SISTEMAS
DISTRIBUIDOS9CONCEPTOS DE HARDWARE10MULTIPROCESADORES CON BASE EN
BUSES11MULTIPROCESADORES CON CONMUTADOR11MULTICOMPUTADORAS CON BASE
EN BUSES13MULTICOMPUTADORAS CON CONMUTADOR13CONCEPTOS DE
SOFTWARE15SISTEMAS OPERATIVOS DE REDES16MODO DE TRANSMISIN ASNCRONA
ATM17RPC17COMUNICACIN EN GRUPO18SINCRONIZACIN18EL RELOJ19SISTEMA DE
ARCHIVOS20TRANSPARENCIA20FALLOS DEL SISTEMA21MODELOS DE
ACCESO21MEMORIA COMPARTIDA DISTRIBUIDA21MEMORIA COMPARTIDA BASADA
EN PGINAS21MEMORIA COMPARTIDA BASADA EN OBJETOS22MODELOS DE
CONSISTENCIA22RESUMEN23
INTRODUCCIN
Los sistemas de cmputo estn sufriendo una revolucin Desde 1945
cuando comenz la era de la computadora moderna hasta cerca de 1985
las computadoras eran grandes y caras Incluso las minicomputadoras
costaban por lo general cientos de miles de dlares cada una Como
resultado la mayor parte de las organizaciones tena tan slo un
puado de computadoras y por carecer de una forma para conectarlas
stas operaban por lo general en forma independiente entre s Sin
embargo a partir de la mitad de la dcada de 1980 dos avances
tecnolgicos comenzaron a cambiar esta situacin El primero fue el
desarrollo de poderosos microprocesadores En principio se dispona
de mquinas de 8 bits pelo pronto se volvieron comunes las CPU de 16
32 e incluso 64 bits Muchos de ellos tenan el poder de cmputo de
una computadora mainframe de tamao respetable (es decir grande)
pero por una fraccin de su precio.El segundo desarrollo fue la
invencin de redes de rea local de alta velocidad (LAN) Las redes de
rea local (LANs[Local area networks]) permiten conectar docenas e
incluso cientos de mquinas dentro de un edificio de tal forma que
se pueden transferir pequeas cantidades de informacin entre ellas
en un milisegundo o un tiempo parecido.Aunque los actuales sistemas
de red solucionan parte de las necesidades actuales de comunicacin
entre computadoras, tienen importantes limitaciones, y no son
aplicables a una gran cantidad de problemas. Por ello surge la
necesidad de crear sistemas distribuidos que sustituyan a los
actuales sistemas de red o a los sistemas multiprocesadores.
QU ES UN SISTEMA DISTRIBUIDO?
Se han dado varias definiciones de sistema distribuido en la
bibliografa pero ninguna de ellas es satisfactoria ni est de
acuerdo con las dems Para nuestros propsitos es suficiente dar una
vaga caracterizacin Un sistema distribuido es una coleccin de
computadoras independientes que aparecen ante los usuarios del
sistema como una mica computadora Esta definicin tiene dos aspectos
El primero se refiere al hardware las mquinas son autnomas El
segundo se refiere al software los usuarios piensan que el sistema
es como una nica computadora Ambos son esenciales Regresaremos a
este punto en una seccin posterior de este captulo despus de
revisar algunos conceptos bsicos del hardware y el software.Ejemplo
considere una fbrica de robots cada uno de los cuales contiene una
poderosa computadora para el manejo de visin planeacin comunicacin
y otras tareas Cuando un robot de la lnea de ensamble nota que una
parte por instalar es defectuosa le pide al robot del departamento
de partes que le traiga una refaccin Si todos los robots actan como
dispositivos perifricos unidos a la misma computadora central y el
sistema se puede programar de esta manera tambin se considera como
un sistema distribuido.
CONCEPTOS DE LOS SISTEMAS DISTRIBUIDOSEstos sistemas son
similares a las multicomputadoras en cuanto a que cada nodo tiene
su propia memoria privada, sin memoria fsica compartida en el
sistema. Sin embargo, los sistemas distribuidos tienen un
acoplamiento an ms dbil que las multicomputadoras.Los sistemas
distribuidos estn basados en las ideas bsicas de transparencia,
eficiencia, flexibilidad, escalabilidad y fiabilidad. Sin embargo
estos aspectos son en parte contrarios, y por lo tanto los sistemas
distribuidos han de cumplir en su diseo el compromiso de que todos
los puntos anteriores sean solucionados de manera
aceptable.EficienciaLa idea base de los sistemas distribuidos es la
de obtener sistemas mucho ms rpidos que los ordenadores actuales.
Es en este punto cuando nos encontramos de nuevo con el
paralelismo.Para lograr un sistema eficiente hay que descartar la
idea de ejecutar un programa en un nico procesador de todo el
sistema, y pensar en distribuir las tareas a los procesadores
libres ms rpidos en cada momento.La idea de que un procesador vaya
a realizar una tarea de forma rpida es bastante compleja, y depende
de muchos aspectos concretos, como la propia velocidad del
procesador, pero tambin la localidad del procesador, los datos, los
dispositivos, etc. Se han de evitar situaciones como enviar un
trabajo de impresin a un ordenador que no tenga conectada una
impresora de forma local.TransparenciaEl concepto de transparencia
de un sistema distribuido va ligado a la idea de que todo el
sistema funcione de forma similar en todos los puntos de la red,
independientemente de la posicin del usuario. Queda como labor del
sistema operativo el establecer los mecanismos que oculten la
naturaleza distribuida del sistema y que permitan trabajar a los
usuarios como si de un nico equipo se tratara.En un sistema
transparente, las diferentes copias de un archivo deben aparecer al
usuario como un nico archivo. Queda como labor del sistema
operativo el controlar las copias, actualizarlas en caso de
modificacin y en general, la unicidad de los recursos y el control
de la concurrencia.
El que el sistema disponga de varios procesadores debe lograr un
mayor rendimiento del sistema, pero el sistema operativo debe
controlar que tanto el usuario como los programadores vean el ncleo
del sistema distribuido como un nico procesador. El paralelismo es
otro punto clave que debe controlar el sistema operativo, que debe
distribuir las tareas entre los distintos procesadores como en un
sistema multiprocesador, pero con la dificultad aadida de que sta
tarea hay que realizarla a travs de varios
ordenadores.FlexibilidadUn proyecto en desarrollo como el diseo de
un sistema operativo distribuido debe estar abierto a cambios y
actualizaciones que mejoren el funcionamiento del sistema. Esta
necesidad ha provocado una diferenciacin entre las dos diferentes
arquitecturas del ncleo del sistema operativo: el ncleo monoltico y
el microncleo. Las diferencias entre ambos son los servicios que
ofrece el ncleo del sistema operativo. Mientras el ncleo monoltico
ofrece todas las funciones bsicas del sistema integradas en el
ncleo, el microncleo incorpora solamente las fundamentales, que
incluyen nicamente el control de los procesos y la comunicacin
entre ellos y la memoria. El resto de servicios se cargan
dinmicamente a partir de servidores en el nivel de usuario.Ncleo
monolticoComo ejemplo de sistema operativo de ncleo monoltico est
UNIX. Estos sistemas tienen un ncleo grande y complejo, que engloba
todos los servicios del sistema. Est programado de forma no
modular, y tiene un rendimiento mayor que un microncleo. Sin
embargo, cualquier cambio a realizar en cualquier servicio requiere
la parada de todo el sistema y la recopilacin del
ncleo.MicroncleoLa arquitectura de microncleo ofrece la alternativa
al ncleo monoltico. Se basa en una programacin altamente modular, y
tiene un tamao mucho menor que el ncleo monoltico. Como
consecuencia, el refinamiento y el control de errores son ms rpidos
y sencillos. Adems, la actualizacin de los servicios es ms sencilla
y gil, ya que slo es necesaria la recopilacin del servicio y no de
todo el ncleo. Como contraprestacin, el rendimiento se ve afectado
negativamente.En la actualidad la mayora de sistemas operativos
distribuidos en desarrollo tienden a un diseo de microncleo. Los
ncleos tienden a contener menos errores y a ser ms fciles de
implementar y de corregir. El sistema pierde ligeramente en
rendimiento, pero a cambio consigue un gran aumento de la
flexibilidad.
FiabilidadUna de las ventajas claras que nos ofrece la idea de
sistema distribuido es que el funcionamiento de todo el sistema no
debe estar ligado a ciertas mquinas de la red, sino que cualquier
equipo pueda suplir a otro en caso de que uno se estropee o
falle.La forma ms evidente de lograr la fiabilidad de todo el
sistema est en la redundancia. La informacin no debe estar
almacenada en un solo servidor de archivos, sino en por lo menos
dos mquinas. Mediante la redundancia de los principales archivos o
de todos evitamos el caso de que el fallo de un servidor bloquee
todo el sistema, al tener una copia idntica de los archivos en otro
equipo.Otro tipo de redundancia ms compleja se refiere a los
procesos. Las tareas crticas podran enviarse a varios procesadores
independientes, de forma que el primer procesador realizara la
tarea normalmente, pero sta pasara a ejecutarse en otro procesador
si el primero hubiera fallado.EscalabilidadUn sistema operativo
distribuido debera funcionar tanto para una docena de ordenadores
como varios millares. Igualmente, debera no ser determinante el
tipo de red utilizada (LAN o WAN) ni las distancias entre los
equipos, etc.Aunque este punto sera muy deseable, puede que las
soluciones vlidas para unos cuantos ordenadores no sean aplicables
para varios miles. Del mismo modo el tipo de red condiciona
tremendamente el rendimiento del sistema, y puede que lo que
funcione para un tipo de red, para otro requiera un nuevo diseo.La
escalabilidad propone que cualquier ordenador individual ha de ser
capaz de trabajar independientemente como un sistema distribuido,
pero tambin debe poder hacerlo conectado a muchas otras
mquinas.Comunicacin La comunicacin entre procesos en sistemas con
un nico procesador se lleva a cabo mediante el uso de memoria
compartida entre los procesos. En los sistemas distribuidos, al no
haber conexin fsica entre las distintas memorias de los equipos, la
comunicacin se realiza mediante la transferencia de mensajes.
VENTAJAS DE LOS SISTEMAS DISTRIBUIDOS CON RESPECTO DE LOS
CENTRALIZADOSLa fuerza motriz real detrs de la tendencia hacia la
descentralizacin es la economa Hace un cuarto de siglo una persona
experta en computadoras Herb Grosch enunci lo que se conocera
despus como la ley de Grosch el poder de cmputo de CPU es
proporcional al cuadrado de su precio Si se paga el doble se
obtiene cuatro veces el desempeo Esta observacin encaj bien en la
tecnologa mainframe de su tiempo y provoc que muchas organizaciones
compartan una sola mquina la ms grande que pudieran conseguir. Con
la tecnologa del microprocesador la ley de Grosch ya no es vlida
Por unos cuantos cientos de dlares es posible comprar un
microcircuito de CPU que puede ejecutar ms instrucciones por
segundo de las que realizaba una de las ms grandes mainframes de la
dcada de 1980 Si uno est dispuesto a pagar el doble se obtiene el
mismo CPU slo que con una velocidad un poco mayor como resultado la
solucin ms eficaz en cuanto a costo es limitarse a un gran nmero de
CPU baratos reunidos en un mismo sistema As la razn nmero uno de la
tendencia hacia los sistemas distribuidos es que estos sistemas
tienen en potencia una proporcin precio/desempeo mucho mejor que la
de un sistema centralizado En efecto un sistema distribuido da
mejor en el clavo.Sea de paso algunos autores distinguen entre los
sistemas distribuidos diseados para que muchos usuarios trabajen en
forma conjunta y los sistemas paralelar cuya meta es lograr la
mxima rapidez en un problema como lo hara nuestra mquina de 500 000
MIPS Creemos que esta distincin es difcil de sostener puesto que el
espectro del diseo es en realidad un continuo Preferimos utilizar
el trmino sistemas distribuidos en el sentido amplio para denotar
cualquier sistema en el que varios CPU conectados entre s trabajan
de manera conjunta.
VENTAJAS DE LOS SISTEMAS DISTRIBUIDOS CON RESPECTO DE LAS PC
INDEPENDIENTESPuesto que los microprocesadores constituyen una
forma econmica de trabajo por qu no se ofrece a cada persona su
propia PC y se le deja trabajar de manera independiente? El asunto
aqu es que muchos usuarios necesitan compartir ciertos datos Por
ejemplo los empleados de reservaciones en las lneas areas necesitan
tener acceso a la base de datos maestra de los vuelos y
reservaciones existentes Si se le diera a cada empleado una copia
particular de toda la base de datos eso no funcionara puesto que
nadie conocera los asientos vendidos por los dems empleados Los
datos compartidos son absolutamente esenciales para sta y otras
aplicaciones de modo que las mquinas deben estar conectadas entre s
La conexin de las mquinas conduce a un sistema distribuido Los
datos no son los nicos elementos que se pueden compartir Otros
candidatos son tambin los perifricos catos como las impresoras lser
de color equipos de fotocomposicin y los dispositivos de
almacenamiento masivo (por ejemplo las cajas pticas) Una tercera
razn pala la conexin de un grupo de computadoras aisladas en un
sistema distribuido es lograr una mejor comunicacin entre las
personas Para mucha gente el correo electrnico tiene numerosos
atractivos con respecto del correo con cartas el telfono o el FAX
Es mucho ms rpido que el correo con cartas no requiere que ambas
partes estn disponibles al mismo tiempo como el telfono y a
diferencia del FAX produce documentos que se pueden editar
reordenar almacena1 en la computadora y manejar mediante programas
para procesamiento de texto Por ltimo un sistema distribuido tiene
mayor flexibilidad potencial que el hecho de darle a cada usuario
una computadora personal aislada Aunque un modelo consiste en darle
a cada persona una computadora personal y conectarlas mediante LAN
sta no es la nica posibilidad Otra es tener una mezcla de
computadoras personales y compartidas tal vez con distintos tamaos
y dejar que los trabajos se ejecuten de la forma ms adecuada en vez
de ejecutarlos siempre en la computadora del propietario De esta
manera la carga de trabajo se puede difundir entre las computadoras
de forma ms eficaz y la prdida de unas cuantas mquinas se puede
compensar si se permite a las personas que ejecuten sus trabajos en
otra parte.
DESVENTAJAS DE LOS SISTEMAS DISTRIBUIDOSAunque los sistemas
distribuidos tienen sus aspectos fuertes tambin tienen sus
debilidades En esta parte sealare algunas de ellas como ya he
sealado el peor de los problemas el software Con el actual estado
de las cosas no tenemos mucha experiencia en el diseo implantacin y
uso del software distribuido. Qu tipo de sistemas operativos,
lenguajes de programacin y aplicaciones son adecuados para estos
sistemas? Cunto deben saber los usuarios de la distribucin? Qu
tanto debe hacer el sistema y qu tanto deben hacer los usuarios?
Los expertos tienen sus diferencias (no es que esto sea poco usual
entre los expertos pero cuando se entra al tema de los sistemas
distribuidos pocas veces se ponen de acuerdo) Mientras se realice
ms investigacin este problema disminuir pero por el momento no
puede subestimarse.Un segundo problema potencial es el debido a las
redes de comunicacin stas pueden perder mensajes lo cual requiere
un software especial para su manejo y puede verse sobrecargado Al
saturarse la red sta debe remplazarse o aadir una segunda En ambos
casos hay que tender cables en una parte de uno o ms edificios con
gran costo o bien hay que remplazar las tarjetas de interfaz de la
red (por ejemplo por fibras pticas) Una vez que el sistema llega a
depender de la red la prdida o saturacin de sta puede negar algunas
de las ventajas que el sistema distribuido deba conseguir Por ltimo
el hecho ya descrito de que los datos sean fcil de compartir es una
ventaja pero se puede convertir en un arma de dos filos Si las
personas pueden tener acceso a los datos en todo el sistema
entonces tambin pueden tener acceso a datos con los que no tienen
nada que ver En otras palabras La seguridad es con frecuencia un
problema Para que los datos se mantengan en secreto a toda costa es
preferible tener una computadora personal aislada sin conexiones de
red con las dems mquinas y mantenerla en un cuarto cerrado con un
mueble seguro donde guardar todos los discos flexibles.
CONCEPTOS DE HARDWAREAunque todos los sistemas distribuidos
constan de varios CPU existen diversas formas de organizar el
hardware en particular en la forma de interconectarlos y
comunicarse entre s en esta seccin analizaremos de manera breve el
hardware de los sistemas distribuidos en particular la forma en que
se conectan entre s las mquinas En la siguiente seccin examinaremos
algunos de los aspectos del software relacionados con los sistemas
distribuidos Con el paso de los aos se han propuesto diversos
esquemas de clasificacin para los sistemas de cmputo con varios CPU
pero ninguno de ellos ha tenido un xito completo ni se ha adoptado
de manera amplia Es probable que la taxonoma ms citada sea la de
Flynn (1972) aunque es algo rudimentaria Flynn eligi dos
caractersticas consideradas por l como esenciales el nmero de
flujos de instrucciones y el nmero de flujos de datos Una
computadora con un flujo de instrucciones y uno de datos se llama
SISD (Single Instruction Single Data) Todas las computadoras
tradicionales de un procesador (es decir aquellas que tienen un
CPU) caen dentro de esta categora desde las computadoras personales
hasta las grandes mainframes La siguiente categora es SIMD (Single
Instruction Multiple Data) con un flujo de instrucciones y varios
flujos de datos Este tipo se refiere a ordenar procesadores con
unidad de instruccin que busca una instruccin y despus instruye a
varias unidades de datos para que la lleven a cabo en paralelo cada
una con sus propios datos Estas mquinas son tiles para los cmputos
que repiten los mismos clculos en varios conjuntos de datos por
ejemplo sumando todos los elementos de 64 vectores independientes
Ciertas supercomputadoras son SlMD La siguiente categora es MISD
(Multiple Instruction Single Data) con un flujo de varias
instrucciones y un flujo de datos Ninguna de las computadoras
conocidas se ajusta a este modelo Por ltimo est MIMD (Multiple
Instruction Multiple Data) que significa un grupo de computadoras
independientes cada una con su propio contador del programa y datos
Todos los sistemas distribuidos son MIMD por lo que este sistema de
clasificacin no es muy til para nuestros fines.
MULTIPROCESADORES CON BASE EN BUSES Los multiprocesadores con
base en buses constan de cierta cantidad de CPU conectados a un bus
comn junto con un mdulo de memoria Una configuracin sencilla consta
de un plano de base (backplane) de dta velocidad o tarjeta madre en
el cual se pueden inserta1 las tal jetas de memoiia y el CPU Un bus
tpico tiene 32 o 64 Ineas de direcciones 32 o 64 Ineas de datos y
32 o ms lneas de control todo lo cual opera en paralelo para leer
una palabra de memoria un CPU coloca la direccin de la palabra
deseada en las lneas de direcciones del bus y coloca una seal en
las Ineas de control adecuadas para indicar que desea leer la
memoria responde y coloca el valor de la palabra en las lneas de
datos para permitir La lectura de sta por parte del CPU solicitante
La escritura funciona de manera similar.Puesto que slo existe una
memoria si el CPU A escribe una palabra en la memoria y despus el
CPU B lee esa palabra un microsegundo despus B obtendr el valor
recin escrito Una memoria con esta propiedad es coherente.
MULTIPROCESADORES CON CONMUTADORPara construir un
multiprocesador con ms de 64 procesadores, es necesario un mtodo
distinto para conectar cada CPU con la memoria. Una posibilidad es
dividir la memoria en mdulos y conectarlos a las CPU con un
conmutador de cruceta, como se muestra en la figura 1 -6(.1). Cada
CPU y cada memoria tiene una conexin que sale de l, como se muestra
en la figura. En cada interseccin est un delgado conmutador de
punto de cruce electrnico que el hardware puede abrir y cerrar.
Cuando un CPU desea tener acceso a una memoria particular, el
conmutador del punto de cruce que los conecta se cierra de manera
momentnea, para permitir dicho acceso. La virtud del conmutador de
cruceta es que muchos CPU pueden tener acceso a la memoria al mismo
tiempo, aunque si dos CPU intentan tener acceso a la misma memoria
en forma simultnea, uno de ellos deber esperar.
La desventaja del conmutador de cruceta es que con n CPU y n
memorias, se necesitan n2 conmutadores en los puntos de cruce. Si n
es grande, este nmero puede ser prohibido. Como resultado, las
personas han buscado y encontrado otras redes de conmutacin que
necesiten menos conmutadores. La red omega de la figura 1-6(b) es
un ejemplo. Esta red contiene conmutadores 2 x 2, cada uno de los
cuales tiene dos entradas y dos salidas. Cada conmutador puede
dirigir cualquiera de las entradas en cualquiera de las salidas. Un
anlisis cuidadoso de la figura mostrar que si se eligen los estados
adecuados de los conmutadores, cada CPU podr tener acceso a cada
memoria. Estos conmutadores se pueden activar en cuestin de
nanosegundos.
MULTICOMPUTADORAS CON BASE EN BUSESPor otro lado, la construccin
de una multicomputadora (es decir, sin memoria compartida) es fcil.
Cada CPU tiene conexin directa con su propia memoria local. El nico
problema restante es la forma en que los CPU se comunicarn entre s.
Es claro que aqu tambin se necesita cierto esquema de interconexin,
pero como slo es para la comunicacin entre un CPU y otro, el
volumen del trfico ser de varios rdenes menor en relacin con el uso
de una red de interconexin para el trfico CPU-memoria. En la figura
1-7 vemos una multicomputadora con base en un bus. Es similar,
desde el punto de vista topolgico, al multiprocesador basado en un
bus, pero como tendr menor trfico, no necesita ser un bus con un
plano de base de alta velocidad. De hecho, puede ser una LAN de
menor velocidad (por lo general de 10-100 Mb/seg, en comparacin con
300 Mb/seg o ms para un bus con un plano de base). Asi,la figura
1-7 es ms a menudo una coleccin de estaciones de trabajo en una LAN
que una coleccin de tarjetas de CPU que se insertan en un bus rpido
(aunque esto ltimo definitivamente es un diseo posible).
MULTICOMPUTADORAS CON CONMUTADORNuestra ltima categora es la de
las multicomputadoras con conmutador. Se han pro- puesto y
construido varias redes de interconexin, pero todas tienen la
propiedad de que cada CPU tiene acceso directo y exclusivo a su
propia memoria particular. La figura 1-8 muestra dos topologas
populares, una retcula y un hipercubo. Las retculas son fciles de
comprender y se basan en las tarjetas de circuitos impresos. Se
adecuan mejor a problemas con naturaleza bidimensional inherente,
como la teora de grficas o la visin (por ejemplo, los ojos de un
robot o el anlisis de fotografas).
Un hipercubo es un cubo n-dimensional. El hipercubo de la figura
1-8(b) es de dimensin 4. Se puede pensar, como dos cubos
ordinarios, cada uno de los cuales cuenta con 8 vrtices y 12
aristas. Cada vrtice es un CPU. Cada arista es una conexin entre
dos CPU. Se conectan los vrtices correspondientes de cada uno de
los cubos. Para extender el cubo a 5 dimensiones, podramos aadir a
la figura otro conjunto de dos cubos conectados entre s y conectar
las aristas correspondientes en las dos mitades, y as en lo
sucesivo. Para el caso de un hipercubo n-dimensional, cada CPU
tiene n conexiones con otras CPU. As, la complejidad del cableado
aumenta en proporcin logartmica con el tamao. Puesto que slo se
conectan los vecinos ms cercanos, muchos mensajes deben realizar
varios saltos antes de llegar a su destino. Sin embargo, la
trayectoria de mayor longitud tambin crece en forma logartmica
junto con el tamao, en contraste con la retcula, donde sta crece
conforme la raz cuadrada del nmero de CPU. Los hipercubos con 1 024
CPU estn disponibles en el mercado desde hace varios aos y ya
comienzan a estar disponibles los hipercubos con hasta 16 384
CPU.
CONCEPTOS DE SOFTWAREAunque el hardware es importante, el
software lo es ms. La imagen que presenta y la forma de pensar de
los usuarios de un sistema, queda determinada en gran medida por el
software del sistema operativo, no por el hardware. En esta seccin
daremos una introduccin a los distintos tipos de sistemas
operativos para los multiprocesadores y multicomputadoras que hemos
estudiado y analizaremos qu tipo de software va de acuerdo con el
hardware. Los sistemas operativos no se pueden clasificar tan fcil
como el hardware. Por su propia naturaleza, el software es vago y
amorfo. Aun as, es ms o menos posible distinguir dos tipos de
sistemas operativos para los de varios CPU: los dbilmente acoplados
y los fuertemente acoplados. Como veremos, el software dbil o
fuertemente acoplado es un tanto anlogo al hardware dbil o
fuertemente acoplado. El software dbilmente acoplado permite que
las mquinas y los usuarios de un sistema distribuido sean
independientes entre s en lo fundamental, pero que interacten en
cierto grado cuando sea necesario. Consideremos un grupo de
computadoras personales, cada una de las cuales tiene su propio
CPU, su propia memoria, su propio disco duro y su propio sistema
operativo, pero que comparten ciertos recursos, corno las
impresoras lser y las bases de datos en una LAN. Este sistema est
dbilmente acoplado, puesto que las mquinas, individuales se
distinguen con claridad, cada una de las cuales tiene su propio
trabajo por realizar. Si la red falla por alguna razn, las mquinas
individuales continan su ejecucin - en cierto grado considerable,
aunque se puede perder cierta funcionalidad (por ejemplo, la
capacidad de imprimir archivos). Para mostrar lo difcil que resulta
establecer definiciones en esta rea, consideremos ahora el mismo
sistema anterior, pero sin la red. Para imprimir un archivo, el
usuario escribe un archivo en un disco flexible, lo lleva hasta la
mquina que tiene la impresora, lo lee en ella y despus lo imprime.
Es todava un sistema distribuido, slo que ahora ms dbilmente
acoplado? Esto es difcil de decir. Desde un punto de vista
fundamental, no existe tina diferencia real entre la comunicacin a
travs de una LAN y la comunicacin mediante el traslado fsico de los
discos flexibles. Lo ms que se puede decir es que las tasas de
retraso y transmisin de los datos son peores en el segundo ejemplo.
En el otro extremo, podramos tener el caso de un multiprocesador
dedicado a la ejecucin de un programa de ajedrez en paralelo. A
cada CPU se le asigna un tablero para su evaluacin y ste ocupa su
tiempo en la evaluacin de este tablero y los que se pueden generar
a partir de l. Al terminar la evaluacin, el CPU informa de sus
resultados y se le proporciona un nuevo tablero para trabajar con
l. El software para este sistema, es decir, el programa de
aplicacin y el sistema operativo necesario para soportarlo, estn
mejor acoplados que el ejemplo anterior. Hemos visto entonces
cuatro tipos de hardware distribuido y dos de software. En teora,
deberan existir ocho combinaciones de hardware y software. De
hecho, slo existen cuatro, puesto que para el usuario, la
interconexin de la tecnologa no es visible. Para la mayor parte de
los propsitos, un multiprocesador lo es, sin importar si utiliza un
bus con cachs monitores o una red omega. En las secciones
siguientes analizaremos algunas de las combinaciones ms comunes de
hardware y software.SISTEMAS OPERATIVOS DE REDES Comenzaremos con
el software dbilmente acoplado en hardware dbilmente acoplado,
puesto que tal vez sta sea la combinacin ms comn en muchas
organizaciones. Un ejemplo tpico es una red de estaciones de
trabajo de ingeniera conectadas mediante una LAN. En este modelo,
cada usuario tiene una estacin de trabajo para su uso exclusivo.
Puede o no tener un disco duro. En definitiva, tiene su propio
sistema operativo. Lo normal es que todos los comandos se ejecuten
en forma local, justo en la estacin de trabajo. Sin embargo, a
veces es posible que un usuario se conecte de manera remota con
otra estacin de trabajo mediante un comando como rlogin machine El
efecto de este comando es convertir la propia estacin de trabajo
del usuario en una terminal enlazada con la mquina remota. Los
comandos escritos en el teclado se envan a la mquina remota y la
salida de la mquina remota se exhibe en la pantalla. Para pasar a
otra mquina remota, primero es necesario desconectarse de la
primera, y utilizar despus el comando rlogin para conectarse a la
otra. En cualquier instante, slo se puede utilizar una mquina y la
seleccin de sta se realiza de forma manual. Las redes de estaciones
de trabajo tambin tienen un comando de copiado remoto para copiar
archivos de una mquina a otra. Por ejemplo, un comando como rcp
machine1:file1 machine2:file2 Copiara el archivo file1 de machine1
a machine2, con el nombre de file2. De nuevo, el movimiento de los
archivos es explcito y se requiere que el usuario est por completo
consciente de la posicin de todos los archivos y el sitio donde se
ejecutan todos los comandos. Aunque es mejor que nada, esta forma
de comunicacin es primitiva en extremo y ha provocado que los
diseadores de sistemas busquen formas ms convenientes de
comunicacin y distribucin de la informacin. Un mtodo consiste en
proporcionar un sistema de archivos global, compartido, accesible
desde todas las estaciones de trabajo. Una o varias mquinas,
llamadas servidores de archivos, soportan al sistema de archivos.
Los servidores de archivo aceptan solicitudes para la lectura y
escritura de archivos por parte de los pro- gramas usuarios que se
ejecutan en las otras mquinas (no servidoras), llamadas clientes.
Cada una de las solicitudes que llegue se examina, se ejecuta y la
respuesta se enva de regreso, como se ilustra en la figura 1-9.
MODO DE TRANSMISIN ASNCRONA ATMEl modo de transmisin asncrona o
ATM proporciona un rpido modo de transmisin. Las altas velocidades
se alcanzan prescindiendo de la informacin de control de flujo y de
control de errores en los nodos intermedios de la transmisin. ATM
usa el modo orientado a conexin, y permite la transmisin de
diferentes tipos de informacin, como voz, vdeo, datos, etc.El
modelo cliente-servidor basa la comunicacin en una simplificacin
del modelo OSI. Las siete capas que proporciona producen un
desaprovechamiento de la velocidad de transferencia de la red, con
lo que slo se usarn tres capas: fsica (1), enlace de datos (2) y
solicitud/respuesta (5). Las transferencias se basan en el
protocolo solicitud/respuesta y se elimina la necesidad de
conexin.RPCOtro paso en el diseo de un sistema operativo
distribuido plantea las llamadas a procedimientos remotos o RPCs.
Los RPC amplan la llamada local a procedimientos, y los generalizan
a una llamada a un procedimiento localizado en cualquier lugar de
todo el sistema distribuido. En un sistema distribuido no se debera
distinguir entre llamadas locales y RPCs, lo que favorece en gran
medida la transparencia del sistema.
Una de las dificultades ms evidentes a las que se enfrenta el
RPC es el formato de los parmetros de los procedimientos. Un
ejemplo para ilustrar este problema es la posibilidad de que en un
sistema distribuido formado por diferentes tipos de ordenadores, un
ordenador con formato little endian llamara a un procedimiento de
otro ordenador con formato big endian, etc. Este problema se podra
solucionar si tenemos en cuenta que ambos programas conocen el tipo
de datos de los parmetros, o estableciendo un estndar en el formato
de los parmetros, de forma que sea usado de forma nica.Otro
problema de peor solucin es el paso de apuntadores como parmetros.
Debido a que los apuntadores guardan una direccin del espacio de
direcciones local, el procedimiento que recibe el apuntador como
parmetro no puede usar inmediatamente el apuntador, ya que no tiene
acceso a los datos, que para l son remotos. En el tema 7 se
describir la memoria compartida, que propone una solucin a este
problema.Por ltimo queda por solucionar la tolerancia a fallos. Una
llamada a un procedimiento remoto puede fallar por motivos que
antes no existan, como la prdida de mensajes o el fallo del cliente
o del servidor durante la ejecucin del procedimiento.La limitacin
del RPC ms clara en los sistemas distribuidos es que no permite
enviar una solicitud y recibir respuesta de varias fuentes a la
vez, sino que la comunicacin se realiza nicamente entre dos
procesos. Por motivos de tolerancia a fallos, bloqueos, u otros,
sera interesante poder tratar la comunicacin en grupo.COMUNICACIN
EN GRUPOLa comunicacin en grupo tiene que permitir la definicin de
grupos, as como caractersticas propias de los grupos, como la
distincin entre grupos abiertos o que permiten el acceso y cerrados
que lo limitan, o como la distincin del tipo de jerarqua dentro del
grupo. Igualmente, los grupos han de tener operaciones relacionadas
con su manejo, como la creacin o modificacin.SINCRONIZACIN La
sincronizacin en sistemas de un nico ordenador no requiere ninguna
consideracin en el diseo del sistema operativo, ya que existe un
reloj nico que proporciona de forma regular y precisa el tiempo en
cada momento. Sin embargo, los sistemas distribuidos tienen un
reloj por cada ordenador del sistema, con lo que es fundamental una
coordinacin entre todos los relojes para mostrar una hora nica. Los
osciladores de cada ordenador son ligeramente diferentes, y como
consecuencia todos los relojes sufren un desfase y deben ser
sincronizados continuamente. La sincronizacin no es trivial, porque
se realiza a travs de mensajes por la red, cuyo tiempo de envo
puede ser variable y depender de muchos factores, como la
distancia, la velocidad de transmisin o la propia saturacin de la
red, etc.EL RELOJLa sincronizacin no tiene por qu ser exacta, y
bastar con que sea aproximadamente igual en todos los ordenadores.
Hay que tener en cuenta, eso s, el modo de actualizar la hora de un
reloj en particular. Es fundamental no retrasar nunca la hora,
aunque el reloj adelante. En vez de eso, hay que ralentizar la
actualizacin del reloj, frenarlo, hasta que alcance la hora
aproximadamente. Existen diferentes algoritmos de actualizacin de
la hora, tres de ellos se exponen brevemente a continuacin.
Algoritmo de CristianComenzaremos con un algoritmo adecuado para
los sistemas en los que una mquina tiene un receptor WWV y el
objetivo es hacer que todas las mquinas se sincronicen con ella.
Llamaremos a la mquina con el receptor WWV un servidor del tiempo.
Nuestro algoritmo se basa en el trabajo de Cristian (1989) y
trabajos anteriores. En forma peridica, en un tiempo que no debe
ser mayor que 612p segundos, cada mquina enva un mensaje al
servidor para solicitar el tiempo actual.Como primera aproximacin,
cuando el emisor obtiene la respuesta, puede hacer que su tiempo
sea CUTC. Sin embargo, este algoritmo tiene dos problemas, uno
mayor y otro menor. El problema mayor es que el tiempo nunca debe
correr hacia atrs. Si el reloj del emisor es rpido, CUTC, ser menor
que el valor actual de C del emisor. El simple traslado de CUTC,
podra provocar serios problemas, tales como tener un archivo objeto
compilado justo despus del cambio de reloj y que tenga un tiempo
anterior al del archivo fuente, modificado justo antes del cambio
del reloj El algoritmo de BerkeleyEn el algoritmo de Cristian, el
servidor de tiempo es pasivo. Otras mquinas le piden el tiempo de
manera peridica y todo lo que hace es responder a sus solicitudes.
En el UNIX de Berkeley, se sigue el mtodo diametralmente opuesto
(Gusella y Zatti, 1989). En este caso, el servidor de tiempo (en
realidad, un demonio para el tiempo) est activo y realiza un
muestre0 peridico de todas las mquinas para preguntarles el tiempo.
Con base en las respuestas, calcula un tiempo promedio y le indica
a todas las dems mquinas que avancen su reloj a la nueva hora o que
disminuyan la velocidad del mismo hasta lograr cierta reduccin
especfica. Este mtodo es adecuado para un sistema donde no exista
un receptor de WWV. La hora del demonio para el tiempo debe ser
establecida en forma manual por el operador, de manera peridica. El
mtodo se muestra en la figura 3-7.
Algoritmos con promedioLos dos mtodos anteriores son muy
centralizados, con las desventajas usuales. Tambin se conocen
algunos algoritmos descentralizados. Una clase de algoritmos
descentralizados trabaja al dividir el tiempo en intervalos de re
sincronizacin de longitud fija. El i-simo intervalo inicia en T,, +
iR y va hasta T, + (i+l)R, donde T,, es un momento ya acordado en
el pasado y R es un parmetro del sistema. Al inicio de cada
intervalo, cada mquina transmite el tiempo actual segn su reloj.
Puesto que los relojes de las diversas mquinas no funcionan con
exactamente la misma velocidad, estas transmisiones no ocurrirn en
forma simultnea.SISTEMA DE ARCHIVOS A diferencia de los sistemas de
archivos clsicos, un sistema de archivos distribuido debe ser
descentralizado, transparente y tolerante a fallos.TRANSPARENCIAEl
problema ms importante a resolver es el modo de que todos los
ordenadores puedan acceder a todos los archivos del sistema. Para
ello es necesario que todos los ordenadores lleven siempre y en
todo momento una copia actualizada de la estructura de archivos y
directorios. Si esta estructura oculta la localizacin fsica de los
archivos entonces hemos cumplido el criterio de
transparencia.FALLOS DEL SISTEMAQue el sistema de archivos sea
tolerante a fallos implica que el sistema debe guardar varias
copias del mismo archivo en distintos ordenadores para garantizar
la disponibilidad en caso de fallo del servidor original. Adems, se
ha de aplicar un algoritmo que nos permita mantener todas las
copias actualizadas de forma consistente, o un mtodo alternativo
que slo nos permita acceder al archivo actualizado, como invalidar
el resto de copias cuando en cualquiera de ellas se vaya a realizar
una operacin de escritura. El uso de memorias cache para agilizar
el acceso a los archivos tambin es recomendable, pero este caso
requiere analizar con especial atencin la consistencia del
sistema.MODELOS DE ACCESODebido a la complejidad del acceso a los
archivos a travs de todo el sistema distribuido, surgen dos modelos
para el acceso a los archivos: el modelo carga/descarga, y el
modelo de acceso remoto. El primer modelo simplifica el acceso
permitiendo nicamente las operaciones de cargar y descargar un
archivo. El acceso a cualquier parte del archivo implica solicitar
y guardar una copia local del archivo completo, y slo se puede
escribir de forma remota el archivo completo. Este mtodo sera
especialmente ineficaz a la hora de realizar pequeas modificaciones
en archivos muy grandes, como podran ser bases de datos. El modelo
de acceso remoto es mucho ms complejo, y permite todas las
operaciones tpicas de un sistema de archivos local.MEMORIA
COMPARTIDA DISTRIBUIDA La memoria compartida distribuida o DSM es
una abstraccin que se propone como alternativa a la comunicacin por
mensajes.MEMORIA COMPARTIDA BASADA EN PGINASEl esquema de DSM
propone un espacio de direcciones de memoria virtual que integre la
memoria de todas las computadoras del sistema, y su uso mediante
paginacin. Las pginas quedan restringidas a estar necesariamente en
un nico ordenador. Cuando un programa intenta acceder a una posicin
virtual de memoria, se comprueba si esa pgina se encuentra de forma
local. Si no se encuentra, se provoca un fallo de pgina, y el
sistema operativo solicita la pgina al resto de computadoras. El
sistema funciona de forma anloga al sistema de memoria virtual
tradicional, pero en este caso los fallos de pgina se propagan al
resto de ordenadores, hasta que la peticin llega al ordenador que
tiene la pgina virtual solicitada en su memoria local. A primera
vista este sistema parece ms eficiente que el acceso a la memoria
virtual en disco, pero en la realidad ha mostrado ser un sistema
demasiado lento en ciertas aplicaciones, ya que provoca un trfico
de pginas excesivo.Una mejora dirigida a mejorar el rendimiento
sugiere dividir el espacio de direcciones en una zona local y
privada y una zona de memoria compartida, que se usar nicamente por
procesos que necesiten compartir datos. Esta abstraccin se acerca a
la idea de programacin mediante la declaracin explcita de datos
pblicos y privados, y minimiza el envo de informacin, ya que slo se
enviarn los datos que realmente vayan a compartirse.MEMORIA
COMPARTIDA BASADA EN OBJETOSUna alternativa al uso de pginas es
tomar el objeto como base de la transferencia de memoria. Aunque el
control de la memoria resulta ms complejo, el resultado es al mismo
tiempo modular y flexible, y la sincronizacin y el acceso se pueden
integrar limpiamente. Otra de las restricciones de este modelo es
que todos los accesos a los objetos compartidos han de realizarse
mediante llamadas a los mtodos de los objetos, con lo que no se
admiten programas no modulares y se consideran
incompatibles.MODELOS DE CONSISTENCIALa duplicidad de los bloques
compartidos aumenta el rendimiento, pero produce un problema de
consistencia entre las diferentes copias de la pgina en caso de una
escritura. Si con cada escritura es necesario actualizar todas las
copias, el envo de las pginas por la red provoca que el tiempo de
espera aumente demasiado, convirtiendo este mtodo en impracticable.
Para solucionar este problema se proponen diferentes modelos de
consistencia, que establezcan un nivel aceptable de acercamiento
tanto a la consistencia como al rendimiento. Nombramos algunos
modelos de consistencia, del ms fuerte al ms dbil: consistencia
estricta, secuencial, causal, PRAM, del procesador, dbil, de
liberacin y de entrada.
RESUMENLos sistemas operativos distribuidos son una gran
herramienta para poder llevar a cabo tareas que requieren de muchos
recursos computacionales, dado que cuando se implementan pueden
unir el potencial de varias computadoras para realizar dichas
tareas que una simple computadora no podra realizar y en caso de
que pudiera hacerlo el tiempo y el costo que de esta tarea no sera
viable, es por eso la importancia de los sistemas distribuidos,
entre las grandes ventajas que tienen son la eficiencia,
confiabilidad y el costo para mantenerlos. Aunque las ventajas son
muchas es importante destacar que uno de los inconvenientes es que
dichos sistemas son ms complejos dado que se tienen que administrar
ms recursos de hardware y tenerlos sincronizados con mediante
complejas tcnicas de software, ya sea para evitar los famosos
cuellos de botella en la comunicacin y tener problemas en la
seguridad.En los sistemas distribuidos de hace mucha mencin sobre
el concepto de escalabilidad y se le considera como una de las
propiedades mar importantes en este tipo de sistemas, dado que una
computadora estando en red puede comportarse como como un solo
sistema distribuido o compartir los recursos conectndose a la red
del sistema para resolver tareas.Una cosa que tambin es muy
interesante es la forma en como sincronizan la comunicacin de los
datos un sistema distribuido esto mediante algoritmos algunos ms
complejos que otros, pero lo que finalmente se busca en cada uno de
estos, es mantener un flujo de datos sincronizados para que el
funcionamiento del sistema de lleve a cabo sin
problemas.Bibliografa Andrew S. Tanenbaum. Sistemas operativos
modernos, 3 ed. PEARSON Educacin, Mxico, 2009. Abraham
Silberschatz, Peter B. Galvin, Greg Gagne.
FundamentosdeSistemasOperativos, 7 ed. Mc Graw Hill, Aravaca
(Madrid), 2006. Andrew S. Tanenbaum. Sistemas Operativos
Distribuidos, 1 ed. PEARSON Educacin, Mxico.
UAP: Sistemas Operativos II