Sistemas Distribuidos
Sistemas Distribuidos
Sistemas Distribuidos
1. Conceptos fundamentales.
♦ El sistema consiste de una cantidad de computadoras cada una de las cuales tiene su
propio almacenamiento, dispositivos perifŽricos y potencia computacional.
♦ Todas las computadoras est‡n adecuadamente interconectadas.
Por medio del sistema operativo adecuado, las computadoras mantienen su capacidad de
procesamiento de tareas local, mientras constituyen elementos colaborativos de
procesamiento en el ambiente distribuido. El elemento de interconexi—n indica que debe
existir el mecanismo de transporte de informaci—n entre los componentes de manera que
sea factible el intercambio de mensajes entre nodos cooperativos de manera que no se
violente la transparencia de una transacci—n. Desde el punto de vista del usuario, un
Sistema Operativo Distribuido se comporta como un sistema operativo convencional que se
ejecuta en su computadora local; sin embargo, Žste administra los recursos de varias Ðy
adem‡s, posiblemente heterogŽneas- computadoras independientes e integra una interface
comœn hacia el usuario. Se puede decir entonces que un ambiente distribuido tambiŽn
incluye las siguientes caracter’sticas:
♦ Una variedad de componentes que incluyen tanto plataformas de c—mputo como las
redes de interconexi—n que transportan mensajes entre ellas unificadas en un solo
ambiente de procesamiento.
♦ La transparencia, como resultado de la abstracci—n apropiada de los componentes
del sistema.
Sistemas Distribuidos 1
Un SD es un sistema operativo de nivel amplio.
Un SD permite la cooperaci—n entre diferentes m‡quinas o elementos de procesamiento que
est‡n conectados al mismo medio de transporte. La transparencia exige que el uso de los
componentes sea independiente del tipo y la localidad donde sean empleados en un
momento dado.
Un SD provee componentes abstractos del sistema y en muchos casos est‡ basado en ellos.
Su provisi—n y uso se puede apreciar como el manejo de caracter’sticas abstractas por
medio de las cuales se logra emplear dichos recursos. Otro enfoque diferente del anterior es
el desarrollar un SD a partir de controladores (drivers) especiales para las m‡quinas que lo
integrar‡n. En ambos casos el dise–o resulta en una interface en extremo cercana al
hardware que soporta la operaci—n del sistema, pero representado para el usuario de una
forma coherente y l—gica.
Existen ciertos factores que han propiciado el auge tan elevado de los sistemas distribuidos
dentro del procesamiento de las organizaciones modernas en el mundo, en particular
Tanenbaum [1] se–ala algunos de ellos como:
A los que se podr’an agregar: la creaci—n y proliferaci—n de las redes de interconexi—n, que
permiten el acoplamiento de sistemas de procesamiento y perifŽricos, as’ como la aparici—n
de software con una mejor ingenier’a, lo cual permite el escalamiento y actualizaci—n hacia
nuevas capacidades y prestaciones de acuerdo a las necesidades de desempe–o de las
aplicaciones actuales. Muchos autores hacen la distinci—n entre los sistemas distribuidos,
elaborados para que trabajen con ellos varios usuarios en forma simult‡nea y los sistemas
paralelos, que pretenden lograr la m‡xima velocidad de ejecuci—n en una tarea
Sistemas Distribuidos 2
determinada. Esta distinci—n ha tenido mucha controversia, por lo que el consenso general
ha determinado usar Òsistema distribuidoÓ en sentido amplio, donde varios CPU«s trabajan
Ðintercomunicados entre s’- de manera cooperativa.
Los sistemas distribuidos plantean importantes ventajas en comparaci—n con los sistemas
tradicionales centralizados, entre ellos que muchas aplicaciones est‡n elaboradas para
operar de forma natural en ambiente disperso tales como: bases de datos, sistemas de
trabajo cooperativo (como Madefast) y juegos cooperativos o MUD«s (se puede apreciar un
ejemplo de esto usando el software de demostraci—n en tiempo real que se puede obtener de
http://www.activeworlds.com). Otra ventaja importante la constituye una mayor
confiabilidad, pues es factible construir un sistema tolerante a fallas si sus componentes
comparten la carga de trabajo y, de presentarse alguna falla, dicha carga es asignada a los
dem‡s elementos que siguen operando.
Sin embargo, frente a todas las ventajas de los SD«s, existen desventajas importantes que
deber‡n ser resueltas de la mejor manera posible antes de considerar un estado maduro de
tales sistemas en lo que respecta al uso difundido de ellos dentro de las aplicaciones
cotidianas de las organizaciones modernas. Los tres principales se–alados tambiŽn por
Tanenbaum [1] son el software, las redes de interconexi—n y la seguridad. El software se
considera una problem‡tica importante dado que para un SD es importante tomar en cuenta
que Žste debe ser de un tipo y capacidades muy especiales, hecho espec’ficamente para
administrar y operar sobre un ambiente disperso. En este rubro, la mayor parte de los
sistemas desarrollados est‡n pensados para operar sobre una computadora ya sea
centralizada o bien, monousuario, dejando de lados las problem‡ticas de sincronizaci—n,
control y distribuci—n de carga que aparecen en los ambientes distribuidos. Las redes de
interconexi—n son relevantes porque a travŽs de ellas fluyen los mensajes y paquetes de
comunicaci—n entre los diferentes procesadores involucrados en la tarea, y de fallar Žstas
los procesos asociados pueden da–arse o interrumpirse. Finalmente, la cuesti—n de la
seguridad aparece tambiŽn como un elemento a considerar, dado que si cualquier usuario
tiene acceso a travŽs de una imagen l—gica a todos los elementos y perifŽricos que integran
un SD, tambiŽn puede leer informaci—n o datos de otras personas (por lo menos en forma
potencial).
Sistemas Distribuidos 3
♦ En una red, cada computadora ejecuta su propio sistema operativo, y no como parte
de un sistema operativo general.
♦ Cualquier actividad en computadoras remotas (como servidores, por ejemplo) se
lleva a cabo por medio de accesos (login) remotos en dichas computadoras que se
hacen en forma expl’cita por parte del usuario, y no como una funci—n de los
procesos como ocurre en un sistema distribuido.
♦ El trabajo con archivos remotos, igual presupone transferencias de archivos
expl’citas donde el usuario especifica la localizaci—n remota y no se da esta
asignada por el ambiente operativo.
♦ Las facultades de tolerancia a falla son un poco m‡s pobres, pues cuando una
computadora falla, esto no influye grandemente en la degradaci—n del servicio.
Desde el punto de vista del usuario, algunos de los requisitos pueden ser:
Sistemas Distribuidos 4
Evoluci—n de los sistemas de c—mputo distribuido.
Las primeras computadoras eran dispositivos de muy elevado costo, que exist’an casi
exclusivamente en las grandes universidades y centros de investigaci—n. Estas
computadoras iniciales controlaban su ejecuci—n desde una consola no accesible a los
usuarios, quienes entregaban su trabajo a los operadores generalmente en forma de tarjetas
perforadas a fin de que pudieran correr los programas y entregar los resultados m‡s tarde.
La especificaci—n del ambiente para ejecuci—n de trabajos en particular (cintas, lectoras de
tarjetas, etc.) desperdiciaba mucho del valioso tiempo de procesador. Varios conceptos
nuevos se introdujeron en las dŽcadas de los 50«s y 60«s para optimizar el tiempo de
procesamiento y el acceso/configuraci—n de los recursos necesarios para llevara a cabo un
programa o grupo de programas en particular. Entre esas nuevas metodolog’as de operaci—n
destacan: el trabajo por lotes (donde se agrupaban programas que demandaban recursos
similares y se ejecutaban en serie uno tras otro), secuenciaci—n autom‡tica de trabajos,
procesamiento fuera de l’nea a travŽs de los conceptos de buffering (memorias intermedias
de alta velocidad para optimizar la entrada-salida de datos), spooling (almacenamiento en
colas de espera de los trabajos de impresi—n), y finalmente la aparici—n de los entornos de
multiprogramaci—n.
Sin embargo, ninguna de estas innovaciones permit’an que mœltiples usuarios interactuaran
simult‡neamente con el sistema, como cuando era necesario depurar programas con errores.
Al inicio de la dŽcada de los 70«s las computadoras comenzaron a emplear las rutinas de
tiempo compartido, las cuales a travŽs de dispositivos -conocidos como terminales tontas-
conectados directamente a la computadora principal permit’an ahora ejecutar tareas
interactivas en forma simult‡nea y compartir los recursos del sistema de c—mputo. Al
mismo tiempo se tuvieron avances importantes en tecnolog’a de electr—nica que
permitieron la reducci—n de tama–o de los grandes equipos centralizados, mientras se
incrementaba la capacidad y velocidad de procesamiento y se disminu’an sensiblemente sus
costos. Los nuevos sistemas fueron conocidos como minicomputadoras. Estas dos ideas
principales Ðtener un equipo conectado a la computadora principal a travŽs del cual se
pudiera hacer uso de sus recursos y la flexibilidad de acceso sin importar la localizaci—n
f’sica- fueron retomadas para el desarrollo ulterior de los sistemas distribuidos.
Durante la dŽcada de los 70«s aparecieron las primeras estaciones ÒinteligentesÓ para
usuarios, es decir equipos con capacidad de procesamiento y memoria local, de forma tal
que ahora se conectaban al equipo central sistemas con capacidad de ejecuci—n local. Esto
marc— la aparici—n de las primeras computadoras de alto rendimiento conocidas como
workstations, las cuales sin embargo todav’a estaban atadas a las restricciones de cercan’a
con el equipo central, dado que se usaban cables de interconexi—n cuyas longitudes no
pod’an exceder de ciertos rangos de tolerancia para que la comunicaci—n entre procesadores
se pudiera llevar a cabo confiablemente.
Por otra parte y en conjunto con estos avances, se estaban dando los primeros pasos en la
creaci—n de sistemas de comunicaci—n que luego emergieron como tecnolog’as de redes
ÐLAN, local area network y WAN, wide area network- los cuales permitieron que varias
computadoras localizadas dentro de un edificio o campus pudieran intercambiar
informaci—n en tasas muy altas de velocidad. Los sistemas LAN permit’an t’picamente
Sistemas Distribuidos 5
transmisi—n a 10 Mbps, mientras que los WAN soportaron equipos separados inclusive
entre ciudades o pa’ses a velocidades que iniciaban en 56 Kbps. La primera red local de
amplio impacto comercial se llam— Ethernet y fue inventada por Xerox en 1973, mientras
que la primera WAN fue conocida como ARPANET (advanced research projects agency
network), desarrollada por el departamento de la defensa de Estados Unidos en 1969.
A lo largo de los 80«s las velocidades de las redes se incrementaron, con alcances de hasta
100 Mbps para las LAN y de 2.048 Mbps para WAN. A inicio de esta dŽcada de los 90«s ha
aparecido la tecnolog’a ATM que permitir‡ la transmisi—n de informaci—n hasta en el rango
de los 1.2 Gbps tanto para ambientes locales como de ‡rea amplia. La disponibilidad de
estas redes de banda ancha impulsar‡ la creaci—n aplicaciones futuras para c—mputo
distribuido que soportar‡n una nueva generaci—n de aplicaciones dispersas, llamadas
aplicaciones multimedia. Estas permitir‡n el manejo de diversas fuentes de informaci—n
simult‡neamente como datos, voz, video, telefon’a, etc., las cuales extender‡n los alcances
funcionales que se han usado hasta el momento.
Sistemas Distribuidos 6
Sistemas Distribuidos
Ejercicio # 1-1
3. Investigue en Internet c—mo opera el sistema Madefast y discuta los mecanismos que
implementa como ambiente distribuido de trabajo.
4. Mencione las diferencias entre los siguientes tipos de sistemas operativos mediante la
definici—n de sus propiedades esenciales.
5. Establezca con claridad cu‡les son las diferencias fundamentales entre un sistema
operativo de red y un sistema operativo distribuido.
Sistemas Distribuidos 7
Modelos de computaci—n distribuida.
Existen varios modelos fundamentales que se usan para la creaci—n de sistemas de c—mputo
distribuido, los cuales se clasifican en diferentes categor’as Ðmodelo de minicomputadora,
modelo de workstation, modelo workstation-server, modelo de pool de procesadores e
h’brido. Enseguida se presentan brevemente, junto con las notas distintivas esenciales.
Modelo de minicomputadora
Minicomputadora
Minicomputadora
Red de comunicaciones
Minicomputadora
Minicomputadora
Modelo de workstation
Consiste en varias workstations interconectadas por una red, como lo muestra la Fig. 1-2,
cada usuario se Òda de altaÓ en su computadora de inicio o Òcomputadora homeÓ y luego
desde ah’ puede enviar trabajos para ejecuci—n. Cada estaci—n tiene su propio disco duro, y
su propio sistema de archivos. La implementaci—n mostrada tiene la desventaja de que se
puede desperdiciar tiempo de procesamiento si una o m‡s computadoras no est‡n haciendo
uso de su CPU. Si el sistema determina que la estaci—n del usuario no posee la suficiente
capacidad de proceso para una tarea, transfiere el trabajo de forma autom‡tica hacia el
equipo que tiene menos actividad en ese momento y por œltimo se regresa la salida del
trabajo a la estaci—n del usuario. Ejemplo: el sistema Sprite desarrollado experimentalmente
por Xerox.
Sistemas Distribuidos 8
Red de comunicaciones
Para la implantaci—n del modelo en la vida real hay que resolver ciertos
problemas:
M‡s adelante se presentar‡n los diferentes enfoques para resolver esta problem‡tica.
Modelo workstation-server
Este se ilustra en la Fig. 1-3. Posee varias microcomputadoras y varias estaciones de trabajo
(algunas de las cuales pueden ser estaciones sin disco duro, o diskless) comunicadas
mediante red. Ahora que existe la potencialidad de tener estaciones sin disco, el sistema de
archivos a usar por estas computadoras puede ser el de una computadora completa o alguno
compartido de las diferentes minicomputadoras del sistema. Algunas otras
microcomputadoras se pueden usar para proveer otros tipos de servicios, como base de
datos, impresi—n, etc. Estas m‡quinas cumplen ahora nuevas tareas especializadas para
proveer y administrar acceso a los recursos, en la jerga comœn se les llama servidores
(servers).
Sistemas Distribuidos 9
Red de comunicaciones
...
Sistemas Distribuidos 10
Modelo de pool de procesadores
Terminales
Red de comunicaciones
Server de Server de
ejecuci—n. archivos.
Pool de
procesadores.
Sistemas Distribuidos 11
Sin embargo, este modelo no se considera recomendado para programas de c‡lculo
complejo como aplicaciones intensivas de alto rendimiento o aplicaciones basadas en
gr‡ficas. Esto se debe principalmente a la lentitud de las redes de conexi—n que se utilizan
para la comunicaci—n entre procesos. Para este tipo de tareas se considera mejor el modelo
Workstation-Server.
Modelo h’brido
Sistemas Distribuidos 12
Taxonom’a de los ambientes de c—mputo.
No existe una clasificaci—n general que sea totalmente aceptada para poder ordenar los
ambientes de c—mputo existentes y dentro de ellos, a los sistemas distribuidos en particular.
La clasificaci—n de Flynn (1966) est‡ fundamentada en la multiplicidad de los flujos de
instrucciones y de los flujos de datos dentro del sistema. El esquema de Feng (1972) se
basa en la confrontaci—n entre procesamiento serie frente a procesamiento paralelo. La
clasificaci—n de HŠndler (1977) se basa en el grado de paralelismo y encauzamiento de los
diferentes subsistemas.
Sistemas Distribuidos 13
FI
UC UP MM
FI FD
Fig. 1-5. Sistema SISD.
FD1
UP1 MM1
FD2
FI UP2 MM2
UC
MC
FDn
UPn MMn
FI
Sistemas Distribuidos 14
FD
FI1
UC1 UP1 MM1
FI2
UC2 UP2 MM2
MC
FIn
UCn UPn MMn
FD FIn ... FI2 FI1
FI1
FI1 FI1 FD1
UC1 UP1 MM1 FI2
FI2
FI2 FD2
UC2 UP2 MM2
MC
La clasificaci—n de los equipos MIMD se puede ampliar se–alando que las computadoras
que tienen memoria compartida muchas veces son llamadas multiprocesadores, las que no
Sistemas Distribuidos 15
siguen este esquema y mantienen la memoria privada para cada m‡quina son las
multicomputadoras. Cada una de estas categor’as a su vez se puede dividir bas‡ndose en
su arquitectura de conexi—n, ya sea siguiendo el esquema de bus de comunicaciones (red,
backplane o cable) que forma un medio de difusi—n entre ellos; o mediante conmutador
(switch) en una topolog’a que realmente tiene varios enlaces de comunicaci—n compartidos
entre los equipos que pueden encaminar mensajes etapa por etapa gracias a un sistema de
conmutaci—n que dirige el mensaje a lo largo de los cables de salida.
∑ Pi
Pm = i =1
(1.0)
T
En general Pi < P, por lo tanto, est‡ la tasa de utilizaci—n µ de un sistema de c—mputo
durante T ciclos como:
Pm ∑
Pi
µ= = i =1 (1.1)
P TP
Si la potencia de la computadora est‡ totalmente utilizada (es decir, si el paralelismo est‡
totalmente aprovechado), tenemos entonces que Pi = P para todo i, con lo que µ = 1 con
utilizaci—n del cien por ciento. La tasa de utilizaci—n depende del programa de aplicaci—n
que se ejecute.
P = nm (1.2)
Ejemplo: calcule el grado de paralelismo para una computadora con longitud de palabra de
64 bits y que tiene cuatro cauces aritmŽticos, cada uno de 8 etapas.
Sistemas Distribuidos 16
Precisamente, el par ordenado (n, m) corresponde a los puntos en el espacio de sistemas de
c—mputo para el sistema de coordenadas de la Fig. 1-9, donde se muestra la esta
clasificaci—n de acuerdo a como lo presenta Hwang [7].
TambiŽn se puede ampliar el concepto si para establecer con mayor claridad el grado de
paralelismo se presentan las siguientes definiciones:
Tiempo de respuesta = el tiempo promedio necesario para completar una tarea (lo
nombraremos R: en segundos/tarea).
Establecidas estas definiciones, se puede tener otro enfoque del grado de paralelismo (D)
como sigue:
D=R*T (1.3)
Pipelining y paralelismo.
Es posible decrementar el tiempo necesario para completar una tarea dentro de una
computadora dividiŽndola en N subtareas independientes. As’, N procesadores pueden
ejecutar las diferentes subtareas. M‡s aœn, es factible lograr un incremento lineal en la
velocidad si la divisi—n en N subtareas se puede hacer de tal modo que el rendimiento
m‡ximo incrementado se incremente en un factor de N. Por el contrario, una
descomposici—n no-—ptima reducir‡ el incremento en velocidad a un factor menor que N.
Ejemplo: una p‡gina en el WWW contiene varias im‡genes. Un navegador web puede
descargar todas las im‡genes una por una o puede tratar de leerlas todas en paralelo.
Suponiendo que se puede asignar un procesador para descargar cada imagen. Cada
descarga es independiente de la otra, de manera que el tiempo de terminaci—n para la
versi—n en paralelo es el tiempo que tarda en completarse la operaci—n m‡s lenta. Si un sitio
tiene tres im‡genes, con tiempos de descarga de 3, 5 y 10 segundos, la versi—n serial no
paralelizada se demora 18 segundos en concluir, en tanto que a la paralela le lleva 10
segundos. La raz—n de incremento es de 18/10 = 1.8, que est‡ determinada por el tiempo
m‡s lento para leer una imagen. Si a cada imagen le lleva el mismo tiempo descargarse, es
decir 6 segundos, entonces la raz—n de incremento ser’a de 18/6 = 3. Esta es la
descomposici—n optima de la tarea.
Sistemas Distribuidos 17
Si es posible dividir una tarea T en las subtareas T1, T2, ... TN, de manera que Tk puede
comenzarse luego de que termin— de ejecutarse Tk-1, se dice que las tareas son serialmente
dependientes. M‡s aœn, si es posible dividir una tarea en N subtareas serialmente
dependientes, entonces un pipeline de N procesadores puede dar un rendimiento N veces
m‡s grande que un solo procesador.
Sin embargo, el c‡lculo del grado de paralelismo se puede complicar si las etapas del
pipeline requieren diferentes tiempos para concluir su procesamiento, en cuyo caso se
puede emplear la ecuaci—n (1.3) con las siguientes modificaciones:
Tiempo de respuesta = el tiempo necesario para completar las tareas en las diferentes
etapas (lo nombraremos R: en segundos/tareas).
S = el tiempo que necesita la etapa m‡s lenta para operar. Dado que el pipeline entrega un
paquete cada S segundos, se tiene un rendimiento m‡ximo (o throughput) = 1/S.
D = R /S (1.4)
Ejemplo: continuando con el ejemplo anterior, se supondr‡ ahora que la capa de enlace
demora 6 ms, la de red 3 ms, la de transporte 10 ms y la de aplicaci—n 4 ms. El tiempo de
respuesta es de 23 ms. El rendimiento es de un trabajo cada 10 ms. El grado de paralelismo
es por lo tanto de 23/10 = 2.3 . Es decir, en un momento dado s—lo 3 de los cuatro
procesadores est‡n activos, los dem‡s est‡n detenidos esperando que sean completadas las
etapas de proceso anteriores.
Sistemas Distribuidos 18
16384 MPP
(1,16384) PEPE
(32,288)
288
Staran
256 (1,256)
Illiac-IV
(64,64)
64
C. mmp
(16,16)
16
Existen cuatro tipos de procesamiento que pueden ser deducidos del diagrama anterior:
El tipo PSBS recibe el nombre de procesamiento bit-serie dado que procesa s—lo un bit (n =
m = 1) cada vez, lo cual resulta en una ejecuci—n bastante lenta. El tipo PPBS (n = 1, m > 1)
ha sido llamado procesamiento por secci—n de bits debido a que procesa un conjunto de bits
cada vez. El PSBP (n > 1, m = 1) es el tipo m‡s frecuente de las computadoras actuales, y
han sido llamado de procesamiento por secci—n de palabra, dado que procesa una palabra
por vez. El esquema PPBP (n > 1, m > 1) es conocido como procesamiento totalmente
paralelo, en el cual se procesa una matriz de n x m bits en cada vez; es el modo de
ejecuci—n m‡s r‡pido de los cuatro.
Sistemas Distribuidos 19
Sistemas Distribuidos
Ejercicio # 1-2
1. Discuta las ventajas y desventajas relativas de los varios modelos que se usan
comœnmente para la configuraci—n de sistemas de c—mputo distribuido. ÀCu‡l modelo
supone que ser‡ el m‡s usado en el futuro? Justifique su respuesta.
2. Calcule el grado de paralelismo para una computadora con longitud de palabra de 32 bits
y que tiene cuatro cauces aritmŽticos, cada uno de 16 etapas.
4. Un servidor de red deber ejecutar cuatro procesos hijo a partir de un proceso padre
general. El proceso 1 requiere 3 ms para terminarse, el proceso 2 necesita 15 ms, el proceso
3 requiere 8 ms y finalmente el proceso 4 usa 10 ms. Calcule la raz—n de incremento si
primero ejecutamos en forma serial las tareas con un solo procesador y luego utilizamos
una m‡quina que puede asignar un CPU a cada tarea. ÀCu‡l ser’a la descomposici—n —ptima
de la tarea?
5. Estime la tasa de utilizaci—n durante 4 segundos de un CPU Pentium de 200 Mhz que
tiene un nœmero promedio de bits procesados por ciclo de 18.
Sistemas Distribuidos 20
Como ya se dijo, otra dimensi—n de la taxonom’a es que en algunos sistemas las m‡quinas
est‡n fuertemente acopladas y en otros dŽbilmente acopladas. Los sistemas con
acoplamiento fuerte, por lo general tienden a utilizarse como sistemas paralelos (es decir,
para ejecutar una aplicaci—n en particular) donde hay una sola memoria primaria general
(espacio de direccionamiento) que es compartida por todos los procesadores. En tanto, los
dŽbilmente acoplados se manejan m‡s como sistemas distribuidos en los cuales los
procesadores no comparten memoria y tiene su propio espacio de trabajo. Adem‡s de esta
distinci—n, los sistemas dŽbilmente acoplados son capaces de intercambiar datos a la
velocidad de su memoria, mientras que los de acoplamiento dŽbil lo hacen a la velocidad de
la red de comunicaciones utilizada. La clasificaci—n taxon—mica de tales sistemas la aparece
en la Fig. 1-10.
MIMD
Fuertemente DŽbilmente
acopladas acopladas
Multiprocesadores Multicomputadoras
(mem. Comp.) (mem. Priv.)
Sistemas Distribuidos 21
tama–o adecuado de cachŽ, se puede incrementar la tasa de reencuentro hacia niveles
significativos. Si embargo, el uso de cachŽ trae como consecuencia que la memoria se
vuelva incoherente, dado que un procesador puede leer informaci—n de una localidad de
memoria en particular pero a travŽs de su cachŽ, mientras que en la direcci—n real la
informaci—n ha sido cambiada por otro procesador.
a) ÀQuŽ tan r‡pido se pueden reenviar los paquetes si un procesador se involucra en copiar
los datos?
b) ÀCu‡nto tarda la operaci—n si dicho procesador s—lo copia el encabezado de 20 bytes y
los datos se transfieren por medio del bus de un CPU al otro?
Sistemas Distribuidos 22
son necesarios adem‡s 100 nseg, con lo cal se tiene que cada vuelta al c—digo mostrado se
demora: 4 (7.52) + 100 = 130.08 nseg.
a) Un paquete de 500 bytes son 125 palabras de 4 bytes cada una (el tama–o que acepta la
memoria). Si se desea copiar todas las palabras ser‡n necesarios:
Este ejemplo es un caso totalmente hipotŽtico puesto que ignora ciertos factores reales que
se presentan en la pr‡ctica como:
En este sistema no se tiene la compartici—n de un solo espacio de memoria, sino que cada
una de las computadoras conectadas posee su propia memoria local. El sistema de
comunicaci—n sirve para interconectar una m‡quina con otra, con lo que su volumen de
tr‡fico es varios —rdenes menor en relaci—n con el uso de una red de interconexi—n para el
tr‡fico CPU-memoria como ocurre en el caso anterior. Se tratar‡n mayores detalles de las
redes de interconexi—n en el siguiente cap’tulo.
Sistemas Distribuidos 23
Un ejemplo t’pico de multicomputadoras en bus se encuentra en las modernas redes locales
(LAN), en las cuales se agregan tarjetas de red a varios CPU«s que luego se comunican por
medio de la infraestructura de cableado. Las velocidades t’picas van de 10 a 155 Mbps.
Existen casos de sistemas multicomputadoras significativos basados en el esquema.
Memoria local Memoria local Memoria local Memoria local Memoria local
Una ventaja importante es que muchos CPU«s pueden accesar la memoria al mismo tiempo,
aunque si dos de ellos desean usar la misma memoria en forma simult‡nea uno de ellos
deber‡ esperar. Se han hecho modificaciones al cross-bar para minimizar este problema de
bloqueo, como el uso de memoria cachŽ en los puntos de cruce o el uso de planificaci—n,
pero por el momento no haremos mayores profundizaciones al respecto. La principal
problem‡tica del sistema es su tama–o, puesto que con n CPU«s y n memorias, hacen falta
n2 conmutadores en los puntos de cruce. Si n es grande la posibilidad de construcci—n del
equipo se complica. VŽase en la Fig. 1-13 un ejemplo de Crossbar de 6 x 6.
M M M M M M
P
P
P
P
P
P
Sistemas Distribuidos 24
Originado por los problemas de uso de switches como el Crossbar mencionado, se han
desarrollado otras redes de conmutaci—n que requieren menos switches para garantizar una
operaci—n confiable del sistema, modificando tambiŽn la metodolog’a de conmutaci—n
seguida. A reserva de profundizar m‡s en el siguiente cap’tulo, se analizar‡ ahora un caso
del sistema de conmutaci—n conocido como Red Omega, en el que se tienen dos niveles de
conmutaci—n integrados por switches individuales 2 x 2 (es decir, cada uno tiene dos
entradas y dos salidas). A travŽs del dise–o del momento de la conmutaci—n, se puede
garantizar que un procesador en particular pueda accesar el m—dulo de memoria que
necesita.
M
P
M
P
P M
P M
Con n CPU«s y n memorias necesita log2n etapas de conmutaci—n cada una de las cuales
tendr‡ n/2 switches, para un total de (nlog2n)/2 switches.
R:
Etapas de conmutaci—n: log21024 = 10
Switches por etapa: 1024/2 = 512
Switches necesarios: 5,120
Si se construyera el equipo con CPU«s de 100 MIPS, cada instrucci—n deber’a ejecutarse en
10 nseg. Una petici—n de memoria, por ejemplo, debe pasar a travŽs de 20 etapas de
conmutaci—n (ida y vuelta entre toda la red), por lo que cada conmutador deber’a operar a la
velocidad de 0.5 nseg, o 500 picoseg. El equipo hecho de 5210 switches de 500 picoseg
cada uno ser’a extremadamente caro.
Al igual que en el caso de Crossbar, la red Omega se vuelve cara y dif’cil de implementar si
se presenta un crecimiento elevado del nœmero de procesadores. Se ha intentado reducir el
costo mediante sistemas jer‡rquicos en el que cada procesador tiene asociada cierta
memoria, aunque puede seguir accesando la memoria de los otros. Este dise–o da lugar a
las m‡quinas NUMA (Non-Uniform Memory Access, acceso no uniforme a la memoria).
Sistemas Distribuidos 25
Tanenbaum [1] se–ala el mayor problema de las m‡quinas NUMA, las que aœn con mejor
tiempo de acceso presentan problemas para la carga de datos y programas. Adem‡s al
evaluar la posibilidad de creaci—n de m‡quinas basadas en multiprocesadores comunicados
por Crossbars o por Redes Omega (los cuales siguen siendo caros y lentos) y la dificultad
para cargar las m‡quinas NUMA, el autor concluye que la construcci—n de grandes sistemas
multiprocesadores, fuertemente acoplados y con memoria compartida es dif’cil y cara.
Con esto se logra otro punto a favor de los sistemas distribuidos, que son principalmente
representados por los equipos que discutiremos en la siguiente clasificaci—n.
Estos sistemas se implementan con base en una s—lida red de interconexi—n a la cual se
conectan los CPU«s. Cada equipo tiene acceso directo y exclusivo a su propia memoria.
Existen varias estrategias para la conexi—n topol—gica, entre las m‡s representativas est‡n la
matriz y el hipercubo. Las matrices como la presentada en la Figura. 1-15 se aplican ante
todo para problemas de graficaci—n avanzada, procesamiento de im‡genes y visi—n
rob—tica.
Sistemas Distribuidos 26
Para extender el cubo a 5 dimensiones, se puede a–adir a la figura otro conjunto de dos
cubos conectados entre s’ y conectamos 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 otros CPU«s. Como puede apreciarse, la complejidad del cableado aumenta
en proporci—n logar’tmica con el tama–o. Dado que s—lo se conectan los CPU«s m‡s
cercanos, muchos mensajes deben realizar varios saltos antes de llegar a su destino. La
trayectoria de mayor longitud igualmente crece en forma logar’tmica con el tama–o, a
diferencia de la matriz donde Žsta crece conforme la ra’z cuadrada del nœmero de CPU«s.
Sistemas Distribuidos 27
Sistemas Distribuidos
Ejercicio # 1-3
1. Lea con su equipo el art’culo ÒParallel Processing using PVMÓ, de Richard A. Sevenich
y luego ÒLokiÓ de Hill, Warren y Goda (Linux Journal, No. 45, enero 1998). Discuta con su
equipo las arquitecturas (hipercubos, switches, buses) de los sistemas presentados, las
diferencias funcionales que exhiben y el tipo de aplicaciones en que son utilizados.
Presenten al resto de la clase los t—picos discutidos, as’ como sus conclusiones respecto al
uso de sistemas distribuidos basados en equipos y software de bajo costo para aplicaciones
de alta demanda en nuestros d’as.
2. Reelabore el caso de la pr‡ctica del multiprocesador Pentium basado en bus que se trat—
anteriormente, usando las suposiciones y consideraciones que sean necesarias para intentar
que el sistema se aproxime a uno de la vida real (tomando en cuenta los detalles se–alados).
4. ÀCon respecto a quŽ t—picos son mejores los sistemas de c—mputo distribuido que los de
procesamiento paralelo? Presente y justifique tres aplicaciones donde un ambiente
distribuido sea m‡s adecuado para su ejecuci—n que el esquema en paralelo.
Sistemas Distribuidos 28
T—picos para el dise–o de sistemas operativos distribuidos.
En cuanto al software para estos ambientes, la clasificaci—n es mucho m‡s dif’cil, pero por
lo general se asume solamente que existe software dŽbilmente acoplado y fuertemente
acoplado. Realmente hay s—lo cuatro combinaciones posibles para hardware y software en
sistemas distribuidos, dado que el patr—n de interconexi—n es transparente al usuario. Por
ejemplo, los sistemas operativos para redes son hardware dŽbilmente acoplado con software
dŽbilmente acoplado (puesto que cada estaci—n es aut—noma y autocontenida, y s—lo hace
accesos al sistema cuando requiere algœn servicio en particular), en tanto que los sistemas
distribuidos son hardware dŽbilmente acoplado sobre software fuertemente acoplado (lo
cual logra la imagen de sistema œnico o Òuniprocesador virtualÓ).
Enseguida se discutir‡n los aspectos claves que hay que cuidar para el dise–o de un
ambiente operativo, aunque luego se regresar‡ sobre ellos en adelante.
♦ Transparencia
♦ Confiabilidad
♦ Flexibilidad
♦ Desempe–o
♦ Escalabilidad
♦ Heterogeneidad
♦ Seguridad
♦ Emulaci—n de sistemas operativos existentes
Sistemas Distribuidos 29
Transparencia
Transparencia de acceso.- Por esto se entiende que el usuario no debe distinguir sin
un recurso es remoto o local, por lo que respecta al usuario, utilizar un recurso debe ser un
mecanismo igual sin importar la localizaci—n f’sica de tal ente. Otra forma de expresar esto
es diciendo que la interface de usuario Ðla cual toma forma a travŽs de llamadas al sistema-
no debe distinguir entre recursos locales y remotos, y deber‡ ser responsabilidad del
sistema operativo distribuido localizar los recursos y hacer la asignaci—n de los mismos.
Sistemas Distribuidos 30
a) Las decisiones de migraci—n deben ser hechas autom‡ticamente.
b) La migraci—n de un objeto a otro no requerir‡ cambio en su nombre.
c) La comunicaci—n interprocesos debe poder enviar un mensaje a un proceso
que est‡ siendo reubicado, sin tener que obligar al originador a reenviar de
nuevo su paquete de datos.
Tipo Significado
Transparencia de acceso Poder usar los recursos del sistema
independientemente de su localizaci—n.
Transparencia de Los recursos tienen nombres consistentes, y
localizaci—n pueden usarse desde cualquier sitio que estŽ
el usuario.
Transparencia de Las rŽplicas de procesos y recursos se crean
replicaci—n y administran en forma autom‡tica.
Transparencia a fallas Las fallas en componentes deben ser
resueltas con componentes de respaldo,
autom‡ticamente.
Transparencia de Los recursos pueden moverse de lugar y
migraci—n mantener nomenclatura consistente.
Transparencia de Cada persona no nota la existencia de los
concurrencia dem‡s
Transparencia de La asignaci—n y balance de carga de trabajo
desempe–o se llevan a cabo sin intervenci—n del usuario
Transparencia de El sistema debe poder expandirse sin
escalamiento interrumpir el trabajo de los usuarios.
Confiabilidad
En general, se espera que un ambiente distribuido tenga mayor confiabilidad que uno
centralizado, dado que se tienen mœltiples componentes que funcionan como respaldo. Sin
embargo, la existencia de tales componentes por s’ misma no puede aumentar la
Sistemas Distribuidos 31
confiabilidad del sistema. En contraste, el ambiente operativo que administra los recursos
debe ser dise–ado para incrementar la fiabilidad del sistema tomando partido de las
caracter’sticas mencionadas de los ambientes distribuidos. Existen dos tipos generales de
fallas que pueden presentarse: en la primera, el sistema se detiene completamente luego de
presentarse el estado de error. En la segunda (fallas parciales), el ambiente continœa
operando pero arroja resultados err—neos. A continuaci—n describiremos los mŽtodos m‡s
comœnmente usados para el tratamiento de fallas.
Sistemas Distribuidos 32
utilizadas en sistemas operativos distribuidos pueden ser el uso de transacciones at—micas,
servers sin estado y transmisi—n de mensajes basados en reconocimiento y tiempos fuera.
Tipo Significado
Eliminaci—n de fallas Uso de componentes individuales de alta
confiabilidad.
Tolerancia a fallas Los recursos se duplican con tŽcnicas de
redundancia
Detecci—n y recuperaci—n Determinar la existencia de una falla y luego
de fallas implementar tŽcnicas para resolverla.
Flexibilidad
Sistemas Distribuidos 33
requisitos por parte de las personas o cambios en el ambiente del sistema. La facilidad de
expansi—n se refiere al mayor o menor grado para a–adir nueva funcionalidad al ambiente
operativo o a los componentes del sistema en s’.
Tipo Significado
Flexibilidad d e Cambios o alteraci—n en los componentes.
modificaci—n
Flexibilidad de expansi—n A–adir nueva funcionalidad.
El factor m‡s importante para el dise–o del sistema operativo distribuido es el kernel
mismo. El kernel es la secci—n controladora central que provee las facilidades b‡sicas del
sistema, opera en una direcci—n que es inaccesible a los procesos de usuarios, y de hecho
constituye la œnica parte que del ambiente operativo que un usuario no puede reemplazar o
modificar. Los dos modelos para el dise–o de kernels que se han seguido son el monol’tico
y el microkernel. En el modelo monol’tico, muchos de los servicios del sistema operativo
como el manejo de la memoria, la planificaci—n, la comunicaci—n entre procesos, el acceso
al sistema de archivos y el manejo mismo de los procesos son provistos por el kernel. Esto
da como resultado una estructura extensa y compleja.
Sistemas Distribuidos 34
El modelo de microkernel tiene las ventajas de: tama–o reducido (lo cual incrementa la
flexibilidad y capacidad de configuraci—n), su modularidad por naturaleza y la facilidad de
modificar el dise–o o a–adir nuevos servicios. M‡s aœn en el caso de agregar o cambiar un
servicio no hay necesidad de detener el sistema y construir un nuevo kernel, como sucede
en los sistemas monol’ticos. Por el otro lado, entre sus desventajas est‡n considerar que el
paso de mensajes a travŽs del kernel para toda la comunicaci—n entre procesos impone una
sobrecarga natural a diferencia del modelo monol’tico (donde el mismo espacio es
compartido por todos los servicios y el kernel) donde no se requiere paso de mensajes ni
conmutaci—n de contexto.
Desempe–o
La consideraci—n en este punto es que el desempe–o del ambiente distribuido debe ser al
menos tan bueno como el centralizado, para lo cual se requiere que los componentes sean
construidos de forma espec’fica. Sus principios fundamentales son:
Usar batching donde sea posible.- El uso de proceso en batch siempre mejora el
rendimiento en el ambiente distribuido. Por ejemplo, es mejor transmitir grandes segmentos
de datos a travŽs de la red que enviar p‡ginas individuales. El uso de piggybacking
(asentimientos de mensajes anteriores dentro del siguiente mensaje de una serie) tambiŽn
apoya el incremento del desempe–o.
Usar batching tiene las siguientes ventajas importantes con respecto al tiempo de
ejecuci—n de procesos:
Para presentar con mayor detalle estas ideas se definen las variables S à unidades de
tiempo para ejecutar una tarea, y O à sobrecarga por ejecuci—n en unidades de tiempo.
Suponiendo que el sistema procesa una tarea inmediatamente en cuanto llega, si en ese
instante el sistema est‡ desocupado se tendr‡:
1
Peor caso de m‡ximo rendimiento = (1.6)
S +O
Asumiendo ahora que se est‡ formando un lote con N tareas que requieren un
tiempo A para llegar al sistema, y que la sobrecarga para las N tareas es P, de manera tal
que P < N*O. Si las tareas en el lote se atender‡n en base a la rutina FIFO, se tendr‡:
Sistemas Distribuidos 35
N
Peor caso de m‡ximo rendimiento = (1.8)
(N * S) + A + P
1
Peor caso de m‡ximo rendimiento = (1.9)
A + P
S+
N
S+O
(1.10)
A + P
S+
N
Esta relaci—n es mayor que 1 cuando A < ( N*O Ð P), esto es, el tiempo consumido
en acumular N paquetes es menor que el tiempo ganado en la sobrecarga decrementada.
Durante el tiempo A el sistema es libre de ejecutar otras tareas, de forma tal que si
fuese medido el rendimiento solamente durante el tiempo que el equipo se dedica a dicha
tarea se obtendr’a
1
Peor caso de m‡ximo rendimiento = (1.11)
S+P
N
Ejemplo: al recibir un paquete una tarjeta de red generalmente enciende una interrupci—n
para avisar al CPU que debe realizar una tarea. El tiempo transcurrido en asignar la
interrupci—n puede significar una sobrecarga significativa en el procesamiento del paquete,
lo cual puede motivar a usar tŽcnicas de "batching". Una estrategia comœn en tanto se
agrupan interrupciones es encender una interrupci—n con un retardo fijo luego de recibir un
paquete. Esto limita el peor tiempo de respuesta, mientras incrementa el rendimiento si
llegan varios paquetes uno tras otro.
Sistemas Distribuidos 36
Ignorando el tiempo de espera de los paquetes, este resultado se mejora en 10 paquetes cada
25 ms = 0.4 paquetes/ms.
Ejemplo: una sesi—n de terminal remota (TELNET) env’a un paquete por cada car‡cter
tecleado, lo cual parece ser ineficiente. Ud. debe dise–ar una aplicaci—n que aplique
batching en los caracteres. Asumiendo que los usuarios teclean caracteres a la tasa pico de 5
caracteres/seg, y con un promedio de 1 car‡cter/seg.
a) ÀSi se pueden retardar los caracteres no m‡s de 500 ms antes de que deban enviarse cu‡l
es el tama–o del lote m‡s largo y el tama–o promedio?
b) Si el tama–o del lote se fija a 20 caracteres, cu‡les son los retardos promedio y mejor que
se pueden lograr a nivel de aplicaci—n?
Soluciones:
a) El tama–o m‡s grande del lote es cuando los paquetes llegan en el valor pico de 5
caracteres/seg = 200 ms/car‡cter. Por tanto, el tama–o m‡s grande es 500/200 = 3
caracteres. El tama–o promedio del lote es 500/1000 = 1 car‡cter.
c) Si las suposiciones hechas son correctas, no conviene hacer un TELNET con lotes.
T—picos de dise–o:
Usar cachŽ donde sea posible.- El uso de cachŽ vuelve a los datos m‡s disponibles,
adem‡s de que puede reducir la contienda por recursos centralizados.
Sistemas Distribuidos 37
Tipo Significado
Usar batch donde sea El batching siempre mejora el rendimiento
posible en un sistema distribuido.
Usar cachŽ donde sea Una forma de tener datos m‡s disponibles y
posible reducir contienda por recursos centralizados
Minimizar la copia de A fin de no tener tiempo gastado de CPU
datos
Minimizar el tr‡fico en la
red
Escalabilidad
Evitar entidades centralizadas.- El uso de una entidad centralizada como una base
de datos o un servidor de archivos en especial vuelve al sistema no escalable debido a las
siguientes razones:
Sistemas Distribuidos 38
Ejecutar la mayor’a de las operaciones en las estaciones clientes.- Esta tŽcnica
favorece la escalabilidad, puesto que realiza una degradaci—n suave del desempe–o del
sistema conforme crece en tama–o, a travŽs de la reducci—n de la contienda por recursos
compartidos.
Tipo Significado
Evitar entidades El batching siempre mejora el rendimiento
centralizadas en un sistema distribuido.
Evitar algoritmos Una forma de tener datos m‡s disponibles y
centralizados reducir contienda por recursos centralizados
Ejecutar la mayor’a de las A fin de no tener tiempo gastado de CPU
operaciones en las
estaciones clientes
Heterogeneidad
Seguridad
Para que las personas puedan confiar en la integridad del sistema y la operaci—n que con Žl
puede hacerse, debe implementarse toda la protecci—n contra accesos no autorizados y
destrucci—n total o parcial tanto de hardware como de software. A diferencia de los
sistemas centralizados en donde la autentificaci—n de un usuario o programa que intenta
hacer uso de un recurso en particular se ejecuta en la misma m‡quina a la que se solicita el
acceso, en un sistema distribuido dicha informaci—n no puede garantizarse en cuanto a
veracidad.
a) Debe ser posible para el originador de un mensaje saber que dicha informaci—n
lleg— al receptor deseado.
Sistemas Distribuidos 39
b) Debe ser posible para el receptor de un mensaje determinar que Žste fue emitido
por el originador genuino.
c ) Tanto el receptor como el transmisor deben implementar mecanismos para
asegurarse que la informaci—n original no ha sido alterada durante su tr‡nsito de
un extremo a otro
Sistemas Distribuidos 40
Ejemplos de Sistemas Distribuidos.
Hasta ahora se ha mencionado que existen diferentes tipos de sistemas distribuidos, en este
apartado se mencionan algunos de ellos y las caracter’sticas que los distinguen, tŽngase
presente que el texto se refiere a los siguientes tipos de sistemas distribuidos, de acuerdo a
la clasificaci—n de Langsford [2]:
Los sistemas en tiempo real pueden estar tanto basados en el modelo de pool de servers
como en el de orientaci—n a objetos. Los kernels de funcionalidad m’nima Ðcomo ya se
dijo- reciben el nombre de microkernels, dado que proveen un conjunto casi m’nimo de
primitivas para la administraci—n de procesos, manejo de memoria, intercambio de
mensajes y la administraci—n de la memoria de respaldo. Ejemplos de Žstos sistemas
incluyen: ACCENT y MACH de la universidad Carnegie Mellon, V KERNEL de Stanford
y QNX, de QNX Software Ltd.
Sistemas integrados.
Tratan a las aplicaciones como objetos abstractos sobre los cuales ejecutan operaciones
abstractas. Ejemplos: ARGUS del MIT, EDEN de la universidad de Washington y
AMOEBA de la Vrije Universiteit Amsterdam.
Utilizan un server con los servicios disponibles para cada usuario. El Sistema Operativo
Distribuido Cambridge es un caso de esta clase.
Sistemas Distribuidos 41
DCE es un esfuerzo de la Open Software Foundation (OSF) por crear un ambiente de
c—mputo distribuido independiente de los vendedores. A la OSF pertenecen empresas como
IBM, DEC, HP, etc., quienes han aportado diferentes conceptos y mecanismos para integrar
DCE, el cual no puede considerarse ni como ambiente operativo ni como aplicaci—n.
Como se ve en la Fig. 1-24, DCE es middleware estructurado por niveles entre la capa de
aplicaciones DCE y la capa del sistema operativo y la red. La idea b‡sica es tomar una
colecci—n de m‡quinas existentes (posiblemente de diferentes fabricantes), interconectarlas
en red y agregar la plataforma del software DCE sobre cada sistema operativo, lo cual
permitir‡ construir y ejecutar las aplicaciones distribuidas. Cada m‡quina conserva su
propio ambiente operativo local, y a travŽs de la capa de software DCE elimina sus
diferencias con las otras (ejecutando las conversiones de tipos de datos que sean necesarias)
de forma tal que se logra hacer transparente para los programadores a un ambiente
b‡sicamente heterogŽneo.
Aplicaciones DCE
Software DCE
DCE no fue creado por OSF, sino que pas— por un proceso de selecci—n entre muchas otras
propuestas cuando la OSF abri— la licitaci—n a universidades e industria para buscar las
herramientas y servicios necesarios para la construcci—n de un ambiente distribuido de
c—mputo que fuera coherente. El c—digo de servicios y herramientas que se acept— recibi—
m‡s modificaciones por parte de OSF hasta que se logr— un solo paquete integrado que
estuvo disponible en enero de 1992 como DCE v 1.0.
Sistemas Distribuidos 42
Componentes de DCE
Otra finalidad importante es que DCE sea escalable, de tal forma que soporte miles de
usuarios y equipos operando sobre redes de cobertura amplia. Para lograr este nivel de
funcionalidad se usa la operaci—n por celdas (un conjunto de personas, m‡quinas y recursos
que tienen prop—sitos comunes y usan recursos compartidos). Una celda m’nima necesita
un server de directorio para ella, un server de seguridad, un servidor de tiempo distribuido y
una o m‡s estaciones clientes con procesos correspondientes para cada tipo de servidor. Se
tiene toda la libertad para definir una celda, de acuerdo a especificaciones de trabajos a
realizar en ella y ciertas tareas administrativas, y para ello se siguen cuatro factores que
apoyan a definici—n en particular de esta unidad operativa:
Prop—sito: los equipos de las personas que cumplen funciones comunes o que
accesan recursos similares pueden constituir un tipo de celda.
Sistemas Distribuidos 43
Administraci—n: los equipos sobre los cuales se aplican pol’ticas similares en cuanto
a control de recursos pueden simplificar el manejo del sistema y servir como criterio de
integraci—n.
Seguridad: las computadoras de usuarios que dependen del acceso a otros para su
proceso pueden determinar una celda, donde los l’mites de la misma actœan como un
firewall mantener los recursos de la celda libres de intromisi—n, de forma que para usarlos
deber‡ pasarse por un mecanismo de autentificaci—n y autorizaci—n espec’fico.
Sumario
En esta primera parte se han presentado los conceptos esenciales de los sistemas
distribuidos, sus caracter’sticas b‡sica y las causas tecnol—gicas/funcionales que
determinaron su aparici—n y desarrollo. Se analizaron tambiŽn los diferentes modelos para
la creaci—n de c—mputo distribuido y los t—picos m‡s importantes que rigen el dise–o de un
sistema operativo distribuido, que es el software fundamental que mantiene en operaci—n a
estos sistemas.
Por œltimo, fue presentada una breve introducci—n a DCE, un ambiente de c—mputo
distribuido abierto, que intenta ser la plataforma comœn para el dise–o de aplicaciones
distribuidas sobre plataformas heterogŽneas de c—mputo.
Sistemas Distribuidos 44
Sistemas Distribuidos
Ejercicio # 4
2. Analice con su equipo de trabajo los m‡s importantes t—picos que puede seguir una
dise–adora o dise–ador de un sistema operativo distribuido para incrementar la
confiabilidad de su sistema. ÀCu‡l es el principal problema que se presente para construir
un sistema confiable?
Sistemas Distribuidos 45
Sistemas Distribuidos
Tarea # 1
Nombre:
_________________________________________________________________________
1. Leer el art’culo ÒThe scientific workstation of the future may be a pile of PC«sÓ, de
Thomas Sterling (Communications of the ACM, september 1996, Vol. 39. No. 9) . Elaborar
un comentario cr’tico al respecto.
2. Lea el art’culo ÒParallel Computing using LinuxÓ, de Manu Konchady (Linux Journal,
No. 45, enero 1998).
Elabore una contrastaci—n entre los conceptos presentados en dicho texto y aquellos que
hemos analizado hasta el momento.
3. Leer el art’culo de Daryll Strauss, ÒLinux helps bring Titanic to lifeÓ. Elaborar un
comentario cr’tico al respecto. Discuta los t’picos de la arquitectura usada (d—nde se
clasificar’a Žsta) y el tipo de sistema distribuido que se us— en el proyecto.
4. Una multicomputadora con 256 CPU«s se organiza como una matriz de 16 x 16. ÀCu‡l
puede ser el mayor tiempo de retraso (correspondiente a los saltos) para un mensaje?
Sistemas Distribuidos 46
Como gu’a para la comparaci—n considere los siguientes casos: (a) el nœmero de
procesadores es peque–o (2-8); (b) el nœmero de procesadores es grande (16-32); y (c) el
nœmero de procesadores es muy grande (> 100).
Fecha de entrega:
Entregar esta hoja como car‡tula del trabajo.
Sistemas Distribuidos 47