Sistemas Distribuidos. 1. Conceptos fundamentales. Definici—n de un sistema de c—mputo distribuido.

La idea fundamental de un sistema distribuido es que constituye una combinaci—n de computadoras y sistemas de transmisi—n de mensajes bajo un solo punto de vista l—gico a travŽs del cual los elementos de c—mputo resuelven tareas en forma colaborativa. Se puede aseverar que el sistema constituye un ente capaz de procesar informaci—n debido a dos caracter’sticas esenciales: ♦ 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. Con respecto a la transparencia, no siempre es posible mantenerla estrictamente en todos los casos. Algunas ocasiones es necesario el establecimiento de ciertas distinciones entre los usuarios y los operadores del ambiente computacional, debido a las tareas espec’ficas o generales que Žstos deben realizar. La transparencia implica requerimientos de integraci—n de los componentes en una sola unidad: ♦ Un SD es un sistema operativo de nivel amplio. ♦ Un SD provee componentes abstractos del sistema y en muchos casos est‡ basado en ellos. ♦ Un SD implementa control distribuido de acuerdo al principio de la autonom’a cooperativa. ♦ Existe una descripci—n distribuida 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. Un SD implementa control distribuido de acuerdo al principio de la autonom’a cooperativa. El principio de autonom’a cooperativa establece que todos los elementos involucrados tienen igual oportunidad en la toma de decisiones que les afectan como un todo. En un momento dado, la toma de decisi—n se hace s—lo entre los procesadores involucrados en una tarea, en tanto que los dem‡s permanecen ajenos a esta decisi—n. Visto desde la —ptica individual, los procesos de decisi—n aut—nomos cooperativos exhiben una mayor complejidad que aquellos basados en decisiones jer‡rquicas. Existe una descripci—n distribuida del sistema. La consistencia sem‡ntica significa que todos los servicios del sistema, los directorios y programas de aplicaci—n frecuentemente usados deben tener el mismo efecto sin importar el punto donde sean ejecutados, y ser llamados de la misma forma independientemente de la ubicaci—n y notaci—n interna del nodo. Desafortunadamente, el objetivo de consistencia sem‡ntica entra en conflicto con los objetivos de autonom’a local, de manera que restringe en forma importante las posibilidades de instalar software en los nodos, as’ como la facilidad de adaptar dicho software al usuario. 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: 1. Avances en tecnolog’a de c—mputo. 2. Desarrollo de las redes locales de alta velocidad (LAN). 3. Desarrollo de redes de ‡rea amplia (WAN). 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. Por lo que respecta a la comparaci—n de un sistema distribuido contra la operaci—n de una sola PC, las dos ventajas esenciales son la compartici—n de perifŽricos/recursos y la distribuci—n de carga de las aplicaciones. En el primer caso, se logra tener acceso a equipos sofisticados o especializados que al ser usados concurrentemente por varias personas permiten aplicar criterios de econom’a de escala para su asignaci—n y adquisici—n desde el punto de vista econ—mico. En cuanto al segundo punto, a travŽs de un ambiente distribuido se logra mejorar la carga de trabajo de ciertos equipos o servicios, de manera tal que se balancea adecuadamente el nivel de desempe–o y aplicaci—n de componentes de hardware y software, maximizando el uso de los sistemas de acuerdo a la demanda de los usuarios. 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). Es un error comœn de enfoque el suponer iguales un sistema operativo de red y un sistema operativo distribuido, el cual anima y maneja los recursos del sistema distribuido en s’. Existen diferencias importantes en la operaci—n interna de tales sistemas, que enseguida se mencionan:
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. Las funciones m‡s importantes de un Sistema Distribuido. Un SD posee las siguientes funciones b‡sicas: ♦ Comunicaci—n interprocesos. La intenci—n es tener comunicaci—n entre procesos sobre la red de conexi—n, usando para ello las facilidades instaladas. Generalmente implica el uso de un protocolo de transporte para establecer el enlace en el ‡mbito de protocolo de servicios. ♦ Administraci—n y asignaci—n de recursos. Contempla la asignaci—n de recursos a usuarios, toma de decisi—n de en d—nde deber‡n ser ejecutadas las peticiones, creaci—n e instalaci—n de nuevos recursos en la red, soporte de replicaci—n para procesos cr’ticos, mecanismos de control de concurrencia y sincronizaci—n. ♦ Administraci—n de nombres. Mecanismos de asignaci—n y mantenimiento de los nombres de los recursos, localizaci—n de servidores/usuarios, mantenimiento de directorios, etc. ♦ Reinicio luego de fallas. Implementado en varias capas de operaci—n a lo alto de la arquitectura del sistema. ♦ Funciones de protecci—n. Especificaci—n de los usuarios y sus derechos de acceso, mecanismos de autentificaci—n, pol’ticas de acceso y contra ataques externos. Desde el punto de vista del usuario, algunos de los requisitos pueden ser: ♦ Proveer de ayudas para la soluci—n de problemas ♦ Minimizaci—n del costo de acceso a los recursos ♦ Maximizaci—n y simplificaci—n de las facilidades de comunicaci—n con otros usuarios o programas.

Sistemas Distribuidos

4

Los sistemas LAN permit’an t’picamente Sistemas Distribuidos 5 . etc. se estaban dando los primeros pasos en la creaci—n de sistemas de comunicaci—n que luego emergieron como tecnolog’as de redes ÐLAN. La especificaci—n del ambiente para ejecuci—n de trabajos en particular (cintas. lectoras de tarjetas.fueron retomadas para el desarrollo ulterior de los sistemas distribuidos. las cuales a travŽs de dispositivos -conocidos como terminales tontasconectados directamente a la computadora principal permit’an ahora ejecutar tareas interactivas en forma simult‡nea y compartir los recursos del sistema de c—mputo. como cuando era necesario depurar programas con errores. Los nuevos sistemas fueron conocidos como minicomputadoras. ninguna de estas innovaciones permit’an que mœltiples usuarios interactuaran simult‡neamente con el sistema.Evoluci—n de los sistemas de c—mputo distribuido. 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.) desperdiciaba mucho del valioso tiempo de procesador. 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. spooling (almacenamiento en colas de espera de los trabajos de impresi—n). Durante la dŽcada de los 70«s aparecieron las primeras estaciones ÒinteligentesÓ para usuarios.los cuales permitieron que varias computadoras localizadas dentro de un edificio o campus pudieran intercambiar informaci—n en tasas muy altas de velocidad. las cuales sin embargo todav’a estaban atadas a las restricciones de cercan’a con el equipo central. que exist’an casi exclusivamente en las grandes universidades y centros de investigaci—n. 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. 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). Al inicio de la dŽcada de los 70«s las computadoras comenzaron a emplear las rutinas de tiempo compartido. Por otra parte y en conjunto con estos avances. local area network y WAN. y finalmente la aparici—n de los entornos de multiprogramaci—n. es decir equipos con capacidad de procesamiento y memoria local. 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). Sin embargo. wide area network. Esto marc— la aparici—n de las primeras computadoras de alto rendimiento conocidas como workstations. 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. secuenciaci—n autom‡tica de trabajos. 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. Las primeras computadoras eran dispositivos de muy elevado costo. de forma tal que ahora se conectaban al equipo central sistemas con capacidad de ejecuci—n local. mientras se incrementaba la capacidad y velocidad de procesamiento y se disminu’an sensiblemente sus costos. Estas computadoras iniciales controlaban su ejecuci—n desde una consola no accesible a los usuarios.

telefon’a. La mezcla de las tecnolog’as de c—mputo y comunicaciones durante finales de los 70«s e inicios de los 80«s permitieron el nacimiento de una nueva generaci—n de aplicaciones que fueron los sistemas distribuidos.2 Gbps tanto para ambientes locales como de ‡rea amplia. 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. y actualmente han aparecido ya los primeros sistemas operativos distribuidos en forma comercial. mientras que la primera WAN fue conocida como ARPANET (advanced research projects agency network). Sistemas Distribuidos 6 . Dado que el hardware de comunicaciones y de procesamiento de datos estaba bastante maduro y dominado al inicio de los 70«s. Se lograron bastantes avances en las universidades respecto a este campo. etc. video. los mayores esfuerzos se enfocaron en la generaci—n de software que pudiera mantener operando estos sistemas y que resultara en una nueva generaci—n de sistemas para las empresas.048 Mbps para WAN. con alcances de hasta 100 Mbps para las LAN y de 2. A lo largo de los 80«s las velocidades de las redes se incrementaron. llamadas aplicaciones multimedia. 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. mientras que los WAN soportaron equipos separados inclusive entre ciudades o pa’ses a velocidades que iniciaban en 56 Kbps. Estas permitir‡n el manejo de diversas fuentes de informaci—n simult‡neamente como datos.transmisi—n a 10 Mbps. desarrollada por el departamento de la defensa de Estados Unidos en 1969. La primera red local de amplio impacto comercial se llam— Ethernet y fue inventada por Xerox en 1973.. voz. las cuales extender‡n los alcances funcionales que se han usado hasta el momento.

justifique ampliamente si este puede considerarse un ejemplo de computaci—n distribuida y por quŽ. Sistema Distribuido.edu/about_seti/about_seti_at_home_1.html para comprobar el funcionamiento de un sistema que env’a informaci—n a equipos remotos y luego recupera la salida general de todos ellos. Establezca con claridad cu‡les son las diferencias fundamentales entre un sistema operativo de red y un sistema operativo distribuido.com . Lea la justificaci—n tŽcnica del proyecto s e t i @ h o m e en http://setiathome. 4. ♦ Existe una descripci—n distribuida del sistema.berkeley.donde podr‡ hacer uso de una aplicaci—n distribuida tipo MUD. Mencione las diferencias entre los siguientes tipos de sistemas operativos mediante la definici—n de sus propiedades esenciales.ssl. Instale en su computadora el software de demostraci—n de http://www.edu/windows. ♦ Un SD implementa control distribuido de acuerdo al principio de la autonom’a cooperativa. 3. Instale en su computadora el software de an‡lisis de se–ales radioelŽctricas del proyecto SETI del sitio Web http://setiathome.Sistemas Distribuidos Ejercicio # 1-1 1. Procesamiento paralelo.activeworlds. Investigue en Internet c—mo opera el sistema Madefast y discuta los mecanismos que implementa como ambiente distribuido de trabajo.berkeley. 2. Explique c—mo se aprecia en la funcionalidad del ambiente las siguientes caracter’sticas de un sistema distribuido: ♦ Un SD es un ambiente de nivel amplio. Sistema de Red. ♦ Un SD provee componentes abstractos del sistema y en muchos casos est‡ basado en ellos. De acuerdo a lo explicado ahora en el curso. Sistemas Distribuidos 7 . a) b) c) d) Un sistema de tiempo compartido. 5.html .ssl.

junto con las notas distintivas esenciales. modelo de pool de procesadores e h’brido. y su propio sistema de archivos. Si el sistema determina que la estaci—n del usuario no posee la suficiente capacidad de proceso para una tarea. Este esquema consiste de varias minicomputadoras conectadas por una red de comunicaci—n. Sistemas Distribuidos 8 . Existen varios modelos fundamentales que se usan para la creaci—n de sistemas de c—mputo distribuido.Modelos de computaci—n distribuida. Cada minicomputadora tiene su propio grupo de usuarios quienes pueden tener acceso a otros recursos no presente en su sistema a travŽs de la red de datos. 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: los inicios del ARPANet. 1-2. modelo workstation-server. Ejemplo: el sistema Sprite desarrollado experimentalmente por Xerox. Modelo de minicomputadora. los cuales se clasifican en diferentes categor’as Ðmodelo de minicomputadora. 1-1. Cada estaci—n tiene su propio disco duro. Enseguida se presentan brevemente. como lo muestra la Fig. Modelo de workstation Consiste en varias workstations interconectadas por una red. Modelo de minicomputadora Es simplemente la extensi—n del modelo de equipo centralizado. modelo de workstation. 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. Este modelo se usa cuando existe necesidad de compartir recursos de diferentes tipos a travŽs de acceso remoto. Minicomputadora Minicomputadora Red de comunicaciones Minicomputadora Minicomputadora Fig. cada usuario se Òda de altaÓ en su computadora de inicio o Òcomputadora homeÓ y luego desde ah’ puede enviar trabajos para ejecuci—n.

Sistemas Distribuidos 9 . Ahora que existe la potencialidad de tener estaciones sin disco. ÀQuŽ le ocurre a un proceso remoto si un usuario se da de alta en una estaci—n que estaba desocupada hasta ese momento y estaba siendo utilizada para correr un proceso de otro usuario? M‡s adelante se presentar‡n los diferentes enfoques para resolver esta problem‡tica. Modelo de Workstation. Posee varias microcomputadoras y varias estaciones de trabajo (algunas de las cuales pueden ser estaciones sin disco duro. o diskless) comunicadas mediante red.Red de comunicaciones Fig. ÀC—mo puede transferirse un proceso desde una estaci—n para ser ejecutado en otra? 3. 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. etc. Modelo workstation-server Este se ilustra en la Fig. ÀC—mo identifica el sistema a una estaci—n desocupada? 2. 1-2. impresi—n. 1-3. en la jerga comœn se les llama servidores (servers). Para la implantaci—n del modelo en la vida real hay que resolver ciertos problemas: 1. Estas m‡quinas cumplen ahora nuevas tareas especializadas para proveer y administrar acceso a los recursos.

Por ejemplo. Otra caracter’stica es que en este modelo los procesos del usuario no necesitan ser migrados hacia los servidores para obtener los beneficios del procesamiento adecuado. Cuando necesita otro servicio que no tiene instalado. a diferencia del modelo de workstation.. donde un proceso cliente env’a una petici—n de procesamiento al server.. Modelo Workstation-Server. Fig. El usuario tiene en general la libertad de elegir en cual estaci—n trabajar. lo cual incrementa la confiabilidad y rapidez en la soluci—n de fallas en caso de algœn mal funcionamiento de alguno de ellos. Minicomputadora como servidor de bases de datos. Desde el punto de vista de mantenimiento. de manera tal que si uno fallara moment‡neamente. El servidor ejecuta la petici—n y regresa a la estaci—n el resultado de la misma. el servicio de correo electr—nico puede tenerse en diferentes equipos del conjunto. Ejemplo: el ambiente V-System. se tienen las siguientes: 1. Por razones de escalabilidad y confiabilidad. Como observaciones al modelo. 2.Red de comunicaciones . Minicomputadora como servidor de archivos. En este modelo el usuario se da de alta normalmente en su computadora y para ciertas tareas utiliza los recursos locales. 4. fuese posible para todos los dem‡s usuarios continuar trabajando con dicho servicio a travŽs de los equipos redundantes. quienes procesan las solicitudes y regresan al usuario el archivo o programa solicitado. Sistemas Distribuidos 10 . es mejor tener estaciones sin disco que todo el sistema completo. es comœn distribuir un recurso entre varios servidores. donde tiene su cuenta y clave de acceso. En general es m‡s barato usar unas pocas minicomputadoras equipadas con grandes discos de alta velocidad que tener a todas las workstations con un disco duro instalado m‡s lento y m‡s peque–o. 1-3. Su operaci—n se basa en el paradigma cliente-servidor. 3. Minicomputadora como servidor de impresi—n. las peticiones de aplicaciones espec’ficas se encaminan hacia los servidores.

Otra diferencia importante con otros esquemas. que el modelo no soporta la conexi—n de estaciones directamente a los servidores. este equipo asigna temporalmente el nœmero de servers que deber‡n ser dedicados al trabajo de tal petici—n. pero existen instantes en los que la actividad y los programas que ejecutan demandan potencia de trabajo en alto grado. Sistemas Distribuidos 11 . esta metodolog’a provee gran flexibilidad ya que el sistema se puede expandir agregando procesadores que operar‡n como servidores adicionales para soportar una carga extra de trabajo originada por incremento en el nœmero de usuarios o por la implantaci—n de nuevos servicios. Cada procesador en el pool tiene su propia memoria y ejecuta un programa de sistema o de aplicaci—n que le permite participar en el ambiente de c—mputo distribuido. Comparado con el modelo de Workstation-Server. dado que dicho poder computacional esta disponible para todos a diferencia de Workstation-Server. Fig. en Žste se dispone de un conjunto (pool) de servers que son compartidos y asignados conforme a demanda. Se tiene instalado un servidor especial llamado Òde ejecuci—nÓ el cual se dedica a la administraci—n y asignaci—n de recursos conforme a la demanda. donde varios equipos pueden estar desocupados en algœn momento pero su capacidad no se puede asignar a otros. de manera que el usuario no se da de alta en alguna m‡quina en particular. y luego de atenderla regresan para ser liberados y quedar a disposici—n de la siguiente tarea. 1-4. es que aqu’ no existe el concepto de Òcomputadora homeÓ. Terminales Red de comunicaciones Server de ejecuci—n. Cuando se recibe una solicitud de una persona. sino s—lo por medio de la red de interconexi—n. Se puede apreciar en la Fig. Las terminales usadas pueden ser estaciones sin disco o terminales gr‡ficas como X terminals. 1-4. Modelo pool de servers. A diferencia del modelo anterior en el que cada persona tiene su servidor asignado. Pool de procesadores.Modelo de pool de procesadores Este se basa en el hecho de que los usuarios en promedio no requieren capacidad de procesamiento durante un buen rato. Por otra parte. el de Pool de Servers permite una mejor utilizaci—n del poder de c—mputo disponible en el ambiente distribuido. Server de archivos. pero s’ percibe al sistema como un todo.

Ejemplos: Amoeba. esencialmente agregando a la red de estaciones de trabajo un Pool de servidores que pueden ser asignados din‡micamente para trabajos que son muy extensos para m‡quinas individuales o que necesitan varios equipos concurrentemente para una ejecuci—n adecuada. Esta variante tiene la ventaja de garantizar el nivel de respuesta a trabajos interactivos dado que permite la ejecuci—n en la misma computadora de la persona que lo solicita. El modelo se ajusta perfectamente a especificaciones tan sencillas. Plan 9 y el Cambridge Distributed Computing System. este modelo no se considera recomendado para programas de c‡lculo complejo como aplicaciones intensivas de alto rendimiento o aplicaciones basadas en gr‡ficas. su principal desventaja estriba en que el costo de implantaci—n se eleva puesto que requiere mayor nœmero de componentes para su construcci—n. Sistemas Distribuidos 12 . Para ambientes donde hay grupos de usuarios de mayor potencia que realizan tareas masivas con alta necesidad de poder computacional el modelo Pool de Servers es m‡s adecuado. el de Workstation-Server es el m‡s ampliamente utilizado para la construcci—n de sistemas de c—mputo distribuido. Esto se debe principalmente a la lentitud de las redes de conexi—n que se utilizan para la comunicaci—n entre procesos. enviar correos electr—nicos. El modelo h’brido permite combinar las mejores caracter’sticas de Workstation-Server y Pool. Esto se debe a que un usuario promedio solamente ejecuta tareas interactivas simples como editar archivos. etc. Para este tipo de tareas se considera mejor el modelo Workstation-Server. Modelo h’brido De los cuatro modelos descritos anteriormente. Por otra parte.Sin embargo.

Los mœltiples flujos de datos se originan en el subsistema de m—dulos de memoria compartida. 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. En la siguiente Fig. La taxonom’a propuesta por Flynn es como sigue. El esquema de Feng (1972) se basa en la confrontaci—n entre procesamiento serie frente a procesamiento paralelo. UC= unidad de control. De esta manera. El proceso de computaci—n esencial es la ejecuci—n de una secuencia de instrucciones sobre un flujo de datos. UP= unidad de procesamiento. Los flujos de datos circulan entre los procesadores y la memoria bidireccionalmente. pero todas las unidades funcionales est‡n bajo la supervisi—n de una sola unidad de control. un flujo de datos es una secuencia de datos que incluye los datos de entrada y los resultados parciales o totales solicitados o producidos por el flujo de instrucciones. SISD: Single Instruction. La clasificaci—n de HŠndler (1977) se basa en el grado de paralelismo y encauzamiento de los diferentes subsistemas. las computadoras digitales pueden clasificarse en cuatro categor’as con respecto a sus flujos de instrucciones y datos. Se pueden utilizar mœltiples m—dulos de memoria en el subsistema de memoria compartida donde cada flujo de instrucciones es generado por una unidad de control independiente.Taxonom’a de los ambientes de c—mputo. Las instrucciones o los datos se definen con respecto a la m‡quina referenciada. En la taxonom’a propuesta por Flynn. Un flujo de instrucciones es una secuencia de instrucciones ejecutadas por la m‡quina. Sistemas enfocados a la operaci—n con un solo procesador. Las instrucciones se decodifican en la unidad de control. se tiene que las diferentes organizaciones de computadoras se caracterizan por la multiplicidad de hardware provisto para atender a los flujos de instrucciones y de datos. a los sistemas distribuidos en particular.s—lo son necesarios tres tipos de equipos de dicha taxonom’a. Sistemas Distribuidos 13 . Las instrucciones y datos se toman de los m—dulos de memoria. El tŽrmino flujo se emplea para denotar una secuencia de elementos (que pueden ser instrucciones o datos) que ejecuta un solo procesador. La categorizaci—n de Flynn depende de la multiplicidad de procesos simult‡neos que ocurren en los componentes del sistema. que env’a el flujo de instrucciones decodificadas a las unidades procesadoras para su ejecuci—n. pero pueden estar traslapadas en las etapas de ejecuci—n (lo que se conoce como segmentaci—n encauzada). No existe una clasificaci—n general que sea totalmente aceptada para poder ordenar los ambientes de c—mputo existentes y dentro de ellos. Es importante mencionar que un equipo SISD puede tener m‡s de una unidad funcional. Las instrucciones se ejecutan secuencialmente. aunque conceptualmente Ðcomo veremos. FI= flujo de instrucciones. MM= m—dulo de memoria). que representan a la mayor’a de las computadoras disponibles actualmente. Single Data. 1-5 aparece un esquema de este tipo de sistemas (FD= flujo de datos. Por simplicidad no se mostrar‡n los puertos de E/S dentro de los diagramas.

Para estas m‡quinas existen n unidades procesadoras. Todos los elementos de proceso reciben la misma unidad de instrucciones emitida por la unidad de control pero operan sobre diferentes conjuntos de datos procedentes de flujos distintos. dado que Žsta arquitectura se considera poco pr‡ctica. SIMD: Single Instruction. Single Data. Ninguna computadora conocida se ajusta a esta descripci—n. En este caso habr’a varias instrucciones a procesar. MISD: Multiple Instructions. cada una con sus propios datos. 1-5. En estos sistemas existen mœltiples elementos de procesos supervisados por una misma unidad de control. Se tiene entonces que la unidad de control selecciona una instrucci—n y luego instruye a varias unidades de procesamiento para la ejecuten. con un œnico flujo de datos. Estas m‡quinas se pueden dividir tambiŽn en: secci—n de palabra y secci—n de bit. Sistema SISD. Los resultados de un procesador se pasan como entrada del siguiente dentro del cauce de procesamiento. Sistema SIMD. Sistemas Distribuidos 14 . 1-6.FI UC FI UP FD MM Fig. UP1 UC FI FD1 FD2 MM1 MM2 MC UP2 UPn FI FDn MMn Fig. El subsistema de memoria compartida puede contener mœltiples m—dulos. cada una recibe distintas instrucciones que operan sobre el mismo flujo de datos y sus derivados. Multiple Data.

Este se integra con mœltiples computadoras independientes. Multiple Data. La mayor’a de los sistemas MIMD comerciales son dŽbilmente acoplados.. 1-8.. MIMD: Multiple Instructions. entonces tendr’amos la llamada operaci—n SISD mœltiple (MSISD). las que no Sistemas Distribuidos 15 . FI1 FI1 UC1 UP1 FI2 FI2 FD1 FD2 MM1 MM2 MC FI1 FI2 UC2 UP2 FIn UCn FIn UPn FDn MMn FIn Fig.UC1 UC2 FI1 FI2 FD UP1 UP2 MM1 MM2 MC UCn FIn UPn FD MMn FIn . La mayor’a de los sistemas multiprocesadores y de los sistemas con mœltiples computadoras pueden incluirse en esta categor’a. La clasificaci—n de los equipos MIMD se puede ampliar se–alando que las computadoras que tienen memoria compartida muchas veces son llamadas multiprocesadores. Un equipo MIMD intr’nseco implica interacciones entre los n procesadores porque todos los flujos de memoria se derivan del mismo espacio de datos compartido por todos los procesadores. Sistema MIMD. FI2 FI1 Fig. Si los n flujos de datos provinieran de subespacios disjuntos dentro de las memorias compartidas. que no es m‡s que una conjunto de n sistemas monoprocesadores SISD independiente. 1-7. Un sistema MIMD intr’nseco es fuertemente acoplado si el grado de interacciones y conectividad f’sica entre los procesadores es elevado. cada una con su propio contador de programa y datos. Sistema MISD. en caso contrario los consideramos dŽbilmente acoplados.

La taxonom’a de Feng se basa en el grado de paralelismo como norma de clasificaci—n de las arquitecturas. La secci—n de bits es una cadena de bits.1) Si la potencia de la computadora est‡ totalmente utilizada (es decir. por lo tanto P = 62 x 32 = 2048. y si se consideran T ciclos de procesador indicados por i= 1. . es decir: P = nm (1. formada por cada una de las palabras sobre las que se procesa en paralelo. est‡ la tasa de utilizaci—n µ de un sistema de c—mputo durante T ciclos como: Pi Pm ∑ µ= = i =1 P TP T (1. donde se entiende como m‡ximo grado de paralelismo P al nœmero m‡ximo de d’gitos binarios (bits) que pueden ser procesados en una unidad de tiempo por la computadora. tenemos entonces que Pi = P para todo i. La tasa de utilizaci—n depende del programa de aplicaci—n que se ejecute. Otra forma de poder visualizar el grado de paralelismo de un sistema es considerar su longitud de palabra n y la longitud m de secci—n de bits. por lo tanto. backplane o cable) que forma un medio de difusi—n entre ellos. cada uno de 8 etapas. El m‡ximo grado de paralelismo se expresa como el producto de n por m. 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... Cada una de estas categor’as a su vez se puede dividir bas‡ndose en su arquitectura de conexi—n. Si Pi es el nœmero de bits que pueden ser procesados en el i-Žsimo ciclo de procesador (o en el i-Žsimo per’odo de reloj).2) Ejemplo: calcule el grado de paralelismo para una computadora con longitud de palabra de 64 bits y que tiene cuatro cauces aritmŽticos. R: la secci—n de bits mide 8x4 = 32 bits. con lo que µ = 1 con utilizaci—n del cien por ciento. T. ya sea siguiendo el esquema de bus de comunicaciones (red. 2. . Sistemas Distribuidos 16 . el grado medio de paralelismo Pm viene definido por: Pm = ∑ Pi i =1 T T (1.0) En general Pi < P.siguen este esquema y mantienen la memoria privada para cada m‡quina son las multicomputadoras. si el paralelismo est‡ totalmente aprovechado).

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.3) Ejemplo: si en un sistema distribuido se completan 20 tareas cada 10 segundos. Suponiendo que se puede asignar un procesador para descargar cada imagen. Cada descarga es independiente de la otra. M‡s aœn. Un navegador web puede descargar todas las im‡genes una por una o puede tratar de leerlas todas en paralelo. Es posible decrementar el tiempo necesario para completar una tarea dentro de una computadora dividiŽndola en N subtareas independientes. Si un sitio tiene tres im‡genes. 5 y 10 segundos. 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). el par ordenado (n.8. donde se muestra la esta clasificaci—n de acuerdo a como lo presenta Hwang [7]. Esta es la descomposici—n optima de la tarea. se puede tener otro enfoque del grado de paralelismo (D) como sigue: D=R*T (1. Por el contrario. se ejecutan un promedio de 6 tareas en paralelo dentro del sistema. una descomposici—n no-—ptima reducir‡ el incremento en velocidad a un factor menor que N. Si a cada imagen le lleva el mismo tiempo descargarse. y cada tarea se ejecuta en 3 segundos. 1-9.Precisamente. es decir 6 segundos. Establecidas estas definiciones. En otras palabras. entonces la raz—n de incremento ser’a de 18/6 = 3. Ejemplo: una p‡gina en el WWW contiene varias im‡genes. la versi—n serial no paralelizada se demora 18 segundos en concluir. en tanto que a la paralela le lleva 10 segundos. 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. N procesadores pueden ejecutar las diferentes subtareas. el grado de paralelismo es D = 20/10 * 3 = 6. Pipelining y paralelismo. que est‡ determinada por el tiempo m‡s lento para leer una imagen. ÀCu‡l es su grado de paralelismo? ÀQuŽ significa el resultado o c—mo puede interpretarse? R: el rendimiento es de 20/10 tareas/seg. con tiempos de descarga de 3. Sistemas Distribuidos 17 . y el tiempo de respuesta es de 3 segs. La raz—n de incremento es de 18/10 = 1. Rendimiento m‡ximo (o throughput) = el nœmero promedio de tareas que pueden ser terminadas en una unidad de tiempo (nombrado T: en tareas/segundo). As’. m) corresponde a los puntos en el espacio de sistemas de c—mputo para el sistema de coordenadas de la Fig. Entonces.

Ejemplo: se dese— paralelizar un stack de protocolos asignando un procesador a la capa de enlace. se tiene un rendimiento m‡ximo (o throughput) = 1/S. la de transporte 10 ms y la de aplicaci—n 4 ms. la de red 3 ms. M‡s aœn. dado que no puede admitir otro nuevo hasta que termina con el actual. el sistema requiere 40 ms para procesar un paquete. otro a la de transporte y finalmente uno a la de aplicaci—n. En la versi—n con pipeline. en lugar de un paquete cada 40 ms.3 . como en la versi—n serial. en cuyo caso se puede emplear la ecuaci—n (1. Dado que el pipeline entrega un paquete cada S segundos. T2. entonces un pipeline de N procesadores puede dar un rendimiento N veces m‡s grande que un solo procesador. de manera que Tk puede comenzarse luego de que termin— de ejecutarse Tk-1. la nueva ecuaci—n aparece como: D = R /S (1.Si es posible dividir una tarea T en las subtareas T1. TN. los dem‡s est‡n detenidos esperando que sean completadas las etapas de proceso anteriores. Es decir.. pero el pipeline procesa un paquete cada 10 ms. cada paquete tiene un retardo de 40 ms. . En la versi—n no paralela (serial) del stack. uno a la de red. se dice que las tareas son serialmente dependientes. en un momento dado s—lo 3 de los cuatro procesadores est‡n activos. El grado de paralelismo es por lo tanto de 23/10 = 2. el c‡lculo del grado de paralelismo se puede complicar si las etapas del pipeline requieren diferentes tiempos para concluir su procesamiento. De esta forma. Asumiendo que cada capa consume la misma cantidad de tiempo Ðpor decir algo.4) Ejemplo: continuando con el ejemplo anterior. se supondr‡ ahora que la capa de enlace demora 6 ms. Sistemas Distribuidos 18 . 10 mspara procesar un paquete (una suposici—n totalmente falaz). El tiempo de respuesta es de 23 ms. S = el tiempo que necesita la etapa m‡s lenta para operar. El rendimiento es de un trabajo cada 10 ms. si es posible dividir una tarea en N subtareas serialmente dependientes. Sin embargo..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).

El esquema PPBP (n > 1. es el modo de ejecuci—n m‡s r‡pido de los cuatro. Sistemas Distribuidos 19 . Existen cuatro tipos de procesamiento que pueden ser deducidos del diagrama anterior: ♦ ♦ ♦ ♦ Palabra serie y bit serie (PSBS) Palabra paralelo y bit serie (PPBS) Palabra serie y bit paralelo (PSBP) Palabra paralelo y bit paralelo (PPBP) El tipo PSBS recibe el nombre de procesamiento bit-serie dado que procesa s—lo un bit (n = m = 1) cada vez. en el cual se procesa una matriz de n x m bits en cada vez. m = 1) es el tipo m‡s frecuente de las computadoras actuales.288) Staran (1. La clasificaci—n propuesta por Wolfgang HŠndler se basa en identificar el grado de paralelismo y encauzamiento dados por la estructura de hardware de un sistema.1) IBM 370/168 (32. ♦ El circuito a nivel de bit. El PSBP (n > 1.256) Illiac-IV (64. y han sido llamado de procesamiento por secci—n de palabra.16) 16 M’nima (1.1) 1 1 16 32 64 PDP-11 (16. m > 1) es conocido como procesamiento totalmente paralelo. No profundizaremos en este modelo dado que se extiende fuera de los alcances de estas notas. lo cual resulta en una ejecuci—n bastante lenta. dado que procesa una palabra por vez. m > 1) ha sido llamado procesamiento por secci—n de bits debido a que procesa un conjunto de bits cada vez. Taxonom’a de Feng.1) Cray-1 (64.1) Fig.16384 288 256 MPP (1.16384) PEPE (32. mmp (16. pero si haremos menci—n de que se estudia el procesamiento paralelo encauzado en tres diferentes subsistemas: ♦ Unidad de control del procesador.64) 64 C. El tipo PPBS (n = 1. ♦ La unidad AritmŽtico-L—gica. 1-9.

b) Se est‡ usando el modelo de Pool de procesadores y el componente que falla es una terminal de usuario.Sistemas Distribuidos Ejercicio # 1-2 1. que tiene P procesadores en el pool. 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 puede ser la m‡xima ganancia en velocidad que puede ser lograda en este caso. suponga que un usuario comienza un trabajo que consiste en la compilaci—n de un programa compuesto de F archivos fuente (F < P). 3. Considere el caso de un sistema de c—mputo distribuido basado en el modelo de Pool de Procesadores. el proceso 2 necesita 15 ms. Suponga que un componente de un sistema distribuido repentinamente falla y analice de que manera afecta a los usuarios del sistema cuando: a) Se est‡ usando el modelo de Pool de procesadores y el componente que falla es un procesador de dicho pool. ÀCu‡l modelo supone que ser‡ el m‡s usado en el futuro? Justifique su respuesta. Asuma que en ese momento el usuario es la œnica persona utilizando el sistema. El proceso 1 requiere 3 ms para terminarse. 6. ÀCu‡l ser’a la descomposici—n —ptima de la tarea? 5. d) Est‡ utiliz‡ndose el modelo Workstation-Server y el componente que fall— es una de las workstations de usuarios. 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. c) Se usa el modelo Workstation-Server y fall— uno de los servers. el proceso 3 requiere 8 ms y finalmente el proceso 4 usa 10 ms. cada uno de 16 etapas. Para este caso. 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. Un servidor de red deber ejecutar cuatro procesos hijo a partir de un proceso padre general. 2. comparado con su ejecuci—n en un sistema de un solo procesador (suponga que todos los procesadores tienen igual capacidad)? ÀQuŽ factores podr’an causar que la ganancia en velocidad fuera menor que el m‡ximo? 4. Calcule el grado de paralelismo para una computadora con longitud de palabra de 32 bits y que tiene cuatro cauces aritmŽticos. Sistemas Distribuidos 20 .

Taxonom’a de sistemas paralelos y distribuidos. 1-10. Para un procesador en particular sus recursos son locales. por lo general tienden a utilizarse como sistemas paralelos (es decir. Una memoria compartida bajo este esquema se dice que es coherente.) Bus Switch Bus Switch Fig. mientras que los de acoplamiento dŽbil lo hacen a la velocidad de la red de comunicaciones utilizada. Adem‡s de esta distinci—n. Comp. El conjunto de un procesador y sus recursos generalmente recibe el nombre de nodo. Se puede resumir lo expuesto diciendo que un sistema de computaci—n distribuida es una colecci—n de procesadores interconectados por una red de transferencia de informaci—n en la cual cada procesador posee su propio espacio de memoria y otros perifŽricos. dado que lo que un procesador escribe en alguna localidad queda inmediatamente disponible para su lectura por otro de los componentes del bus. 1-10. Para usar la propiedad de localidad en cuanto al dise–o. La clasificaci—n taxon—mica de tales sistemas la aparece en la Fig. Los sistemas con acoplamiento fuerte. 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. 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. para ejecutar una aplicaci—n en particular) donde hay una sola memoria primaria general (espacio de direccionamiento) que es compartida por todos los procesadores. Multiprocesadores basados en bus. Enseguida se explicar‡n las caracter’sticas de las variantes que presenta esta clasificaci—n.) Multicomputadoras (mem. de manera que haya una alta probabilidad de localizar un dato previamente le’do dentro del cachŽ en lugar de accesar el canal compartido. En tanto. se incrementa la velocidad de acceso en un bus altamente competido a–adiendo memoria cachŽ en los CPU«s. La comunicaci—n entre dos procesadores se lleva a cabo a travŽs de paso de mensajes sobre dicha red. en tanto que otros procesadores y sus recursos son remotos. MIMD Fuertemente acopladas DŽbilmente acopladas Multiprocesadores (mem. En este esquema se tienen varios CPU«s conectados a un bus comœn (t’picamente un backplane) junto con un m—dulo de memoria que es compartido por todos los procesadores en paralelo. los sistemas dŽbilmente acoplados son capaces de intercambiar datos a la velocidad de su memoria. Con un Sistemas Distribuidos 21 .Como ya se dijo. site o m‡quina de un sistema distribuido. Priv.

Una soluci—n propuesta para resolver la problem‡tica es implementar un cachŽ de escritura. as’ como la de comparaci—n final del contador consumen cada una un ciclo de m‡quina. 1-11. que utilizan paquetes de comunicaci—n entre s’ con tama–o medio de 500 bytes.52 nseg si para leer y escribir en memora Sistemas Distribuidos 22 . dado que un procesador puede leer informaci—n de una localidad de memoria en particular pero a travŽs de su cachŽ. Ejemplo: considerando un sistema multiprocesador construido en base a unidades Pentium de 133 Mhz. Todos los cachŽs necesitan realizar un monitoreo constante del bus. y que activar la interrupci—n para que sea procesado un nuevo paquete consume 10 µs. cada ciclo se ejecuta en 7.tama–o adecuado de cachŽ. Multiprocesadores en bus. el uso de cachŽ trae como consecuencia que la memoria se vuelva incoherente. Si embargo. y que las tres restantes de actualizaci—n de contadores requieren en conjunto s—lo un ciclo. 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? R: suponer que el ciclo de copiado de informaci—n ocurre como sigue registro ß memoria [read_ptr] memoria [write_ptr] ß registro read_ptr ß read_ptr + 4 write_ptr ß write_ptr + 4 counter ß counter Ð 1 if (counter not 0) salto al inicio del bucle Suponiendo que las operaciones de escritura y lectura en memoria. De esta forma se tiene que a 133 Mhz. En la siguiente Fig. se puede incrementar la tasa de reencuentro hacia niveles significativos. Este procedimiento es conocido como cachŽ monitor. mientras que en la direcci—n real la informaci—n ha sido cambiada por otro procesador. y que se requieren 50 ns para leer o escribir en la memoria que maneja palabras de 4 bytes. CPU cachŽ CPU cachŽ CPU cachŽ CPU cachŽ CPU cachŽ Fig. de forma tal que cuando cambie el contenido de una direcci—n de memoria que contienen puedan eliminarlo o actualizar el nuevo valor. sobre el cual se escribe toda palabra que se env’e a memoria. Asumamos que el c—digo de reenv’o de paquetes entre los diferentes procesadores consume 200 ciclos de m‡quina independientemente del tama–o del paquete. 1-11 se muestra un diagrama de tal arquitectura.

♦ Se usa una interrupci—n por cada paquete.764 µs por cada paquete de 500 bytes. Se tratar‡n mayores detalles de las redes de interconexi—n en el siguiente cap’tulo. sin tener la sobrecarga por consulta de tablas de enrutamiento.15 µs por cada paquete de 500 bytes. Lo cual representa m‡s cerca 329. Sistemas Distribuidos 23 . 20/4 (130. a) Un paquete de 500 bytes son 125 palabras de 4 bytes cada una (el tama–o que acepta la memoria). Multicomputadoras basadas en bus.52 ns) = 1. = 10 µs ---------------27.1 Mbps de velocidad de transferencia. b) Si s—lo se copia el encabezado de 20 bytes: Para palabras de 4 bytes.08 ns) = 0.52) + 100 = 130. Lo cual representa m‡s cerca 144.52 ns) = 1. cuando en realidad se reciben varios paquetes antes de procesar la interrupci—n. En este sistema no se tiene la compartici—n de un solo espacio de memoria. ♦ Se supone hay un CPU totalmente dedicado a la comunicaci—n. Si se desea copiar todas las palabras ser‡n necesarios: 125 (130.son necesarios adem‡s 100 nseg.08 nseg.26 µs el c—digo de reenv’o toma 200 (7. = 10 µs ---------------12. El sistema de comunicaci—n sirve para interconectar una m‡quina con otra. Este ejemplo es un caso totalmente hipotŽtico puesto que ignora ciertos factores reales que se presentan en la pr‡ctica como: ♦ El CPU es un cuello de botella que debe ejecutar otras actividades simult‡neamente.65 µs el c—digo de reenv’o toma 200 (7.22 Mbps de velocidad de transferencia. sino que cada una de las computadoras conectadas posee su propia memoria local. con lo cal se tiene que cada vuelta al c—digo mostrado se demora: 4 (7.504 µs Tiempo de procesamiento de la interrup.08 ns) = 16.504 µs Tiempo de procesamiento de la interrup. 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.

Un ejemplo t’pico de multicomputadoras en bus se encuentra en las modernas redes locales (LAN). hacen falta n2 conmutadores en los puntos de cruce. M P P P P P P M M M M M Fig. puesto que con n CPU«s y n memorias. 1-13. pero por el momento no haremos mayores profundizaciones al respecto. El hardware cierra peque–os conmutadores que permiten la comunicaci—n de un procesador con un m—dulo en un momento dado. Si n es grande la posibilidad de construcci—n del equipo se complica. De cada CPU y m—dulo de memoria sale una conexi—n que puede intersectarse con todas las otras. Memoria local Memoria local Memoria local Memoria local Memoria local CPU CPU CPU CPU CPU Fig. Multiprocesadores basados en switch. como el uso de memoria cachŽ en los puntos de cruce o el uso de planificaci—n. aunque si dos de ellos desean usar la misma memoria en forma simult‡nea uno de ellos deber‡ esperar. VŽase en la Fig. Cross-bar 6 x 6. en las cuales se agregan tarjetas de red a varios CPU«s que luego se comunican por medio de la infraestructura de cableado. La principal problem‡tica del sistema es su tama–o. 1-13. Una ventaja importante es que muchos CPU«s pueden accesar la memoria al mismo tiempo. Una alternativa es dividir la memoria en m—dulos y luego usar un conmutador matricial como el ilustrado en la Fig. dicho switch se libera y quedan las conexiones disponibles para ser usadas en otro nivel de la matriz. Las velocidades t’picas van de 10 a 155 Mbps. Una vez terminada la operaci—n de lectura o escritura. Multicomputadoras en bus. 1-13 un ejemplo de Crossbar de 6 x 6. 1-12. Cuando se llega a un nœmero significativo de procesadores (> 64) se necesita de un mecanismo m‡s eficiente que el bus para lograr conectar cada CPU con la memoria. Existen casos de sistemas multicomputadoras significativos basados en el esquema. Se han hecho modificaciones al cross-bar para minimizar este problema de bloqueo. Sistemas Distribuidos 24 .

Red Omega. para un total de (nlog2n)/2 switches.Originado por los problemas de uso de switches como el Crossbar mencionado. 1-14. acceso no uniforme a la memoria). Al igual que en el caso de Crossbar. Con n CPU«s y n memorias necesita log2n etapas de conmutaci—n cada una de las cuales tendr‡ n/2 switches. por ejemplo. El equipo hecho de 5210 switches de 500 picoseg cada uno ser’a extremadamente caro. cada uno tiene dos entradas y dos salidas). Este dise–o da lugar a las m‡quinas NUMA (Non-Uniform Memory Access. A reserva de profundizar m‡s en el siguiente cap’tulo. Una petici—n de memoria. modificando tambiŽn la metodolog’a de conmutaci—n seguida. Ejemplo: calcular el nœmero de etapas de conmutaci—n y la cantidad total de switches que ser‡n necesarios para construir una red omega para 1024 CPU«s. en el que se tienen dos niveles de conmutaci—n integrados por switches individuales 2 x 2 (es decir. o 500 picoseg. R: Etapas de conmutaci—n: Switches por etapa: Switches necesarios: log21024 = 10 1024/2 = 512 5. se han desarrollado otras redes de conmutaci—n que requieren menos switches para garantizar una operaci—n confiable del sistema. se puede garantizar que un procesador en particular pueda accesar el m—dulo de memoria que necesita. cada instrucci—n deber’a ejecutarse en 10 nseg. 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.5 nseg. Sistemas Distribuidos 25 . se analizar‡ ahora un caso del sistema de conmutaci—n conocido como Red Omega. por lo que cada conmutador deber’a operar a la velocidad de 0. aunque puede seguir accesando la memoria de los otros.120 M M M Si se construyera el equipo con CPU«s de 100 MIPS. A travŽs del dise–o del momento de la conmutaci—n. M P P P P Fig. debe pasar a travŽs de 20 etapas de conmutaci—n (ida y vuelta entre toda la red).

Fig. Se interconectan los vŽrtices correspondientes de los dos cubos. La topolog’a de hipercubo consiste realmente en un cubo n-dimensional. Hipercubo de dimensi—n 4. Fig. 1-15. Con esto se logra otro punto a favor de los sistemas distribuidos. la Fig.Tanenbaum [1] se–ala el mayor problema de las m‡quinas NUMA. fuertemente acoplados y con memoria compartida es dif’cil y cara. Sistemas Distribuidos 26 . entre las m‡s representativas est‡n la matriz y el hipercubo. 1-15 se aplican ante todo para problemas de graficaci—n avanzada. Multicomputadora en matriz. Estos sistemas se implementan con base en una s—lida red de interconexi—n a la cual se conectan los CPU«s. con un procesador en cada vŽrtice. 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. las que aœn con mejor tiempo de acceso presentan problemas para la carga de datos y programas. Este esquema de conexi—n puede entenderse como dos cubos ordinarios. que son principalmente representados por los equipos que discutiremos en la siguiente clasificaci—n. 1-16 muestra un hipercubo de dimensi—n 4. Las matrices como la presentada en la Figura. Cada equipo tiene acceso directo y exclusivo a su propia memoria. Multicomputadoras basadas en switch. 1-16. Existen varias estrategias para la conexi—n topol—gica. el autor concluye que la construcci—n de grandes sistemas multiprocesadores. procesamiento de im‡genes y visi—n rob—tica.

Fig. se puede a–adir a la figura otro conjunto de dos cubos conectados entre s’ y conectamos las aristas correspondientes en las dos mitades. Dado que s—lo se conectan los CPU«s m‡s cercanos.Para extender el cubo a 5 dimensiones. Como puede apreciarse. Hipercubo de dimensi—n 5. Para el caso de un hipercubo n-dimensional. Sistemas Distribuidos 27 . La trayectoria de mayor longitud igualmente crece en forma logar’tmica con el tama–o. y as’ en lo sucesivo. cada CPU tiene n conexiones con otros CPU«s. muchos mensajes deben realizar varios saltos antes de llegar a su destino. la complejidad del cableado aumenta en proporci—n logar’tmica con el tama–o. 1-17. a diferencia de la matriz donde Žsta crece conforme la ra’z cuadrada del nœmero de CPU«s.

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). de Richard A. enero 1998). ÀCu‡l es el grado de paralelismo y quŽ significa esto? Sistemas Distribuidos 28 . Calcular el nœmero de etapas de conmutaci—n y la cantidad total de switches que ser‡n necesarios para construir una red omega que soportar‡ 256 CPU«s.Sistemas Distribuidos Ejercicio # 1-3 1.3 segundos. 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. 45. 3. 5. y cada tarea puede terminarse en 2. las diferencias funcionales que exhiben y el tipo de aplicaciones en que son utilizados. Lea con su equipo el art’culo ÒParallel Processing using PVMÓ. switches. Discuta con su equipo las arquitecturas (hipercubos. 2. En un sistema de reservado de boletos para aerol’nea se completan 30 tareas en 12 segundos. Warren y Goda (Linux Journal. 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. Sevenich y luego ÒLokiÓ de Hill. buses) de los sistemas presentados. Reelabore el caso de la pr‡ctica del multiprocesador Pentium basado en bus que se trat— anteriormente. Presenten al resto de la clase los t—picos discutidos. Desarrollen ejemplos de casos de aplicaciones de su trabajo real donde fuera factible la utilizaci—n de dichos sistemas. No.

el sistema operativo debe dise–arse para proveer de todas las ventajas del ambiente de trabajo a los usuarios. En cuanto al software para estos ambientes. Se tienen diferentes mecanismos de sincron’a y colaboraci—n entre procesos. aunque luego se regresar‡ sobre ellos en adelante. Ejecuci—n de nœcleos (kernels) idŽnticos en todas las computadoras. En el dise–o de un ambiente centralizado se tiene la suposici—n de que el acceso a los datos del ambiente donde se opera es completo y exacto. Entre las caracter’sticas que deben satisfacerse para el dise–o de un sistema distribuido tenemos: a) b) c) d) e) Proveer mecanismo de comunicaci—n global entre procesos. Dise–ar un sistema operativo distribuido es m‡s complicado que dise–ar un ambiente operativo de red por varias razones. Por el contrario. Por ejemplo. la clasificaci—n es mucho m‡s dif’cil. Esquema global de protecci—n. as’ como se–ales de reloj separadas que hacen imposible tener una imagen actualizada del sistema en un instante espec’fico. A pesar de estas dificultades. Administraci—n de procesos œnica en todas partes. 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Ó). 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. Enseguida se discutir‡n los aspectos claves que hay que cuidar para el dise–o de un ambiente operativo. Sistema de archivos consistente y global. pero por lo general se asume solamente que existe software dŽbilmente acoplado y fuertemente acoplado. ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ Transparencia Confiabilidad Flexibilidad Desempe–o Escalabilidad Heterogeneidad Seguridad Emulaci—n de sistemas operativos existentes Sistemas Distribuidos 29 .T—picos para el dise–o de sistemas operativos distribuidos. un ambiente operativo distribuido debe ser dise–ado con la base de que la informaci—n completa del ambiente nunca estar‡ disponible. 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.

casi todos los sistemas operativos distribuidos crean rŽplicas de los procesos tanto de los archivos como de los recursos en diferentes nodos del sistema. Transparencia de localizaci—n.. los cuales son la transparencia de nombres y movilidad del usuario. Transparencia a fallas. Otra forma de expresar esto es diciendo que la interface de usuario Ðla cual toma forma a travŽs de llamadas al sistemano debe distinguir entre recursos locales y remotos.A fin de lograr mejor desempe–o y confiabilidad.. Lo ideal es que esto se logra con la menor sobrecarga (overhead) posible de manera tal que la cooperaci—n entre los diferentes subsistemas no altere el desempe–o conjunto esperado. M‡s aœn. La movilidad de usuario significa que no importa el punto desde el cual se estŽ solicitando el acceso a un recurso en particular. Hay tres t—picos importantes en este rubro: Sistemas Distribuidos 30 . el control de la replicaci—n y de los lugares donde se llevar‡ a cabo deben ser manejados en forma totalmente autom‡tica y transparente. es muy dif’cil llevarlo a la pr‡ctica: un sistema distribuido totalmente tolerante a fallas ser’a lento en extremo y demasiado lento dada la enorme cantidad de redundancia requerida para soportar todos los tipos de fallas que pudieran presentarse. de manera que se logre que la persona tenga una vista l—gica œnica del sistema.. donde todas las acciones se duplican en los componentes. Existen diferentes enfoques para la transparencia que se presentan enseguida. Un sistema totalmente tolerante a fallas aunque te—ricamente factible.Transparencia El ambiente operativo distribuido debe volver ÒinvisiblesÓ (transparentes) a todas las m‡quinas que lo integran y con las cuales trabajan las personas. y deber‡ ser responsabilidad del sistema operativo distribuido localizar los recursos y hacer la asignaci—n de los mismos. la persona siempre tendr‡ la posibilidad de accesarlo (si las restricciones y condiciones de seguridad lo permiten) Transparencia de replicaci—n. Un ejemplo de ello son los sistemas que respaldan recursos como servidores o discos duros.aœn en el caso de fallas en alguno de sus componentes.El sistema distribuido deber‡ continuar operando Ðquiz‡ en forma degradada. por lo que respecta al usuario. los recursos deben conservar un mecanismo y nomenclatura din‡mico que se ajusten a los cambios de localizaci—n de un nodo a otro dentro del sistema.. utilizar un recurso debe ser un mecanismo igual sin importar la localizaci—n f’sica de tal ente. El nombramiento (nomenclatura) de Žstas rŽplicas.Por esto se entiende que el usuario no debe distinguir sin un recurso es remoto o local. Transparencia de acceso.Significa que los recursos puedan ser cambiados de localizaci—n sin alterar su nombre. Transparencia de migraci—n.Se entiende b‡sicamente en dos aspectos. y si el elemento principal falla. los restantes toman su lugar y siguen con la operaci—n sin que los usuarios aprecien la falla.. La transparencia de nombre se refiere a que los recursos deben tener nombres œnicos dentro del sistema y no estar vinculados con la localizaci—n f’sica de los mismos. El requisito es que cada persona trabajando con este conjunto de m‡quinas conectadas por una red de comunicaciones ÒsientanÓ que est‡n trabajando con un œnico procesador.

. Tipo Transparencia de acceso Transparencia localizaci—n de Significado Poder usar los recursos del sistema independientemente de su localizaci—n. c) La comunicaci—n interprocesos debe poder enviar un mensaje a un proceso que est‡ siendo reubicado. El balance y asignaci—n de cargas de trabajo deben ser autom‡ticamente reconfigurados sin intervenci—n del usuario. y pueden usarse desde cualquier sitio que estŽ el usuario.Esta propiedad permite expandir en escala al sistema sin interrumpir los trabajos de usuarios. autom‡ticamente. Las fallas en componentes deben ser resueltas con componentes de respaldo.Significa que el sistema debe proveer una facilidad de operaci—n tal para compartir sus recursos que cada usuario no perciba la presencia de otros que tambiŽn est‡n haciendo uso de los mismos.La capacidad de procesamiento del sistema debe ser uniformemente distribuida entre los procesos existentes en un momento dado. b) La migraci—n de un objeto a otro no requerir‡ cambio en su nombre.. dado que se tienen mœltiples componentes que funcionan como respaldo. Transparencia en un ambiente distribuido. Transparencia de replicaci—n Transparencia a fallas Transparencia migraci—n Transparencia concurrencia Transparencia desempe–o Transparencia escalamiento de de de de Fig. Los recursos pueden moverse de lugar y mantener nomenclatura consistente.. Confiabilidad En general. Sin embargo. Cada persona no nota la existencia de los dem‡s La asignaci—n y balance de carga de trabajo se llevan a cabo sin intervenci—n del usuario El sistema debe poder expandirse sin interrumpir el trabajo de los usuarios. la existencia de tales componentes por s’ misma no puede aumentar la Sistemas Distribuidos 31 . Transparencia de desempe–o. se espera que un ambiente distribuido tenga mayor confiabilidad que uno centralizado. Transparencia de concurrencia. 1-18. Los recursos tienen nombres consistentes. sin tener que obligar al originador a reenviar de nuevo su paquete de datos.a) Las decisiones de migraci—n deben ser hechas autom‡ticamente. Las rŽplicas de procesos y recursos se crean y administran en forma autom‡tica. Transparencia de escalamiento.

Por otra parte. el ambiente continœa operando pero arroja resultados err—neos. mientras mayor es el nœmero de recursos duplicados. la tolerancia a fallas se minimiza incrementando por ende la confiabilidad. A continuaci—n describiremos los mŽtodos m‡s comœnmente usados para el tratamiento de fallas.). software especial.Aqu’ se usan mŽtodos basados en hardware y software que pueden determinar la ocurrencia de una falla y luego corregir el sistema hasta un estado estable que permita continuar la operaci—n.confiabilidad del sistema. Algunas tŽcnicas ampliamente Sistemas Distribuidos 32 . En contraste. En la segunda (fallas parciales). 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. puesto que si se tienen dos equipos o programas atendiendo a un servicio en forma simult‡nea. para operar las copias del recurso y mantenerlas sincronizadas (coherentes) para cuando sea necesario usar una de ellas. ser‡n necesarias un m’nimo de 2k+1 rŽplicas. Ciertas pr‡cticas de dise–o intentan evadir las fallas mediante el uso de componentes de alta confiabilidad (como equipos certificados. etc. Para la tolerancia a fallas se siguen las tŽcnicas de redundancia y control distribuido. Detecci—n y recuperaci—n de fallas.Es la posibilidad de un sistema para continuar operando aœn en presencia de problemas en sus componentes. Existen dos tipos generales de fallas que pueden presentarse: en la primera. Esto debido al sistema de votaci—n que puede usarse para asumir como verdaderos los datos de k+1 rŽplicas cuando k rŽplicas se comportan anormalmente. Por tanto. Tolerancia a fallas. necesitamos k+1 rŽplicas. Esta parece ser a priori una buena idea. si el sistema debe ser construido para soportar k fallas parciales. la rŽplica restante puede ser utilizada para mantener el sistema vivo. pero a–adiendo sobrecarga (overhead) en el sistema. si el sistema debe ser dise–ado para tolerar k fallas de interrupci—n total. pero la intenci—n fundamental es que definitivamente no se interrumpa salvo da–os extensos. El desempe–o del sistema pudiera verse degradado si ciertos elementos cr’ticos se pierden. Las tŽcnicas de redundancia imponen una sobrecarga inherente al sistema.. De esta forma. La redundancia significa evitar los puntos œnicos de falla duplicando hardware o software cr’ticos. En general.. si k rŽplicas se pierden por fallas.. se puede especificar que un sistema es k-tolerante a fallas si Žste puede continuar en operaci—n aœn ante el evento de falla en k componentes. el sistema se detiene completamente luego de presentarse el estado de error.Este criterio se aplica para los aspectos de dise–o de componentes del sistema de forma tal que la ocurrencia de fallas sea minimizada. El control distribuido aplica algoritmos de control que pueden ir asignando recursos sobre equipos independientes para aumentar las alternativas en caso de falla de un proveedor de servicio. Eliminaci—n de fallas. La cuesti—n que se plantea en la vida pr‡ctica es la siguiente: Àcu‡nta redundancia es necesaria para cierto problema de incremento en la confiabilidad? Para resolver el planteamiento. ante la falla de uno de ellos el segundo continœa atendiendo el servicio espec’fico.

Esto es. El server sin estado basa su operaci—n en el enfoque cliente-servidor. que el dise–o original deba ser cambiado al aparecer nuevos Sistemas Distribuidos 33 . La facilidad de modificaci—n intenta resolver los problemas de reemplazo o modificaci—n de componentes debido a errores en el dise–o o bien. 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. y hacer el cierre necesario de la conexi—n. En un sistema de comunicaci—n de mensajes. sin que los otros procesos puedan modificar u observar los estados de dichos c‡lculos. La transmisi—n de mensajes basados en reconocimiento y tiempos fuera se basa en que un nodo puede interrumpir la comunicaci—n entre dos procesos en caso de falla del nodo mismo o del enlace de comunicaci—n. el sistema restaura posteriormente los objetos de datos involucrados hacia sus estados originales. servers sin estado y transmisi—n de mensajes basados en reconocimiento y tiempos fuera. Fig. as’ como establecer los timers necesarios para no seguir esperando retransmisi—n de los paquetes faltantes en caso de una falla como las descritas. Confiabilidad. Una transacci—n se define como el conjunto de operaciones que se ejecutan en forma indivisible en presencia de fallas y otros procesos en ejecuci—n. perdidos o hasta duplicados. Cuando se usa el paradigma de server sin estado. Por el contrario. los equipos deben estar en posibilidad de detectar paquetes fuera de secuencia. Aunque realmente la recuperaci—n de fallas se puede dar tanto en server con estado como sin Žl.utilizadas en sistemas operativos distribuidos pueden ser el uso de transacciones at—micas. 1-19. Un servidor con estado guarda la informaci—n del estado del cliente a lo largo de sus transacciones y afecta la ejecuci—n de la siguiente petici—n de servicio. un servidor sin estado no guarda informaci—n de sus clientes y puede recobrarse m‡s r‡pido en caso de alguna falla. Tipo Eliminaci—n de fallas Significado Uso de componentes individuales de alta confiabilidad. es m‡s simple que el sistema se recobre en el segundo esquema y deber‡ preferirse en la mayor’a de los casos. Flexibilidad Esta caracter’stica se refleja principalmente en la facilidad de modificaci—n y en la de expansi—n de las caracter’sticas del ambiente distribuido. tanto el cliente como el servidor deben tener implementados mecanismos para detectar cuando uno u otro pierden su conexi—n en el sistema de forma tal que pueden borrar la informaci—n de estado y recobrarse de la falla. Si un proceso se detiene en forma inesperada debido a falla en hardware o software. o todas las operaciones se llevan a cabo de forma exitosa o ninguna de sus operaciones individuales permanece.

Nodo 1 Aplicaciones de usuario Kernel monol’tico (inc. Entre las tareas esenciales del microkernel est‡n la comunicaci—n entre procesos. Esto da como resultado una estructura extensa y compleja. En el modelo de microkernel la intenci—n es conservar el kernel tan peque–o como sea posible. El kernel es la secci—n controladora central que provee las facilidades b‡sicas del sistema.m’nima) Fig. muchos servs. el acceso al sistema de archivos y el manejo mismo de los procesos son provistos por el kernel. del ambiente op. Tipo Significado Flexibilidad d e Cambios o alteraci—n en los componentes. Microkernel (func. administraci—n de dispositivos en bajo nivel. y de hecho constituye la œnica parte que del ambiente operativo que un usuario no puede reemplazar o modificar. del ambiente op.) Nodo n Aplicaciones de usuario Kernel monol’tico (inc. la comunicaci—n entre procesos. El factor m‡s importante para el dise–o del sistema operativo distribuido es el kernel mismo. 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’. opera en una direcci—n que es inaccesible a los procesos de usuarios. Fig.m’nima) Nodo 2 Aplicaciones de usuario M—dulos de servicios. muchos servs. Kernel monol’tico y microkernel. Todos los dem‡s servicios del ambiente operativo implementan como procesos a nivel del usuario. muchos de los servicios del sistema operativo como el manejo de la memoria.) Nodo 1 Aplicaciones de usuario M—dulos de servicios. 1-21. 1-20. Un diagrama simplificado de ambos esquemas se presenta en la siguiente Fig. Microkernel (func. Microkernel (func. En el modelo monol’tico. tareas de planificaci—n y control de la memoria. la planificaci—n. Flexibilidad. Sistemas Distribuidos 34 .) Nodo 2 Aplicaciones de usuario Kernel monol’tico (inc. Los dos modelos para el dise–o de kernels que se han seguido son el monol’tico y el microkernel.requisitos por parte de las personas o cambios en el ambiente del sistema. conformando un nœcleo que provea s—lo las facilidades m’nimas para la instauraci—n de nuevos servicios. del ambiente op. 1-21.m’nima) Nodo n Aplicaciones de usuario M—dulos de servicios. modificaci—n Flexibilidad de expansi—n A–adir nueva funcionalidad. muchos servs.

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. para lo cual se requiere que los componentes sean construidos de forma espec’fica.5) (1. como sucede en los sistemas monol’ticos. su modularidad por naturaleza y la facilidad de modificar el dise–o o a–adir nuevos servicios. y O à sobrecarga por ejecuci—n en unidades de tiempo.6) Asumiendo ahora que se est‡ formando un lote con N tareas que requieren un tiempo A para llegar al sistema. Si las tareas en el lote se atender‡n en base a la rutina FIFO. 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. y que la sobrecarga para las N tareas es P. Suponiendo que el sistema procesa una tarea inmediatamente en cuanto llega. si en ese instante el sistema est‡ desocupado se tendr‡: Caso de por tiempo de respuesta para la tarea = S + O Peor caso de m‡ximo rendimiento = 1 S +O (1.. El uso de piggybacking (asentimientos de mensajes anteriores dentro del siguiente mensaje de una serie) tambiŽn apoya el incremento del desempe–o.7) Sistemas Distribuidos 35 . ♦ El tiempo necesario para acumular un lote no es extenso. Sus principios fundamentales son: Usar batching donde sea posible.El uso de proceso en batch siempre mejora el rendimiento en el ambiente distribuido. es mejor transmitir grandes segmentos de datos a travŽs de la red que enviar p‡ginas individuales. 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. Usar batching tiene las siguientes ventajas importantes con respecto al tiempo de ejecuci—n de procesos: ♦ La sobrecarga de tareas se incrementa en factor menos que lineal con el nœmero de tareas que se van agrupando. Para presentar con mayor detalle estas ideas se definen las variables S à unidades de tiempo para ejecutar una tarea. Por el otro lado. Por ejemplo. de manera tal que P < N*O. se tendr‡: Caso de por tiempo de respuesta para la tarea = A + (N*S) + P (1.El modelo de microkernel tiene las ventajas de: tama–o reducido (lo cual incrementa la flexibilidad y capacidad de configuraci—n).

Si se establece que el tiempo de procesamiento por paquete es de S = 2 ms. Suponiendo que la tarjeta interrumpe al CPU 10 ms luego de la llegada de un paquete.8) La ecuaci—n (1. El tiempo transcurrido en asignar la interrupci—n puede significar una sobrecarga significativa en el procesamiento del paquete.9) Con lo que el incremento en m‡ximo en rendimiento cuando se usa batching es: S+O A + P S+  N  (1. Sistemas Distribuidos 36 . Sin lotificaci—n el mejor rendimiento alcanzable es de 1 paquete cada 7 ms = 0. y que la sobrecarga de asignaci—n de interrupciones es O = 5 ms.10) Esta relaci—n es mayor que 1 cuando A < ( N*O Ð P). Durante el tiempo A el sistema es libre de ejecutar otras tareas. mejorando el rendimiento en 10 paquetes cada (10 + 2 *10 +5) = 35 ms = 0. haya o no otro paquete en el lote. de forma tal que si fuese medido el rendimiento solamente durante el tiempo que el equipo se dedica a dicha tarea se obtendr’a Peor caso de m‡ximo rendimiento = 1 S+P (1. Una estrategia comœn en tanto se agrupan interrupciones es encender una interrupci—n con un retardo fijo luego de recibir un paquete. esto es.285 paquetes/ms. se esperar’a entonces tener λ A = 10 paquetes en un lote. 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 consumido en acumular N paquetes es menor que el tiempo ganado en la sobrecarga decrementada. Esto limita el peor tiempo de respuesta. mientras incrementa el rendimiento si llegan varios paquetes uno tras otro.143 paquetes/seg . Sin embargo si la tasa promedio de llegada de paquetes es λ = 1paq / seg . y con ella ser’a de 10 + 2 + 7 = 17 ms.8) puede escribirse finalmente como Peor caso de m‡ximo rendimiento = 1 A + P S+  N  (1.Peor caso de m‡ximo rendimiento = N (N * S) + A + P (1. lo cual puede motivar a usar tŽcnicas de "batching".11) N el cual es siempre mayor que el rendimiento sin batching. Entonces el peor tiempo de respuesta sin lotificaci—n es de 5 + 2 = 7 ms.

Minimizar la copia de datos. los bloques de E/S. Ejemplo: una sesi—n de terminal remota (TELNET) env’a un paquete por cada car‡cter tecleado. aunque en la realidad no siempre puede lograrse tal fin. cu‡les son los retardos promedio y mejor que se pueden lograr a nivel de aplicaci—n? c) ÀQuŽ le dice todo esto acerca de usar batching para TELNET? 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. Minimizando el tr‡fico inter-nodos de procesos que deban operar de forma colaborativa (quiz‡ acerc‡ndolos f’sicamente sobre la red) o reuniŽndolos en un solo nodo se puede minimizar dicho factor. c) Si las suposiciones hechas son correctas..El uso de cachŽ vuelve a los datos m‡s disponibles. de manera que ser’a deseable minimizar hasta lo posible dicha operaci—n. este resultado se mejora en 10 paquetes cada 25 ms = 0. no conviene hacer un TELNET con lotes. mantenerla libre de tr‡fico se refleja en el rendimiento integral del sistema. T—picos de dise–o: Usar cachŽ donde sea posible.Ignorando el tiempo de espera de los paquetes. el mejor tiempo de respuesta es de 20 caracteres/5 caracteres/seg = 4 segundos. Minimizar el tr‡fico en la red. lo cual parece ser ineficiente.4 paquetes/ms. 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.Como el sistema distribuido est‡ sustentado en la red de comunicaciones.. El tiempo de respuesta promedio es de 20/1 = 20 segundos. debe dise–ar una aplicaci—n que aplique batching en los caracteres. Sistemas Distribuidos 37 .El copiado de datos involucra operaciones costosas en tŽrminos de tiempo en CPU. Asumiendo que los usuarios teclean caracteres a la tasa pico de 5 caracteres/seg. b) Si el tama–o del batch es de 20 caracteres. Ud.. El tama–o promedio del lote es 500/1000 = 1 car‡cter. adem‡s de que puede reducir la contienda por recursos centralizados. clientes y servers. el tama–o m‡s grande es 500/200 = 3 caracteres. Por tanto. Por medio de una administraci—n adecuada de la memoria se puede eliminar mucho del movimiento de datos entre el kernel.

almacenamiento o velocidad. 1-22.Un algoritmo centralizado puede definirse como aquŽl que recolecta informaci—n de varios nodos. la red puede saturarse en las regiones cercanas a dicha entidad. d) En una red amplia. un algoritmo descentralizado no recolecta informaci—n global del sistema. es decir la implementaci—n no opera suficientemente bien con el incremento de peticiones de servicio.Tipo Usar batch donde sea posible Usar cachŽ donde sea posible Minimizar la copia de datos Minimizar el tr‡fico en la red Significado El batching siempre mejora el rendimiento en un sistema distribuido. c) Aunque el componente centralizado tenga la suficiente capacidad de desempe–o. formada por varias redes interconectadas. En lugar de ello. Lo m‡s comœn es que los ambientes distribuidos evolucionen y crezcan tanto en usuarios como en servicios. por lo tanto es deseable que pueda adaptarse a estas nuevas especificaciones sin causar interrupci—n de los servicios o pŽrdidas de desempe–o significativas. la procesa en uno solo y luego distribuye los resultados entre los dem‡s. Algunas reglas de dise–o para la escalabilidad las mencionaremos enseguida. y las decisiones en los nodos se toman s—lo sobre la base de informaci—n global. b) El desempe–o de un componente centralizado se convierte en un cuello de botella cuando se tienen m‡s usuarios compitiendo por Žl.. es poco eficiente tener un tipo particular de peticiones atendido s—lo en un punto. Una forma de tener datos m‡s disponibles y reducir contienda por recursos centralizados A fin de no tener tiempo gastado de CPU Fig. Evitar entidades centralizadas. Su uso deber’a ser restringido por razones muy similares a las del punto anterior. Evitar algoritmos centralizados.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: a) La falla en el componente central causa la ca’da total del servicio en el sistema.. Flexibilidad. usando replicaci—n de recursos y algoritmos de control para satisfacer Žste objetivo de dise–o. Sistemas Distribuidos 38 . Escalabilidad Se refiere a la capacidad del sistema para adaptarse a una demanda incrementada de servicio. En general deber‡ evitarse el uso de componentes centralizados. cuando el tr‡fico se incrementa por el acceso a dicho recurso.

Sistemas Distribuidos 39 . En lugar de implementar todas las alternativas de conversi—n para los equipos que se tienen instalados. de forma tal que cada plataforma s—lo necesite el desarrollo del sistema de traducci—n de sus datos hacia dicho formato est‡ndar y viceversa. longitud de palabra de los equipos y representaci—n interna de caracteres).. Tipo Evitar entidades centralizadas Evitar algoritmos centralizados Ejecutar la mayor’a de las operaciones en las estaciones clientes Significado El batching siempre mejora el rendimiento en un sistema distribuido. dado que en este tipo de sistemas lo m‡s probable es que se tengan conectados diferentes tipo de plataformas de c—mputo las cuales deben tener resueltas las incompatibilidades que presentan entre s’ (como diferencias de formatos de archivos.Ejecutar la mayor’a de las operaciones en las estaciones clientes. Una forma de tener datos m‡s disponibles y reducir contienda por recursos centralizados A fin de no tener tiempo gastado de CPU Fig. Heterogeneidad La heterogeneidad es un factor importante para la construcci—n de un ambiente distribuido. En particular. 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. puesto que realiza una degradaci—n suave del desempe–o del sistema conforme crece en tama–o. lo recomendable es generar un formato de intercambio est‡ndar para todos. a travŽs de la reducci—n de la contienda por recursos compartidos. debe implementarse toda la protecci—n contra accesos no autorizados y destrucci—n total o parcial tanto de hardware como de software. se tienen los siguientes requerimientos: a) Debe ser posible para el originador de un mensaje saber que dicha informaci—n lleg— al receptor deseado. Seguridad Para que las personas puedan confiar en la integridad del sistema y la operaci—n que con Žl puede hacerse. Para implementar la soluci—n de esta problem‡tica generalmente lo que se hace es construir software de traducci—n que permite convertir la informaci—n de un ambiente hacia otro. Escalabilidad en sistema operativo distribuido.Esta tŽcnica favorece la escalabilidad. 1-23.

Sistemas Distribuidos 40 .b) Debe ser posible para el receptor de un mensaje determinar que Žste fue emitido por el originador genuino. de manera que el nuevo software desarrollado pudiera hacer llamadas a la interface del ambiente distribuido y tomara partido de sus funciones. 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 Emulaci—n de sistemas operativos existentes Un sistema operativo distribuido deber’a implementar emulaci—n de sistemas operativos populares Ðcomo por ejemplo UNIX-.

Kernels de sistemas distribuidos con m’nima funcionalidad. Utilizan un server con los servicios disponibles para cada usuario. en este apartado se mencionan algunos de ellos y las caracter’sticas que los distinguen. Sistemas integrados. de la universidad de Tokio. Ejemplos de Žstos sistemas incluyen: ACCENT y MACH de la universidad Carnegie Mellon. de QNX Software Ltd. Hasta ahora se ha mencionado que existen diferentes tipos de sistemas distribuidos. pero existen tambiŽn diversos sistemas previos a las funciones de UNIX como LOCUS que fue desarrollado por la universidad de California en Los Angeles y ahora se vende por Locus Inc. El Sistema Operativo Distribuido Cambridge es un caso de esta clase. D-UNIX de los laboratorios Bell. dado que proveen un conjunto casi m’nimo de primitivas para la administraci—n de procesos. de acuerdo a la clasificaci—n de Langsford [2]: ♦ ♦ ♦ ♦ Kernels de sistemas distribuidos con m’nima funcionalidad.Ejemplos de Sistemas Distribuidos. Estos tipos de sistemas permiten la ejecuci—n de software est‡ndar ampliamente configurable en cualquier computadora. de la universidad de Arizona y Galaxy. Los sistemas en tiempo real pueden estar tanto basados en el modelo de pool de servers como en el de orientaci—n a objetos. Introducci—n a DCE (Distributed Computing Environment). Tratan a las aplicaciones como objetos abstractos sobre los cuales ejecutan operaciones abstractas. Sistemas Distribuidos 41 . Sistemas basados en el modelo de pool de servers. intercambio de mensajes y la administraci—n de la memoria de respaldo. manejo de memoria. y provee a cada m‡quina de las ayudas y servicios que necesita para tal funci—n. Sistemas integrados. V KERNEL de Stanford y QNX. Los kernels de funcionalidad m’nima Ðcomo ya se dijo.. EDEN de la universidad de Washington y AMOEBA de la Vrije Universiteit Amsterdam. tŽngase presente que el texto se refiere a los siguientes tipos de sistemas distribuidos. Sistemas orientados a objetos. Actualmente est‡n basados fundamentalmente en el sistema operativo UNIX y corren sobre equipos que lo ejecutan. Ejemplos: ARGUS del MIT.reciben el nombre de microkernels. SAGUARO. Sistemas orientados a objetos Sistemas basados en el modelo de pool de servers.

Sistemas Distribuidos 42 . DCE no fue creado por OSF. AIX. Aplicaciones DCE Software DCE Sistema operativo y red Fig. DEC. HP. SUN OS. Como se ve en la Fig. ULTRIX. La idea b‡sica es tomar una colecci—n de m‡quinas existentes (posiblemente de diferentes fabricantes). UNIX SYSTEM V. el cual no puede considerarse ni como ambiente operativo ni como aplicaci—n. HP-UX. etc. A la OSF pertenecen empresas como IBM. Cada m‡quina conserva su propio ambiente operativo local. DOMAIN OS. 1-24. DCE es middleware estructurado por niveles entre la capa de aplicaciones DCE y la capa del sistema operativo y la red.. quienes han aportado diferentes conceptos y mecanismos para integrar DCE. DCE es realmente un conjunto integrado de servicios y herramientas que puede ser instalado como un ambiente coherente sobre sistemas operativos existentes y servir como plataforma para la construcci—n y ejecuci—n de aplicaciones distribuidas.0. interconectarlas en red y agregar la plataforma del software DCE sobre cada sistema operativo. algunos sistemas operativos hacia los cuales se puede transportar DCE incluyen OSF/1. WINDOWS y OS/2. 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.DCE es un esfuerzo de la Open Software Foundation (OSF) por crear un ambiente de c—mputo distribuido independiente de los vendedores. Esquema de DCE. 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. 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. La fundamentaci—n de que este ambiente sea independiente de los vendedores es que pueda correr sobre diferentes equipos. Por ejemplo. 1-24. lo cual permitir‡ construir y ejecutar las aplicaciones distribuidas. sistemas operativos y redes.

Este permite nombrar en forma un’voca y transparente a recursos como servers. archivos. su simplicidad de uso e independencia de los protocolos de red proveen una plataforma para comunicaciones seguras entre cliente y servidor. 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. Para lograr este nivel de funcionalidad se usa la operaci—n por celdas (un conjunto de personas. Por otra parte. elevado rendimiento y alta disponibilidad. Una celda m’nima necesita un server de directorio para ella. de acuerdo a especificaciones de trabajos a realizar en ella y ciertas tareas administrativas.Se utiliza para sincronizar la referencia de tiempo de todas las computadoras que pertenecen al sistema distribuido. dispositivos... Incluye operaciones para crear y controlar varios hilos de ejecuci—n en un solo proceso y para el acceso a datos globales desde las aplicaciones.. Su principal caracter’stica es que tambiŽn puede otorgar acceso a clientes de otros sistemas de archivos. inclusive de algœn otro sistema similar. el Global Directory Service (GDS) y el Global Directory Agent (GDA) como elementos para brindar esta funcionalidad. oculta las diferencias entre equipos mediante la conversi—n de datos hacia los formatos necesarios por el cliente y el server. Servicio de tiempo distribuido (DTS). Este servicio incluye el Cell Directory Service (CDS).. Se tiene toda la libertad para definir una celda. de tal forma que soporte miles de usuarios y equipos operando sobre redes de cobertura amplia.Es la base para comunicaciones en DCE.Componentes de DCE Paquete de hilos. Servicio de nombres. un server de seguridad. Otra finalidad importante es que DCE sea escalable. de manera totalmente independiente de su localizaci—n f’sica. que posee caracter’sticas como transparencia de localizaci—n. m‡quinas y recursos que tienen prop—sitos comunes y usan recursos compartidos). Servicio de seguridad. ya sea tomando como base el reloj de alguna de ellas o alguna fuente externa.Es un sistema de archivos a nivel general del ambiente..Provee todas las herramientas para autentificaci—n y autorizaci—n de accesos para proteger los recursos contra uso no autorizado. un servidor de tiempo distribuido y una o m‡s estaciones clientes con procesos correspondientes para cada tipo de servidor. Facilidad para llamadas a procedimientos remotos (RPC). Servicio de archivos distribuidos (DFS). Sistemas Distribuidos 43 .Este paquete provee un modelo de programaci—n sencilla para la construcci—n de aplicaciones concurrentes..

Sobrecarga: ciertas operaciones DCE como resoluci—n de nombres y autentificaci—n de usuarios imponen una sobrecarga elevada al sistema. donde los l’mites de la misma actœan como un firewall mantener los recursos de la celda libres de intromisi—n. 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. de forma que para usarlos deber‡ pasarse por un mecanismo de autentificaci—n y autorizaci—n espec’fico. sus caracter’sticas b‡sica y las causas tecnol—gicas/funcionales que determinaron su aparici—n y desarrollo. que es el software fundamental que mantiene en operaci—n a estos sistemas.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. As’ que colocando en la celda a los equipos de los cuales se depende mutuamente para estos procesos y otros que operan en forma similar se logra reducir el impacto global dejando el flujo de la transacci—n operando s—lo a nivel local. un ambiente de c—mputo distribuido abierto. Por œltimo. fue presentada una breve introducci—n a DCE. Seguridad: las computadoras de usuarios que dependen del acceso a otros para su proceso pueden determinar una celda. que intenta ser la plataforma comœn para el dise–o de aplicaciones distribuidas sobre plataformas heterogŽneas de c—mputo. Sistemas Distribuidos 44 . Sumario En esta primera parte se han presentado los conceptos esenciales de los sistemas distribuidos.

2.Sistemas Distribuidos Ejercicio # 4 1. as’ como de la interface. Mencione las principales cuestiones que deben cuidarse en el dise–o de un sistema operativo distribuido para garantizar un adecuado nivel de desempe–o. ÀCu‡l es el principal problema que se presente para construir un sistema confiable? 3. 5. Luego de terminar el punto anterior. Elabore una discusi—n sobre las principales ventajas de utilizar dicho esquema. 6. ÀCu‡les son las principales tareas que debe desempe–ar un microkernel? Elaboren un informe de ventajas relativas entre el enfoque de microkernel y kernel monol’tico. ÀCu‡les son los principales problemas que aparecen en sistemas distribuidos heterogŽneos? ÀCu‡les son las principales problem‡ticas que tienen que resolverse para satisfacer la heterogeneidad? 4. Se ha mostrado que se usa mucho el enfoque de organizaci—n por capas funcionales en lo que respecta al dise–o de sistemas operativos distribuidos. aplicaciones y ayudas que provee al usuario. 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. Tome nota de las caracter’sticas del ambiente y de su desempe–o. discuta con su equipo de trabajo la conveniencia de los microkernels. Despl‡cese por la interface gr‡fica del sistema y lea las notas de desarrollo tanto del sistema operativo en s’ como del servidor web (httpd) y navegador web que se incluyen. Instale en su computadora el sistema operativo QNX basado en microkernel (el instructor le proveer‡ con el software necesario). Sistemas Distribuidos 45 .

d ) Un sistema multiprocesador donde cada procesador tiene su propia memoria. ÀCu‡l ser’a ahora el m‡ximo tiempo de retraso correspondiente a los saltos? ÀDe quŽ nivel ser’a ese hipercubo? 6. Cada procesador se puede comunicar con los otros œnicamente mediante el paso de mensajes. a) Un sistema multiprocesador con una sola memoria compartida. Sistemas Distribuidos 46 . No. Elabore una contrastaci—n entre los conceptos presentados en dicho texto y aquellos que hemos analizado hasta el momento. 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. c) Un sistema de multiprocesador en el cual todos los equipos est‡n en un gran cuarto. 3. 45. ÒLinux helps bring Titanic to lifeÓ. Cada procesador se puede comunicar con los otros œnicamente mediante el paso de mensajes. Lea el art’culo ÒParallel Computing using LinuxÓ. Elaborar un comentario cr’tico al respecto. de Manu Konchady (Linux Journal. b) Un sistema multiprocesador en el cual cada procesador tiene su propia memoria local. ÀCu‡l puede ser el mayor tiempo de retraso (correspondiente a los saltos) para un mensaje? 5. complejidad del ambiente operativo.Sistemas Distribuidos Tarea # 1 Nombre: _________________________________________________________________________ 1. 39. Vol. Si tenemos un multiprocesador de 4096 CPU«s de 50 MIPS conectados a la memoria por medio de una red omega. complejidad de hardware. e interconectados por una red de comunicaci—n de alta velocidad conformando una red. Elaborar un comentario cr’tico al respecto. de Thomas Sterling (Communications of the ACM. 2. Los procesadores est‡n situados muy lejos unos de otros (posiblemente en diferentes ciudades) y est‡n interconectados por un sistema de baja velocidad conformando una red. Leer el art’culo de Daryll Strauss. Considerando el caso de un hipercubo de 256 CPU«s. enero 1998). paralelismo potencial y programabilidad (quŽ tan f‡cil es escribir programas eficientes para ellos). Àcon quŽ rapidez deben permitir los switches que una solicitud vaya a la memoria y regrese en un tiempo de instrucci—n? 7. 4. Una multicomputadora con 256 CPU«s se organiza como una matriz de 16 x 16. september 1996. Compare los siguientes tipos de sistemas en tŽrminos de su costo. No. adem‡s de la memoria compartida con todos los dem‡s procesadores. Leer el art’culo ÒThe scientific workstation of the future may be a pile of PC«sÓ. 9) .

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). Fecha de entrega: Entregar esta hoja como car‡tula del trabajo. Sistemas Distribuidos 47 . y (c) el nœmero de procesadores es muy grande (> 100).

Sign up to vote on this title
UsefulNot useful