124
Sistemas con múltiples procesadores

Sistemas Con Multiples Procesadores

Embed Size (px)

Citation preview

Page 1: Sistemas Con Multiples Procesadores

Sistemas con múltiples procesadores

Page 2: Sistemas Con Multiples Procesadores

Sistemas con múltiples procesadores• Desde que nació la industria de las computadoras ha sido impulsada por

una incesante búsqueda de cada vez mas potencia de computo. Una posibilidad para aumentar la velocidad es usar computadoras con paralelismo masivo. Estas maquinas constan de muchas CPUs, cada una de las cuales opera a velocidad normal pero que en conjunto tienen una potencia de computo mucho mayor que una sola CPU. Otra posible estrategia para lograr una mayor velocidad son los sistemas con múltiples CPUs convencionales.

• En una multicomputadoras con transferencia de mensajes cada memoria es local respecto a una sola CPU y solo se tiene acceso a ella por medio de esa CPU. Las maquinas se comunican enviando mensajes de varias palabras por la interconexión. Las multicomputadoras son mucho mas fáciles de construir que los multiprocesadores pero son mas difíciles de programar.

Page 3: Sistemas Con Multiples Procesadores

Sistemas con múltiples procesadores

Page 4: Sistemas Con Multiples Procesadores

Multiprocesadores• Un multiprocesador de memoria compartida es un sistema de

computo en el que dos o mas CPUs comparten pleno acceso a una RAM común. La única propiedad inusitada de este sistema es que la CPU puede escribir algún valor en una palabra de memoria, leer después esa palabra y obtener un valor distinto.

• Los sistemas operativos para multiprocesadores son sistemas operativos normales: manejan llamadas al sistema, administran la memoria, proporcionan un sistema de archivos y administran dispositivos de E/S . No obstante, hay ciertas áreas en las que tienen características únicas. Estas incluyen la sincronización de procesos, la administración de recursos y la calendarización.

Page 5: Sistemas Con Multiples Procesadores

Hardware de multiprocesador

• Los multiprocesadores tienen la propiedad de que todas las CPUs pueden direccionar toda la memoria, algunos multiprocesadores tienen la propiedad adicional de que todas las palabras de la memoria pueden leerse con la misma rapidez. Estas maquinas se denominan multiprocesadores de Acceso uniforme a la memoria (UMA; Uniform Memory Access). Los multiprocesadores de Acceso no uniforme a la memoria (NUMA; Nonuniform Memory Access) carecen de esta propiedad.

Page 6: Sistemas Con Multiples Procesadores

Arquitectura smp uma basadas en un bus

Page 7: Sistemas Con Multiples Procesadores

Arquitectura smp uma basadas en un bus

• Cada bloque de cache se marca como de solo lectura o de lectura/escritura. Si una CPU intenta escribir una palabra que esta en uno o mas caches remotos, el hardware del bus detecta la escritura y coloca una señal en dicho bus para informar a todos los demás caches de la escritura. Si otros caches tienen una copia “limpia”, es decir, una copia exacta de lo que esta en la memoria, podrán desechar sus copias y dejar que el escritor obtenga el bloque de cache de la memoria antes de modificarlo. Si algún cache tiene una copia “sucia” es decir modificada, deberá escribirla en la memoria antes de que pueda efectuarse la nueva escritura o bien transferirla en forma directa al escritor por el bus.

• Otra posibilidad es el diseño seria en el que cada CPU no solo tiene un cache, sino también una memoria local privada a la que tiene acceso por un bus privado. Para sacar un máximo provecho de esta configuración, el compilador debe colocar todo el texto del programa, cadenas, constantes y demás datos de solo lectura, pilas y variables locales en las memorias privadas. Así la memoria compartida solo se usara para escribir variables compartidas.

Page 8: Sistemas Con Multiples Procesadores

Multiprocesador uma que emplean conmutadores tipo crossbar

• Incluso con un uso optimo de caches, el empleo de un solo bus limita el tamaño de un multiprocesador UMA a unas 16 o 32 CPUs. Para ir mas lejos se requiere un tipo distinto de red de interconexión. El circuito mas sencillo para conectar n procesadores a k memorias es el Conmutador tipo Crossbar.

Page 9: Sistemas Con Multiples Procesadores

Multiprocesador uma que emplean conmutadores tipo crossbar

Page 10: Sistemas Con Multiples Procesadores

Multiprocesador uma que emplean conmutadores tipo crossbar

• Una de las mejores propiedades del conmutador tipo crossbar es que es una red no bloqueadora, lo que significa que a ninguna CPU se le niega la conexión que necesita porque algún punto de cruce o línea ya este ocupado. Además, no es necesario planear por adelantado. Incluso si ya se han establecido siete conexiones arbitrarias, siempre será posible conectar la CPU restante a la memoria restante.

• Una de las peores propiedades del conmutador tipo crossbar es el hecho de que el numero de puntos de cruce crece en proporción a n². Con 1000 CPUs y 1000 módulos de memoria se necesita un millón de puntos de cruce. Un conmutador tan grande no es practico. No obstante para sistemas de tamaño mediano es factible un diseño tipo Crossbar.

Page 11: Sistemas Con Multiples Procesadores

Multiprocesador uma que usan redes de conmutación multietapas

•Un diseño de multiprocesador distinto se basa en un conmutador 2X2, este conmutador tiene dos entradas y dos salidas. Los mensajes que llegan por cualquiera de las líneas de estrada pueden conmutarse a cualquiera de las líneas de salida.

Page 12: Sistemas Con Multiples Procesadores

Multiprocesador uma que usan redes de conmutación multietapas

• El conmutador 2X2 puede ser usado de muchas maneras para construir redes de conmutación multietapas mas grandes. Una posibilidad es la red Omega. El patrón de cableado de la red omega se conoce como de barajado perfecto, pues la mezcla de las señales en cada etapa semeja un mazo de naipes que se divide en mitades, las cuales luego se combinan carta por carta.

• Un sistema de memoria en el que palabras consecutivas están en diferentes módulos se conoce como intercalado. Las memorias intercaladas aumentan al máximo el paralelismo porque casi todas las referencias a la memoria son a direcciones consecutivas.

Page 13: Sistemas Con Multiples Procesadores

Multiprocesador uma que usan redes de conmutación multietapas

Page 14: Sistemas Con Multiples Procesadores

MULTIPROCESADORES NUMA• Al igual que los multiprocesadores UMA , ofrecen un solo espacio de direcciones

para todas las CPUs pero, a diferencia de las maquinas UMA, el acceso a los módulos de memoria locales es mas rápido que a los remotos. Por tanto, todos los programas UMA se ejecutan sin cambios en las maquinas NUMA, pero el desempeño será mas bajo que en una maquina UMA con la misma velocidad de reloj.

• Las maquinas NUMA tienen tres características esenciales que todas poseen y que en conjunto las distinguen de otros multiprocesadores:

1. Hay un solo espacio de direcciones, visible para todas las CPUs.

2. El acceso a la memoria remota es por medio de instrucciones LOAD y STORE.

3. El acceso a la memoria remota es mas lento que el acceso a la memoria local.

Page 15: Sistemas Con Multiples Procesadores

MULTIPROCESADROES NUMA

Page 16: Sistemas Con Multiples Procesadores

Tipos de sistemas operativos para multiprocesador

•Cada CPU tiene su propio sistema operativo

• La forma mas sencilla de organizar un sistema operativo de multiprocesador consiste en dividir en forma estática la memoria en tantas particiones como procesadores haya y proporcionar a cada CPU su propia memoria privada y su propia copia privada del sistema operativo. Una optimización seria permitir a todas las CPUs compartir el código del sistema operativo y hacer copias privadas únicamente de los datos.

Page 17: Sistemas Con Multiples Procesadores

Tipos de sistemas operativos para multiprocesador

• Cuatro aspectos de este diseño son:1. Cuando un proceso emite una llamada al sistema, esta se atrapa y maneja

en su propio CPU utilizando las estructuras de datos de las tablas de ese sistema operativo.

2. Debido a que cada sistema operativo tiene sus propias tablas, también tiene su propio conjunto de procesos que calendariza por su cuenta. No se comparten procesos.

3. No se comparten paginas

4. Si el sistema operativo mantiene un cache de búfer de bloques de disco usados recientemente, cada sistema operativo lo hará con independencia de los demás.

Page 18: Sistemas Con Multiples Procesadores

Tipos de sistemas operativos para multiprocesador

•Cada CPU tiene su propio sistema operativo

Page 19: Sistemas Con Multiples Procesadores

Tipos de sistemas operativos para multiprocesador

•Multiprocesadores Amo-Esclavo

Page 20: Sistemas Con Multiples Procesadores

Tipos de sistemas operativos para multiprocesador

•Multiprocesadores Amo-Esclavo

• El modelo amo-esclavo resuelve casi todos los problemas del primer modelo. Hay una sola estructura de datos que lleva el control de los procesos listos. Cuando una CPU se queda sin trabajo, pide al sistema operativo un proceso que ejecutar, y se le asigna uno. Así, nunca puede suceder que una CPU este inactiva mientras otra esta sobrecargada. De forma similar, pueden asignarse paginas en forma dinámica entre todos los procesos y solo hay un cache de búfer, así que nunca se presentan inconsistencias. El problema con este modelo es que si hay muchas CPUs, el amo se convertirá en un cuello de botella. Después de todo tiene que manejar todas las llamadas al sistema de todas las CPUs.

Page 21: Sistemas Con Multiples Procesadores

Tipos de sistemas operativos para multiprocesador

•Multiprocesadores Simétricos

Page 22: Sistemas Con Multiples Procesadores

Tipos de sistemas operativos para multiprocesador

•Multiprocesadores Simétricos

• Este modelo balancea los procesos y la memoria en forma dinámica, puesto que solo hay un conjunto de tablas del sistema operativo. También elimina el cuello de botella del procesador amo, ya que no existe el amo. Muchas partes del sistema operativo son independientes entre si. Este método lleva a dividir el sistema operativo en regiones criticas independientes que no interactúan entre si. Cada región critica esta protegida por su propio mutex, de modo que solo una CPU podrá ejecutarse a la vez. De este modo puede lograrse un paralelismo mucho mayor.

Page 23: Sistemas Con Multiples Procesadores

Sincronización de multiprocesadores• En un multiprocesador, la inhabilitación de interrupciones solo

afecta a la CPU que la efectúa. Las demás siguen funcionando en forma normal y tienen acceso a la tabla critica. Por ello, es necesario utilizar un protocolo de mutex apropiado y todas las CPUs deben respetarlo para garantizar que la exclusión mutua funcione.

• El corazón de cualquier protocolo mutex es una instrucción que permite inspeccionar una palabra de memoria y asignarle un valor en una sola operación indivisible. El TSL es usa para implementar regiones criticas. Lo que hace esta instrucción es leer una palabra de memoria y almacenarla en un registro. Al mismo tiempo, la instrucción escribe un 1 en la palabra de memoria. Desde luego, se requieren dos ciclos de bus para realizar la lectura y la escritura de la memoria.

Page 24: Sistemas Con Multiples Procesadores

Sincronización de multiprocesadores

Page 25: Sistemas Con Multiples Procesadores

Sincronización de multiprocesadores

• Para evitar este problema, la instrucción TSL primero debe bloquear el bus, para impedir que otras CPUs accedan a el, luego efectuar ambos accesos a la memoria y, por ultimo, desbloquear el bus. Por lo regular, el bus se bloquea solicitándolo con el protocolo de solicitud de bus normal y estableciendo en 1 lógico alguna línea especial del bus hasta que los dos ciclos se efectúan.

• Si se implementa y usa de forma correcta, TSL garantiza el funcionamiento de la exclusión mutua. Sin embargo, este método de exclusión mutua utiliza un bloqueo giratorio porque la CPU solicitante tan solo da vueltas en un ciclo, probando el bloqueo tan a menudo como puede.

• Puesto que la instrucción TSL es de escritura necesita acceso exclusivo al bloque de cache que contiene el bloqueo. Por tanto, cada TSL anula la validez del bloque en el cache del poseedor del bloqueo y obtiene una copia privada.

Page 26: Sistemas Con Multiples Procesadores

Sincronización de multiprocesadores• En cuanto al poseedor del bloqueo tenga acceso a una palabra

adyacente a dicho bloqueo, el bloque de cache se traslada a su maquina. Por ello, el bloque de cache que contiene el bloqueo estará pasando en forma continua entre el poseedor del bloqueo y el solicitante del bloqueo, generando aun mas trafico de bus que el que generarían lecturas individuales de la palabra del bloqueo.

• Cabe señalar que si dos o mas CPUs están tratando de obtener el mismo bloqueo, podría suceder que ambas detectan al mismo tiempo que esta libre y ambas ejecuten una TSL al mismo tiempo para obtenerlo. Solo una de estas instrucciones se lograra, por lo que no hay una condición de competencia porque la adquisición real se efectúa con la instrucción TSL.

Page 27: Sistemas Con Multiples Procesadores

Sincronización de multiprocesadores• Otra forma de reducir el trafico de bus es utilizar el algoritmo de retroceso

exponencial binario. En vez de hacer un sondeo en forma continua, puede insertarse un ciclo de retraso entre sondeos. En un principio, el retraso es de una instrucción. Si el bloqueo sigue ocupado, el retraso se aumentara a dos instrucciones, luego a cuatro y así hasta algún máximo. Si el máximo es bajo, la respuesta será rápida cuando el bloqueo se libere, pero se desperdiciaran mas ciclos de bus por la hiperpaginación de cache. Un máximo alto reduce la hiperpaginación de cache a expensas de tardar mas en percatarse de que el bloqueo esta libre.

• El algoritmo opera exigiendo a una CPU que fracaso en el intento de obtener un bloqueo que asigne una variable de bloqueo y se coloque al final de una lista de procesadores que esperan el bloqueo. Cuando el poseedor de este salga de la región critica, libera el bloqueo privado que la primera CPU de la lista esta probando. Esta CPU entra entonces en la región critica. Cuando termine, liberara el bloqueo que este usando su sucesora y así en forma sucesiva.

Page 28: Sistemas Con Multiples Procesadores

Sincronización de multiprocesadores

Page 29: Sistemas Con Multiples Procesadores

Calendarización de multiprocesadoresEn un multiprocesador la calendarización es bidimensional.El calendarizador debe decidir cuál proceso ejecutará y en cuál CPU lo hará. En algunos sistemas, los procesos no están relacionados entre sí, pero en otros vienen en grupos.

Page 30: Sistemas Con Multiples Procesadores

Tiempo compartidoEl algoritmo de calendarización mas sencillo para manejar procesos es tener una sola estructura de datos en todo el sistema para los procesos listos, esta puede ser una lista, o un conjunto de listas según la prioridad de los procesos.

Page 31: Sistemas Con Multiples Procesadores

Tiempo compartido

Page 32: Sistemas Con Multiples Procesadores

Tiempo compartidoDesventajas:

▫Posible competencia por usar la estructura de datos de calendarización a medida que aumentan el número de procesadores.

▫Sobrecarga usual por efectuar un cambio de contexto cuando un proceso se bloquea por E/S, o expire el cuanto de tiempo del proceso.

Page 33: Sistemas Con Multiples Procesadores

Calendarización inteligenteUn proceso que obtiene un bloqueo giratorio establece un indicador, visible para todos los procesos, para indicar que tiene actualmente un bloqueo giratorio. Cuando el proceso libera el bloqueo, borra el indicador. El calendarizador no detiene al proceso que tiene el bloqueo sino que le da más tiempo para que salga de su región crítica y libere el bloqueo.

Page 34: Sistemas Con Multiples Procesadores

Calendarización por afinidadConsiste en hacer un esfuerzo serio por lograr que un proceso se ejecute en la misma CPU en que se ejecutó la última vez. Una forma de crear esta afinidad es con un algoritmo de calendarización de dos niveles.

▫Se asignan los procesos las CPUs. (nivel superior)▫Se calendarizan los procesos. (nivel inferior)

Page 35: Sistemas Con Multiples Procesadores

Calendarización por afinidadBeneficios de este algoritmo:

▫Distribuye la carga de manera uniforme.▫Aprovecha la afinidad de caché.▫Reduce al mínimo la competencia por las listas.

Page 36: Sistemas Con Multiples Procesadores

Espacio compartidoNo es más que la calendarización de múltiples subprocesos al mismo tiempo entre múltiples CPUs.El algoritmo consiste en:

▫ El calendarizador ve si hay CPUs desocupadas.▫ Se concede a cada subproceso una CPU.▫ Cada subproceso retiene su CPU hasta que termina.

Page 37: Sistemas Con Multiples Procesadores

Espacio compartido

Page 38: Sistemas Con Multiples Procesadores

Espacio compartidoVentaja:

▫Eliminación de la multiprogramación, con lo cual se ahorra el gasto adicional de las conmutaciones de contexto.

Desventaja:▫ Tiempo desperdiciado cuando una CPU se

bloquea y no tiene nada que hacer en tanto el subproceso no esté disponible

Page 39: Sistemas Con Multiples Procesadores
Page 40: Sistemas Con Multiples Procesadores

Calendarización tipo pandillaSe deriva de la co-calendarización . Consiste de tres partes:

▫Los grupos de subprocesos relacionados se calendarizan como una sola unidad, una pandilla.

▫Todos los miembros de una pandilla se ejecutan de manera simultánea.

▫Todos los miembros de la pandilla inician y terminan sus porciones de tiempo juntos.

Page 41: Sistemas Con Multiples Procesadores

Calendarización tipo pandilla

Page 42: Sistemas Con Multiples Procesadores

Calendarización tipo pandillaLa idea es hacer que todos los subprocesos de un proceso se ejecuten juntos, de modo que si uno de ellos envía una solicitud a otro, éste recibirá casi de inmediato el mensaje y podrá contestar de forma casi inmediata.

Page 43: Sistemas Con Multiples Procesadores

MULTICOMPUTADORASSon CPUs fuertemente acopladas que no comparten memoria. Cada una tiene su propia memoria. También conocidos como computadoras agrupadas y agrupamiento de estaciones de trabajo.Son fáciles de construir , el secreto está en diseñar ingeniosamente la red de interconexión y la tarjeta de interfaz.

Page 44: Sistemas Con Multiples Procesadores

MULTICOMPUTADORASLa meta es enviar mensajes en una escala de tiempo de microsegundos, en lugar de acceder a la memoria en una escala de tiempo de nanosegundos, y esto es más sencillo, económico y fácil de lograr.

Page 45: Sistemas Con Multiples Procesadores

Hardware de multicomputadoraUn nodo básico de una multicomputadora consiste en una CPU, memoria, una interfaz de red y a veces un disco duro.El adaptador gráfico, teclado, monitor casi siempre están ausentes.Es común enlazar cientos o miles de nodos para formar una multicomputadora.

Page 46: Sistemas Con Multiples Procesadores

Tecnología de interconexión

Page 47: Sistemas Con Multiples Procesadores

Tecnología de interconexiónEn las multicomputadoras se usan dos clases de esquemas de conmutación:

▫En la primera cada mensaje se divide en fragmentos llamados paquetes. Conmutación de paquetes tipo almacenar y reenviar, es flexible y eficiente pero tiene el problema de que aumenta la latencia (retraso) a través de la red de interconexión.

Page 48: Sistemas Con Multiples Procesadores

Tecnología de interconexión▫Conmutación de circuitos, El primer conmutador

establece primero un camino hasta el conmutador destino, luego los bits se «bombean» sin escalas desde el origen al destino, requiere de una fase de preparación , después de enviar el paquete desmantela el camino. Una variación de esto es el enrutamiento tipo wormhole que divide cada paquete en subpaquetes y permite que el primero inicie su viaje aun antes que se haya terminado de construir el trayecto.

Page 49: Sistemas Con Multiples Procesadores

Tecnología de interconexión

Page 50: Sistemas Con Multiples Procesadores

Interfaces de redEn casi todas las multicomputadoras, la tarjeta de interfaz tiene algo de RAM para contener los paquetes que salen y llegan.Se usa este diseño ya que muchas redes de interconexión son síncronas.El empleo de una RAM dedicada en la tarjeta de interfaz elimina el problema de no garantizar el flujo continuo hacia la red.

Page 51: Sistemas Con Multiples Procesadores

Interfaces de red

Page 52: Sistemas Con Multiples Procesadores

Software de comunicación de bajo nivel

Para evitar el copiado excesivo de paquetes, muchas multicomputadoras establecen una correspondencia directa entre la tarjeta de interfaz y el espacio de usuario y permiten al proceso de usuario colocar los paquetes en la tarjeta en forma directa, sin participación del kernel.

Page 53: Sistemas Con Multiples Procesadores

Comunicación entre nodos e interfaces de red

Page 54: Sistemas Con Multiples Procesadores

Software de comunicación en el nivel de usuarioLos procesos que se ejecutan en diferentes CPUs de una multicomputadora se comunican enviandose mensajes.El sistema operativo ofrece un mecanismo para enviar y recibir mensajes y los procedimientos de biblioteca ponen esas llamadas subyacentes a dispocisión de los procesos de usuario.

Page 55: Sistemas Con Multiples Procesadores

Envío y recepciónPuede reducirse a dos llamadas (de biblioteca)

send(dest, &apuntm); receive(dir, &apuntm);

La primera envía el mensaje y hace que el invocador se bloquee hasta que se haya enviado.La segunda hace que el invocador se bloquee hasta que llegue el mensaje.

Page 56: Sistemas Con Multiples Procesadores

Envío y recepciónUn problema es el direccionamiento, puesto que las multicomputadoras son estáticas con un numero fijo de procesadores , la forma mas fácil de manejar dicho direccionamiento es hacer que dir sea una dirección de dos partes, consistente en un numero de CPU y un numero de proceso o puerto en la CPU direccionada. Así cada CPU puede manejar sus propias direcciones sin peligro de conflictos.

Page 57: Sistemas Con Multiples Procesadores

Fig. 8-20. a) Llamada send bloqueadora

Page 58: Sistemas Con Multiples Procesadores

Llamadas no bloqueadorasTambién conocidas como llamadas asíncronas.

La ventaja de este esquema es que el proceso transmisor puede seguir computando en paralelo con la

transmisión del mensaje en lugar que la CPU esté inactiva.

Una desventaja es que el transmisor no podrá modificar el búfer de mensaje mientras no se envíe el mensaje.

Page 59: Sistemas Con Multiples Procesadores

Llamadas no bloqueadorasConsecuencias: El proceso sobreescribe el mensaje durante la transmisión, o el proceso no sabe si ya

terminó la transmisión o no .▫Pedir al kernel que copie el mensaje en un bufer.

Page 60: Sistemas Con Multiples Procesadores

Llamadas no bloqueadoras▫Interrumpir al transmisor al terminar de enviar el

mensaje para avisarle que puede disponer otra vez del búfer.

▫Hacer búfer tipo «copiar al escribir»

Page 61: Sistemas Con Multiples Procesadores

Opciones en el lado del transmisor:▫Send bloqueador (la CPU inactiva durante la

transmisión del mensaje)▫Send no bloqueador con copia (se desperdicia tiempo

CPU por el copiado adicional)▫Send no bloqueador con interrupción (difuculta la

programación).▫Copiar al escribir (es probable que tarde o temprano se

necesite un copiado adicional)

Page 62: Sistemas Con Multiples Procesadores

Otra opción son los subprocesos emergentes y los mensajes activos.

Los primeros ejecutan un procedimiento especificado anticipadamente y cuyo parámetro es un apuntador al mensaje que llego.

La segunda opción consiste en ejecutar el código del receptor directo en el manejador de interrupciones, sin tomarse la molestia de crear un subproceso emergente.

Page 63: Sistemas Con Multiples Procesadores

Llamada a procedimiento remoto

Page 64: Sistemas Con Multiples Procesadores

Llamada a procedimiento remotoLa clave es que el procedimiento cliente solo emite una llamada a procedimiento local, al modulo cliente que tiene el mismo nombre del procedimiento servidor.Asi en lugar de efectuar E/S con send y receive , la comunicación remota se efectúa fingiendo una llamada al procedimiento local.

Page 65: Sistemas Con Multiples Procesadores

Aspectos de implementación•Con llamadas a procedimiento remotos es imposible

pasar apuntadores porque el cliente y el servidor están en espacio de direcciones distintos.

•En lenguajes con tipos dinámicos es casi imposible para el modulo cliente empacar los parámetros, ya que no tiene manera de determinar que tan grandes son.

Page 66: Sistemas Con Multiples Procesadores

Aspectos de implementación•No siempre se puede saber los tipos de los

parámetros. Ej. Printf•Problema con las variables globales, al trasladarse al

una máquina remota, el código fallará ya que no se comparten las variables globales.

«RPC se utiliza ampliamente, pero hay que respetar algunas restricciones y tener cuidado para que funcione bien en la práctica»

Page 67: Sistemas Con Multiples Procesadores

Memoria Compartida Distribuida (DSM)

Page 68: Sistemas Con Multiples Procesadores

Memoria Compartida Distribuida (DSM)

En un sistema con DSM el espacio de direcciones se divide en páginas, las cuales se reparten entre todos los nodos del sistema. Cuando una CPU hace referencia a una dirección que no es local, hay una interrupción de sistema, y el sw de DSM trae la página que contiene la dirección y reinicia la instrucción que generó el fallo, la cual ahora sí logra terminar de ejecutarse.

• Replicación:Modificación del sistema básico, la cual puede mejorar en forma considerable el desempeño, consiste en reproducir o replicar páginas que son de sólo lectura.

Page 69: Sistemas Con Multiples Procesadores

Memoria Compartida Distribuida (DSM)

• Falso Compartimiento:Los sistemas DSM son similares a los multiprocesadores, en ambos sistemas, se hace referencia a una palabra de memoria no local, se trae de su posición actual un fragmento de memoria que contiene la palabra y se coloca en la máquina que hizo la referencia (memoria principal o caché). Una cuestión de diseño importante es el tamaño que debe tener el fragmento.

El problema aparece cuando en una página aparecen variables que no están relacionadas, de modo que cuando un proceso utiliza una de ellas, también recibe la otra. Cuanto mayor sea el tamaño de página efectivo, más a menudo se presentará el problema.

Page 70: Sistemas Con Multiples Procesadores

Memoria Compartida Distribuida (DSM)

• ¿Cómo lograr consistencia secuencial?Si las páginas escribibles no se replican, no hay problema para mantener la consistencia. Existe exactamente una copia de cada página escribible, y se le cambia de lugar en forma dinámica conforme es necesario. Sin embargo, si algún proceso trata de escribir en una página replicada, surge un problema potencial de consistencia porque no es aceptable modificar una copia y dejar las demás como estaban.

Una posibilidad es permitir que un proceso adquiera un bloqueo para una porción del espacio de dirección virtual, y luego efectuar múltiples operaciones de lectura y escritura con

Page 71: Sistemas Con Multiples Procesadores

Memoria Compartida Distribuida (DSM)

la memoria bloqueada. Cuando se quite el bloqueo, los cambios podrán propagarse en otras copias. En tanto una sola CPU puede bloquear a una página en un momento dado, este esquema mantendrá la consistencia.

Como alternativa, cuando una página potencialmente escribible se escribe en realidad por primera vez, se crea una copia limpia y se guarda en la CPU que está realizando la escritura. Es posible obtener bloqueos para la página, actualizarla y liberar dichos bloqueos. Mas tarde, cuando un proceso de una máquina remota trate de obtener un bloqueo para la página, la CPU que la escribió antes comparará el

Page 72: Sistemas Con Multiples Procesadores

Memoria Compartida Distribuida (DSM)

Estado actual de la página con la copia limpia y creará un mensaje enumerando todas las palabras que han cambiado. Esta lista se envía entonces a la CPU que desea adquirir el bloqueo para que pueda actualizar su copia en lugar de anular su validez.

Page 73: Sistemas Con Multiples Procesadores

Calendarización de Multicomputadoras

En un multiprocesador, todos los procesos residen en la misma memoria. Cuando una CPU termina su tarea actual, escoge un procesos y lo ejecuta. En una multicomputadora es distinto. Cada nodo tiene su propia memoria y su propio conjunto de procesos. La CPU 1 no puede decidir de repente ejecutar un proceso situado en el nodo 4 sin realizar primero una cantidad considerable de trámites para conseguirlo. Esta diferencia implica que la calendarización en las multicomputadoras es mas fácil, pero la asignación de procesos a nodos es mas importante.

Page 74: Sistemas Con Multiples Procesadores

Calendarización de Multicomputadoras

• Algoritmo de multiprocesador más simple:Mantener una sola lista central de procesos listos no funciona porque cada proceso sólo puede ejecutarse en la CPU en la que está actualmente. No obstante cuando sea un proceso puede decidirse donde colocarlo.

Dado que cada nodo tiene sus propios procesos, puede usarse cualquier algoritmo de calendarización local.

Page 75: Sistemas Con Multiples Procesadores

Balanceo de Carga.

Se ha propuesto un gran número de algoritmos de asignación de procesador (es decir, nodo). Las diferencias radican en lo que se supone conocido y en lo que se desea lograr. Entre las propiedades de un proceso que podrían conocerse están las necesidades de tiempo de CPU, el consumo de memoria y la cantidad de comunicación con todos los demás procesos. Entre las posibles metas están reducir al mínimo el ancho de banda total de comunicación y garantizar la equidad a los usuarios y procesos.

Page 76: Sistemas Con Multiples Procesadores

Balanceo de Carga.

• Un algoritmo determinista por teoría de grafos:Si el número de procesos es mayor que el número de procesadores, k, será preciso asignar varios procesos a cada CPU. Lo que se busca es realizar una asignación a modo de reducir el mínimo tráfico de red.

El sistema puede representarse mediante un grafo ponderado, en el que cada vértice es un proceso y cada arco representa el flujo de mensajes entre 2 proceso.

Page 77: Sistemas Con Multiples Procesadores

Balanceo de Carga.

Page 78: Sistemas Con Multiples Procesadores

Balanceo de Carga.

• Un algoritmo heurístico distribuido iniciado por el transmisor:

Cuando se crea un proceso se ejecuta en el nodo que lo creó, a menos que ese nodo esté sobrecargado. La métrica saber si está o no sobrecargado podría ser el n° de procesos, el tamaño del conjunto de trabajo total o alguna otra. Si el nodo está sobrecargado, escoge otro y le pregunta cuanta carga tiene, si está por debajo del umbral, el nuevo proceso se envía allí, sino se escoge otra máquina para examinar.

Page 79: Sistemas Con Multiples Procesadores

Balanceo de Carga.

Sino se encuentra un anfitrión apropiado después de N pruebas, el proceso se ejecuta en la máquina que lo originó. Lo que se busca es que los nodos con mucha carga traten de deshacer el exceso de trabajo.

Cabe señalar que en condiciones de carga pesada todas la máquinas harán pruebas constantes a otras máquinas, en un intento infructuoso para hallar una que esté dispuesta a aceptar más trabajo. Pocos procesos se enviarán a otros nodos, y podrían incurrirse en un gasto adicional considerable en el intento.

Page 80: Sistemas Con Multiples Procesadores

Balanceo de Carga.

Page 81: Sistemas Con Multiples Procesadores

Balanceo de Carga.

• Un algoritmo heurístico distribuido iniciado por el receptor:

Cada vez que un proceso finaliza, el sistema verifica si tiene suficiente trabajo. Si no lo tiene, escoge una máquina al azar y le pide trabajo. Si esa máquina no tiene nada que ofrecer, pregunta a una segunda y luego una tercera. Si el nodo no encuentra trabajo después de N pruebas, deja de trabajar durante un tiempo, efectúa cualquier trabajo que se encuentre en cola. Si no hay trabajo disponible, la máquina se mantiene inactiva.

Page 82: Sistemas Con Multiples Procesadores

Balanceo de Carga.

Ventaja de este algoritmo es que no somete al sistema a una carga adicional en momentos cruciales. Por transmisor efectúa un gran numero de pruebas precisamente cuando el sistema menos puede tolerarlo. Por receptor cuando el sistema esta muy cargado es poco probable que una máquina no tenga suficiente trabajo y, si sucede, será fácil encontrar trabajo adicional.

Cuando escasea trabajo, éste crea un tráfico de preguntas considerable cuando todas la máquinas subempleadas buscan trabajo con desesperación.

Page 83: Sistemas Con Multiples Procesadores

Balanceo de Carga.

• Un algoritmo por oferta:

Los protagonistas clave en la economía son los proceso, que deben comprar tiempo de CPU para realizar su trabajo, y los nodos, que subastan sus ciclos al mejor postor.

Cuando un proceso quiere iniciar un proceso hijo, indaga quién está ofreciendo el servicio que necesita. Luego determina el conjunto de nodos cuyos servicios puede costear. A partir de este conjunto, el proceso calcula el mejor candidato. Los procesadores reúnen todas las ofertas y toman una decisión. Se informa a los ganadores y se ejecutan.

Page 84: Sistemas Con Multiples Procesadores

Sistemas Distribuidos

Cada nodo en un sistema distribuido es una computadora completa, con un surtido completo de periféricos.

Page 85: Sistemas Con Multiples Procesadores

Sistemas Distribuidos

Page 86: Sistemas Con Multiples Procesadores

Hardware de Red

Hay 2 tipos principales de redes:▫Redes de Área Local (LAN)▫Redes de Área Amplia (WAN)

• Ethernet:

Consiste en un cable coaxial al que están conectadas varias computadoras. En la primera versión de éste, una computadora se conecta al cable coaxial perforándolo hasta su centro y atornillarlo en el agujero un cable que conducía a la computadora. Se denominaba conector vampiro.

Page 87: Sistemas Con Multiples Procesadores

Hardware de Red

para enviar un paquete por Ethernet, lo primero que hace una computadora es «escuchar» en el cable para ver si alguna otra computadora está transmitiendo. Si no oye nada, inicia la transmisión del paquete, que consta de un encabezado corto seguido de una carga útil de 0 a 1500 bytes. Si el cable está en uso, la computadora simplemente espera hasta que termine la transmisión.

Page 88: Sistemas Con Multiples Procesadores

Hardware de Red

Page 89: Sistemas Con Multiples Procesadores

Hardware de Red

• Internet:

Consta de 2 tipos de computadoras:▫Anfitrionas (Hosts): Computadoras personales▫Enrutadores (Routers): Computadoras de conmutación

especializadas que aceptan paquetes recibidos por una de muchas líneas de entrada y los reenvían por una de muchas líneas de salida. Los enrutadores se comunican entre sí para formar grandes redes, y cada enrutador tiene cables o fibras que conducen a muchos otros enrutadores y anfitriones.

Page 90: Sistemas Con Multiples Procesadores

Servicios y Protocolos de Red

Page 91: Sistemas Con Multiples Procesadores

Servicios y Protocolos de Red

• Servicios de Red:

El servicio orientado a conexiones sigue el modelo del sistema telefónico, el usuario del servicio primero establece una conexión, la usa y luego la libera. El aspecto fundamental de una conexión es que actúa como un tubo: el transmisor mete objetos (bits) por un extremo y el receptor los saca en el mismo orden por el otro extremo.

El servicio sin conexiones sique el modelo del sistema postal. Cada mensaje lleva la dirección de destino completa, y c/u se enruta a través del sistema con independencia de todos los demás.

Page 92: Sistemas Con Multiples Procesadores

Servicios y Protocolos de Red

Algunos servicios son confiables en el sentido de que nunca pierden datos. Por lo regular, un servicio confiable se implementa obligando al receptor a confirmar la recepción de cada mensaje devolviendo un paquete de acuse.

El servicio confiable orientado a conexiones tiene 2 variantes menores:▫Las sucesiones de mensajes: se conservan las fronteras de

los mensajes▫Los flujos de bytes: sin fronteras de mensajes.

Page 93: Sistemas Con Multiples Procesadores

Servicios y Protocolos de Red

No todas las aplicaciones requieren conexiones. El servicio sin conexiones no confiable (es decir, sin acuses) también se conoces como servicio de datagramas.

Un servicio mas es el servicio de solicitud – contestación. Aquí el remitente transmite un solo datagrama que contiene una solicitud; la respuesta contiene la contestación.

Page 94: Sistemas Con Multiples Procesadores

Protocolos de Red

Page 95: Sistemas Con Multiples Procesadores

Protocolos de Red

Los protocolos clave que usan los sistemas distribuidos son los 2 protocolos principales de internet:▫ IP (Protocolo Internet): protocolo de datagramas en el que

un transmisor inyecta un datagrama de hasta 64 kb en la red y tiene la esperanza de que llegue. No ofrecen garantías. El datagrama podría fragmentarse en paquetes más pequeños al atravesar el internet y ensamblarse en el orden correcto cuando llegan a su destino.

Page 96: Sistemas Con Multiples Procesadores

Protocolos de Red

IP v4: inicia un encabezado de 40 bytes que contiene una dirección de 32 bits al igual que la de destino. Éstas se denominan direccione IP.

IP v6

▫TCP (Protocolo de Control de Transmisión): se coloca una capa arriba de IP, la cual utiliza para proporcionar flujos orientados a conexiones. Lo primero que se hace un proceso es establecer la conexión con un proceso remoto. El proceso se especifica dando la dirección IP de una máquina y un número de puerto en ella.

Page 97: Sistemas Con Multiples Procesadores

Protocolos de Red

▫Los procesos interesados en recibir conexiones entrantes «escuchan» en ese puerto. Una vez hecho esto, el proceso transmisor simplemente bombea bytes por la conexión y se garantiza que saldrán por el otro extremo sin alteración y en el orden correcto.

Page 98: Sistemas Con Multiples Procesadores

Protocolos de Red

Page 99: Sistemas Con Multiples Procesadores

Protocolos de Red

• Sistema de Nombres de Dominio (DNS):

Una base de datos que asigna nombres ASCII a los anfitriones con base en direcciones IP. Así, es posible emplear el nombre DNS en lugar de la dirección IP correspondiente

192.168.0.2 strellita.zimbra.com

Page 100: Sistemas Con Multiples Procesadores

Middleware basado en documentos

Page 101: Sistemas Con Multiples Procesadores

¿Qué es middleware?

• Software de conectividad que ofrece un conjunto de servicios que hacen posible el funcionamiento de aplicaciones distribuidas sobre plataformas heterogéneas.

• Capa de abstracción de software distribuida, que se sitúa entre las

capas de aplicaciones y las capas inferiores (sistema operativo y red).

• El middleware abstrae de la complejidad y heterogeneidad de las redes de comunicaciones subyacentes, así como de los sistemas operativos y lenguajes de programación, proporcionando una API para la fácil programación y manejo de aplicaciones distribuidas.

Page 102: Sistemas Con Multiples Procesadores

World Wide Web(WWW)

•Paradigma: Cada computador puede almacenar 1 ó más documentos (páginas web), y esta contiene texto, imágenes, sonido, etc., así como hipervínculos(apuntadores a otras páginas web).

•Una página web puede ser accedida mediante un programa conocido como navegador web.

•Web es un gigantesco grafo dirigido de documentos que puede apuntar a otros documentos.

Page 103: Sistemas Con Multiples Procesadores
Page 104: Sistemas Con Multiples Procesadores

•Cada página web tiene URL única(Localizador uniforme de recursos).

•protocolo://nombre-DNS/nombre-archivo

•http://www.acm.org/dl/faq.html

•Cliente-Servidor

•Usuario(Cliente) - Sitio Web(Servidor)

Page 105: Sistemas Con Multiples Procesadores

¿Cómo funciona WWW?1. El navegador pregunta a DNS el IP sitio

www.acm.org2. DNS contesta 199.222.69.1513. Conexión puerto 80 en 199.222.69.1514. Navegador solicita dl/faq.html5. Servidor www.acm.org envía dl/faq.html6. La conexión TCP se libera7. El navegador exhibe el texto de dl/faq.html8. El navegador muestra las imágenes de dl/faq.html

Page 106: Sistemas Con Multiples Procesadores

Middleware basado en el sistema de archivos

Page 107: Sistemas Con Multiples Procesadores

• La idea detrás de la web es: hacer que un sistema distribuido se vea como una gigantesca colección de documentos vinculados.

•Un sistema distribuido semeje un enorme sistema de archivos.

Page 108: Sistemas Con Multiples Procesadores

Modelo de transferencia•Modelo subir/bajar•Modelo acceso remoto

Page 109: Sistemas Con Multiples Procesadores

Jerarquía de directorios

Page 110: Sistemas Con Multiples Procesadores

Transparencia de nombres•Transparencia de ubicación.▫Implica que el nombre de ruta no da idea de donde

está situado el archivo/servidor1/dir1/dir2/x▫Este sistema tiene transparencia de ubicación

• Independencia de ubicación./servidor1/dir1/dir2/x/servidor2/dir1/dir2/x▫Un sistema en que los archivos puedan cambiarse de

lugar sin que cambie su nombre, tiene independencia de ubicación.

Page 111: Sistemas Con Multiples Procesadores

Nombres de archivos y directorios Sistema Distribuido•Nombre de máquina + ruta▫/máquina/ruta o máquina:ruta

•Montar sistemas de archivos remotos en la jerarquía de archivos local.

•Un solo espacio de nombre que se ve igual desde todas las máquinas.

Page 112: Sistemas Con Multiples Procesadores

Semántica del comportamiento de archivos

Page 113: Sistemas Con Multiples Procesadores

Sistemas de middleware basado en sistemas de archivos•AFS (Andrew File System)•Proveer a cada profesor y estudiante una potente estación

de trabajo UNIX, pero con un sistemas de archivos compartidos.

•El sistema de archivos se utilizaría como middleware para convertir a las estaciones de trabajo en un sistema coherente.

•Usuarios(Unix Venus)•Servidor de Archivos(Unix)•Grupos de usuarios «células»•Celulás: Red LAN, conjunto de redes LAN o departamento

académico.

Page 114: Sistemas Con Multiples Procesadores
Page 115: Sistemas Con Multiples Procesadores

Middleware basado en objetos compartidos

•Paradigma: En lugar de decir todo es un documento, todo es un archivo, decimos todo es un objeto.

•Objeto es una colección de variables que se agrupan con un conjunto de procedimientos, llamados métodos.

•No se permite a los procesos acceso a las variables de manera directa, seles exige invocar los métodos.

Page 116: Sistemas Con Multiples Procesadores

CORBA•Sistema basado en objetos en tiempo de ejecución.•Cliente-Servidor, procesos clientes en máquinas clientes

pueden invocar operaciones con objetos situados en maquinas servidoras (quizás remotas).

•Para que un cliente (plataforma X) se comunique con un servidor (plataforma Y), se interponen los agentes de solicitud de objetos (ORB) entre ellos para hacerlos compatibles.

•Se definen mediante un interfaz en un lenguaje IDL(Lenguaje Definición Interfaz).

•Métodos a exportar y los parámetros.

Page 117: Sistemas Con Multiples Procesadores

Desventaja CORBAUn objeto dado está situado en un solo servidor, el desempeño será pésimo en el caso de objetos que se usa mucho en clientes diseminados por todo el mundo.

Page 118: Sistemas Con Multiples Procesadores

Globe

•Objetos replicados▫Si solo hay una copia de un objeto popular al que millones

de clientes quieren accesar, este se asfixiaría bajo el peso de la solicitud.

▫Ejemplo: objetos que mantienen el precio de las acciones, o marcadores deportivos.

▫La replicación permitiría distribuir la carga entre las copias.

Page 119: Sistemas Con Multiples Procesadores

•Flexibilidad▫Sistema con millones de usuarios, no existe forma de

ponerse de acuerdo con el lenguaje de programación, estrategia de replicación, modelo de seguridad, etc.

▫El sistema debe considerar que los distintos usuarios y los diferentes objetos se comporten de diferente manera, y proporcione un modelo general coherente

Page 120: Sistemas Con Multiples Procesadores
Page 121: Sistemas Con Multiples Procesadores
Page 122: Sistemas Con Multiples Procesadores
Page 123: Sistemas Con Multiples Procesadores

Middleware basado en coordinación• Linda•Publicar/Suscribir• Jini

Page 124: Sistemas Con Multiples Procesadores