P. 1
Sistemas_Distribuidos

Sistemas_Distribuidos

|Views: 1.458|Likes:
Publicado porkiejic

More info:

Published by: kiejic on Apr 30, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

05/14/2013

pdf

text

original

Sections

  • Sistemas Distribuidos
  • 1. Conceptos fundamentales
  • Definici—n de un sistema de c—mputo distribuido
  • Las funciones m‡s importantes de un Sistema Distribuido
  • Evoluci—n de los sistemas de c—mputo distribuido
  • Sistemas Distribuidos Ejercicio # 1-1
  • Modelos de computaci—n distribuida
  • Taxonom’a de los ambientes de c—mputo
  • FD1
  • FD2
  • FDn MC
  • Sistemas Distribuidos Ejercicio # 1-2
  • R:
  • Sistemas Distribuidos Ejercicio # 1-3
  • T—picos para el dise–o de sistemas operativos distribuidos
  • Transparencia
  • Tipo Significado
  • Confiabilidad
  • Flexibilidad
  • Desempe–o
  • Soluciones:
  • Escalabilidad
  • Heterogeneidad
  • Seguridad
  • Emulaci—n de sistemas operativos existentes
  • Ejemplos de Sistemas Distribuidos
  • Introducci—n a DCE (Distributed Computing Environment)
  • Sumario
  • Sistemas Distribuidos Ejercicio # 4
  • Sistemas Distribuidos Tarea # 1

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

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

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

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

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

Sistemas Distribuidos 9 . en la jerga comœn se les llama servidores (servers). Modelo workstation-server Este se ilustra en la Fig. o diskless) comunicadas mediante red. etc. ÀC—mo identifica el sistema a una estaci—n desocupada? 2. como base de datos. Algunas otras microcomputadoras se pueden usar para proveer otros tipos de servicios. 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. Ahora que existe la potencialidad de tener estaciones sin disco. impresi—n. Estas m‡quinas cumplen ahora nuevas tareas especializadas para proveer y administrar acceso a los recursos. ÀC—mo puede transferirse un proceso desde una estaci—n para ser ejecutado en otra? 3. Posee varias microcomputadoras y varias estaciones de trabajo (algunas de las cuales pueden ser estaciones sin disco duro. À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. 1-2. Modelo de Workstation.Red de comunicaciones Fig. 1-3. Para la implantaci—n del modelo en la vida real hay que resolver ciertos problemas: 1.

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

que el modelo no soporta la conexi—n de estaciones directamente a los servidores. de manera que el usuario no se da de alta en alguna m‡quina en particular. 1-4. este equipo asigna temporalmente el nœmero de servers que deber‡n ser dedicados al trabajo de tal petici—n. Sistemas Distribuidos 11 . dado que dicho poder computacional esta disponible para todos a diferencia de Workstation-Server. en Žste se dispone de un conjunto (pool) de servers que son compartidos y asignados conforme a demanda. sino s—lo por medio de la red de interconexi—n. Modelo pool de servers. Terminales Red de comunicaciones Server de ejecuci—n. pero existen instantes en los que la actividad y los programas que ejecutan demandan potencia de trabajo en alto grado. 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. Server de archivos. Cuando se recibe una solicitud de una persona. el de Pool de Servers permite una mejor utilizaci—n del poder de c—mputo disponible en el ambiente distribuido. 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. donde varios equipos pueden estar desocupados en algœn momento pero su capacidad no se puede asignar a otros. Pool de procesadores. 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. pero s’ percibe al sistema como un todo. Comparado con el modelo de Workstation-Server. 1-4.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. Se puede apreciar en la Fig. A diferencia del modelo anterior en el que cada persona tiene su servidor asignado. es que aqu’ no existe el concepto de Òcomputadora homeÓ. Por otra parte. Otra diferencia importante con otros esquemas. Fig. Las terminales usadas pueden ser estaciones sin disco o terminales gr‡ficas como X terminals. y luego de atenderla regresan para ser liberados y quedar a disposici—n de la siguiente tarea.

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. El modelo h’brido permite combinar las mejores caracter’sticas de Workstation-Server y Pool. el de Workstation-Server es el m‡s ampliamente utilizado para la construcci—n de sistemas de c—mputo distribuido. 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. Esto se debe a que un usuario promedio solamente ejecuta tareas interactivas simples como editar archivos. 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. Sistemas Distribuidos 12 .Sin embargo. Para este tipo de tareas se considera mejor el modelo Workstation-Server. Por otra parte. Modelo h’brido De los cuatro modelos descritos anteriormente. etc. Plan 9 y el Cambridge Distributed Computing System. 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. 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. El modelo se ajusta perfectamente a especificaciones tan sencillas. Ejemplos: Amoeba. este modelo no se considera recomendado para programas de c‡lculo complejo como aplicaciones intensivas de alto rendimiento o aplicaciones basadas en gr‡ficas.

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

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

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

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

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

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

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. m = 1) es el tipo m‡s frecuente de las computadoras actuales. lo cual resulta en una ejecuci—n bastante lenta. en el cual se procesa una matriz de n x m bits en cada vez.16384 288 256 MPP (1. 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. Taxonom’a de Feng. mmp (16. m > 1) es conocido como procesamiento totalmente paralelo. 1-9.256) Illiac-IV (64.288) Staran (1.16384) PEPE (32. es el modo de ejecuci—n m‡s r‡pido de los cuatro.1) IBM 370/168 (32. ♦ El circuito a nivel de bit.1) Cray-1 (64. dado que procesa una palabra por vez. y han sido llamado de procesamiento por secci—n de palabra.1) 1 1 16 32 64 PDP-11 (16. No profundizaremos en este modelo dado que se extiende fuera de los alcances de estas notas. El PSBP (n > 1. pero si haremos menci—n de que se estudia el procesamiento paralelo encauzado en tres diferentes subsistemas: ♦ Unidad de control del procesador. m > 1) ha sido llamado procesamiento por secci—n de bits debido a que procesa un conjunto de bits cada vez. ♦ La unidad AritmŽtico-L—gica. El tipo PPBS (n = 1.16) 16 M’nima (1.1) Fig.64) 64 C. Sistemas Distribuidos 19 . El esquema PPBP (n > 1.

ÀCu‡l modelo supone que ser‡ el m‡s usado en el futuro? Justifique su respuesta. 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. Considere el caso de un sistema de c—mputo distribuido basado en el modelo de Pool de Procesadores. À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). 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. el proceso 2 necesita 15 ms. 2. El proceso 1 requiere 3 ms para terminarse. 3. Para este caso. d) Est‡ utiliz‡ndose el modelo Workstation-Server y el componente que fall— es una de las workstations de usuarios. Calcule el grado de paralelismo para una computadora con longitud de palabra de 32 bits y que tiene cuatro cauces aritmŽticos. que tiene P procesadores en el pool. Sistemas Distribuidos 20 . 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. c) Se usa el modelo Workstation-Server y fall— uno de los servers. Asuma que en ese momento el usuario es la œnica persona utilizando el sistema. Un servidor de red deber ejecutar cuatro procesos hijo a partir de un proceso padre general. 6. ÀCu‡l ser’a la descomposici—n —ptima de la tarea? 5. 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. 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. el proceso 3 requiere 8 ms y finalmente el proceso 4 usa 10 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. cada uno de 16 etapas.

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

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

En este sistema no se tiene la compartici—n de un solo espacio de memoria. Sistemas Distribuidos 23 . 20/4 (130. = 10 µs ---------------27. Lo cual representa m‡s cerca 329.08 ns) = 0.52 ns) = 1.504 µs Tiempo de procesamiento de la interrup. a) Un paquete de 500 bytes son 125 palabras de 4 bytes cada una (el tama–o que acepta la memoria).15 µs por cada paquete de 500 bytes. Lo cual representa m‡s cerca 144.52) + 100 = 130. El sistema de comunicaci—n sirve para interconectar una m‡quina con otra.764 µs por cada paquete de 500 bytes. b) Si s—lo se copia el encabezado de 20 bytes: Para palabras de 4 bytes. 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. cuando en realidad se reciben varios paquetes antes de procesar la interrupci—n. Se tratar‡n mayores detalles de las redes de interconexi—n en el siguiente cap’tulo. Multicomputadoras basadas en bus.504 µs Tiempo de procesamiento de la interrup.52 ns) = 1.65 µs el c—digo de reenv’o toma 200 (7. ♦ Se usa una interrupci—n por cada paquete. ♦ Se supone hay un CPU totalmente dedicado a la comunicaci—n.26 µs el c—digo de reenv’o toma 200 (7. sin tener la sobrecarga por consulta de tablas de enrutamiento. con lo cal se tiene que cada vuelta al c—digo mostrado se demora: 4 (7.1 Mbps de velocidad de transferencia. 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. sino que cada una de las computadoras conectadas posee su propia memoria local.son necesarios adem‡s 100 nseg.08 ns) = 16. = 10 µs ---------------12. Si se desea copiar todas las palabras ser‡n necesarios: 125 (130.22 Mbps de velocidad de transferencia.08 nseg.

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

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

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

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

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

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

A fin de lograr mejor desempe–o y confiabilidad. por lo que respecta al usuario. Un ejemplo de ello son los sistemas que respaldan recursos como servidores o discos duros.. Transparencia de migraci—n. donde todas las acciones se duplican en los componentes.. 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. 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.Transparencia El ambiente operativo distribuido debe volver ÒinvisiblesÓ (transparentes) a todas las m‡quinas que lo integran y con las cuales trabajan las personas. la persona siempre tendr‡ la posibilidad de accesarlo (si las restricciones y condiciones de seguridad lo permiten) Transparencia de replicaci—n.Se entiende b‡sicamente en dos aspectos. 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. de manera que se logre que la persona tenga una vista l—gica œnica del sistema. y deber‡ ser responsabilidad del sistema operativo distribuido localizar los recursos y hacer la asignaci—n de los mismos. utilizar un recurso debe ser un mecanismo igual sin importar la localizaci—n f’sica de tal ente.Por esto se entiende que el usuario no debe distinguir sin un recurso es remoto o local. M‡s aœn. 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. los restantes toman su lugar y siguen con la operaci—n sin que los usuarios aprecien la falla. Transparencia de localizaci—n. 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. 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. Un sistema totalmente tolerante a fallas aunque te—ricamente factible. El nombramiento (nomenclatura) de Žstas rŽplicas. los cuales son la transparencia de nombres y movilidad del usuario.El sistema distribuido deber‡ continuar operando Ðquiz‡ en forma degradada. 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. Existen diferentes enfoques para la transparencia que se presentan enseguida.. y si el elemento principal falla.Significa que los recursos puedan ser cambiados de localizaci—n sin alterar su nombre. Hay tres t—picos importantes en este rubro: Sistemas Distribuidos 30 ..aœn en el caso de fallas en alguno de sus componentes. La movilidad de usuario significa que no importa el punto desde el cual se estŽ solicitando el acceso a un recurso en particular. Transparencia a fallas. 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.. Transparencia de acceso.

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

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

utilizadas en sistemas operativos distribuidos pueden ser el uso de transacciones at—micas. Fig. es m‡s simple que el sistema se recobre en el segundo esquema y deber‡ preferirse en la mayor’a de los casos. as’ como establecer los timers necesarios para no seguir esperando retransmisi—n de los paquetes faltantes en caso de una falla como las descritas. Si un proceso se detiene en forma inesperada debido a falla en hardware o software. un servidor sin estado no guarda informaci—n de sus clientes y puede recobrarse m‡s r‡pido en caso de alguna falla. y hacer el cierre necesario de la conexi—n. Por el contrario. el sistema restaura posteriormente los objetos de datos involucrados hacia sus estados originales. 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. o todas las operaciones se llevan a cabo de forma exitosa o ninguna de sus operaciones individuales permanece. En un sistema de comunicaci—n de mensajes. 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. Aunque realmente la recuperaci—n de fallas se puede dar tanto en server con estado como sin Žl. 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. los equipos deben estar en posibilidad de detectar paquetes fuera de secuencia. perdidos o hasta duplicados. Esto es. 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. Tipo Eliminaci—n de fallas Significado Uso de componentes individuales de alta confiabilidad. El server sin estado basa su operaci—n en el enfoque cliente-servidor. servers sin estado y transmisi—n de mensajes basados en reconocimiento y tiempos fuera. 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. que el dise–o original deba ser cambiado al aparecer nuevos Sistemas Distribuidos 33 . sin que los otros procesos puedan modificar u observar los estados de dichos c‡lculos. 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. 1-19. Confiabilidad. Cuando se usa el paradigma de server sin estado. 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.

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

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

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

debe dise–ar una aplicaci—n que aplique batching en los caracteres. 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. c) Si las suposiciones hechas son correctas. el tama–o m‡s grande es 500/200 = 3 caracteres. mantenerla libre de tr‡fico se refleja en el rendimiento integral del sistema. aunque en la realidad no siempre puede lograrse tal fin.El copiado de datos involucra operaciones costosas en tŽrminos de tiempo en CPU.4 paquetes/ms. Minimizar la copia de datos. lo cual parece ser ineficiente.. este resultado se mejora en 10 paquetes cada 25 ms = 0. 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. T—picos de dise–o: Usar cachŽ donde sea posible. Por tanto. Minimizar el tr‡fico en la red. El tama–o promedio del lote es 500/1000 = 1 car‡cter. clientes y servers. 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. Sistemas Distribuidos 37 . los bloques de E/S. el mejor tiempo de respuesta es de 20 caracteres/5 caracteres/seg = 4 segundos. adem‡s de que puede reducir la contienda por recursos centralizados. de manera que ser’a deseable minimizar hasta lo posible dicha operaci—n. 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.El uso de cachŽ vuelve a los datos m‡s disponibles. Ejemplo: una sesi—n de terminal remota (TELNET) env’a un paquete por cada car‡cter tecleado. y con un promedio de 1 car‡cter/seg.. Por medio de una administraci—n adecuada de la memoria se puede eliminar mucho del movimiento de datos entre el kernel.Ignorando el tiempo de espera de los paquetes. Ud. no conviene hacer un TELNET con lotes.

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

debe implementarse toda la protecci—n contra accesos no autorizados y destrucci—n total o parcial tanto de hardware como de software. 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. se tienen los siguientes requerimientos: a) Debe ser posible para el originador de un mensaje saber que dicha informaci—n lleg— al receptor deseado. 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. a travŽs de la reducci—n de la contienda por recursos compartidos. en un sistema distribuido dicha informaci—n no puede garantizarse en cuanto a veracidad. lo recomendable es generar un formato de intercambio est‡ndar para todos. 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.. Seguridad Para que las personas puedan confiar en la integridad del sistema y la operaci—n que con Žl puede hacerse. 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. 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.Ejecutar la mayor’a de las operaciones en las estaciones clientes.Esta tŽcnica favorece la escalabilidad. longitud de palabra de los equipos y representaci—n interna de caracteres). puesto que realiza una degradaci—n suave del desempe–o del sistema conforme crece en tama–o. En lugar de implementar todas las alternativas de conversi—n para los equipos que se tienen instalados. 1-23. Sistemas Distribuidos 39 . Escalabilidad en sistema operativo distribuido. 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 particular.

b) Debe ser posible para el receptor de un mensaje determinar que Žste fue emitido por el originador genuino. c ) Tanto el receptor como el transmisor deben implementar mecanismos para asegurarse que la informaci—n original no ha sido alterada durante su tr‡nsito de un extremo a otro Emulaci—n de sistemas operativos existentes Un sistema operativo distribuido deber’a implementar emulaci—n de sistemas operativos populares Ðcomo por ejemplo UNIX-. Sistemas Distribuidos 40 . de manera que el nuevo software desarrollado pudiera hacer llamadas a la interface del ambiente distribuido y tomara partido de sus funciones.

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

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

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

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

À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. 5. Sistemas Distribuidos 45 . aplicaciones y ayudas que provee al usuario. discuta con su equipo de trabajo la conveniencia de los microkernels. Mencione las principales cuestiones que deben cuidarse en el dise–o de un sistema operativo distribuido para garantizar un adecuado nivel de desempe–o.Sistemas Distribuidos Ejercicio # 4 1. À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. Instale en su computadora el sistema operativo QNX basado en microkernel (el instructor le proveer‡ con el software necesario). ÀCu‡l es el principal problema que se presente para construir un sistema confiable? 3. 2. 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. Tome nota de las caracter’sticas del ambiente y de su desempe–o. 6. Luego de terminar el punto anterior. as’ como de la interface. 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. 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. Elabore una discusi—n sobre las principales ventajas de utilizar dicho esquema.

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

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

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->