SISTEMAS DE MULTIPLES
PROCESADORES
ANTECEDENTES
1. MAYOR VELOCIDAD DE RELOJ
Limitaciones:
o Teora especial de la relatividad de Einstein:
Ninguna seal elctrica se puede propagar ms rpido que la velocidad de la luz,
que es de aproximadamente 30 cm/nseg en el vaco y 20 cm/nseg en el alambre
de cobre o la fibra ptica
2. MEJOR DISIPACION DE CALOR
Limitaciones:
Entre ms rpido opera la computadora, ms calor genera y entre ms pequea sea, ms
difcil es deshacerse de este calor.
3. MAYOR VELOCIDAD DE PROCESAMIENTO
Metodologa
Computadoras masivamente en paralelo
Sistemas de mltiples procesadores
4. INTERNET
Protocolo para un sistema de control militar tolerante a fallas
Se hizo popular entre los cientficos computacionales universitarios
Vincular miles de computadoras en todo el mundo para que trabajen en conjunto en
problemas cientficos grandes
MULTIPROCESADORES
1.1. HARWARE DE MULTIPROCESADOR
Multiprocesadores UMA con arquitecturas basadas en bus
o Caractersticas
Se basan en un solo bus
Utilizan el mismo bus para comunicarse
o Problemas
Si el bus est ocupado, la CPU espera solo hasta que el bus este
inactivo
Su solucin:
- Agregar una cache a cada CPU. La cache puede estar dentro del chip
de la CPU, aun lado de esta, en el tablero del procesador o puede ser
alguna combinacin de las tres opciones anteriores.
- Otra posibilidad es un diseo donde cada CPU tiene no solo un
cache, sino tambin una memoria privada local que utiliza mediante
un bus dedicado (Privado)
- Lnea de cache
- Protocolo de coherencia de caches: Si alguna otra cach tiene una
copia "sucia" (es decir, modificada), debe escribirla de vuelta a la
memoria para que pueda continuar la escritura, o transferirla
directamente a la CPU que va a realizar la operacin de escritura a
travs del bus. A este conjunto de reglas se le conoce como protocolo
de coherencia de cachs
Multiprocesadores UMA que utilizan interrupciones de barras cruzadas
o Caractersticas
Interruptor (conmutador)de barras cruzadas: Los interruptores de
barras cruzadas se han utilizado por dcadas en los puntos de
intercambio de los conmutadores telefnicos para conectar un grupo
de lneas entrantes a un conjunto de lneas salientes de manera
arbitraria.
Un punto de cruce en cada interseccin de una lnea horizontal
(entrante) y una vertical (saliente)
Una red sin bloqueos: Significa que a ninguna CPU se le niega
nunca la conexin que necesita, debido a que algn punto de cruce
o una lnea ya estn ocupados (suponiendo que el mdulo de
memoria en s est disponible).
Multiprocesadores UMA que utilizan redes de conmutacin Multietapa
o Caractersticas
Este interruptor tiene dos entradas y dos salidas
Los mensajes que llegan en cualquiera de las lneas de entrada se
pueden conmutar a cualquier de las lneas de salida
Se pueden organizar de muchas formas para construir redes de
conmutacin multietapa ms grandes
- RED OMEGA:
* Patrn de cableado de la red omega -> BARAJADO PERFECTO
* Red con bloqueo
Multiprocesadores NUMA
o Caractersticas
Estn limitados a no ms de unas cuantas docenas de CPUs.
Los multiprocesadores de barras cruzadas o de conmutadores
necesitan mucho hardware (costoso) y no son tan grandes.
Ms de 100 CPUs -> Ceder algo: Lo que cede es la idea de que todos
los mdulos de memoria tienen el mismo tiempo de acceso. Esta
concesin nos lleva a la idea de los multiprocesadores NUMA, como
dijimos antes.
o Caractersticas clave
Hay un solo espacio de direcciones visible para todas la CPUs
El acceso a la memoria remota es mediante instrucciones LOAD y
STORE
El acceso a la memoria remota es ms lento que el acceso a la
memoria local
o Mtodo ms popular
Multiprocesador basado en directorios: La idea es mantener una
base de datos que indique dnde est cada lnea de cach y cul es
su estado. Cuando se hace referencia a una lnea de cach, se
consulta la base de datos para averiguar dnde est, y si est limpia
o sucia (modificada). Como esta base de datos se debe consultar en
cada instruccin que hace referencia a la memoria, debe
mantenerse en un hardware de propsito especial, en extremo veloz,
que pueda responder en una fraccin de un ciclo del bus.
Chips Multinucleo
A medida que mejora la tecnologa de fabricacin de chips, los transistores se
estn haciendo cada vez ms pequeos y es posible colocar cada vez ms de
ellos en un chip. A esta observacin emprica se le conoce algunas veces como
Ley de Moare, en honor del ca-fundador de Intel Gordon Moare, quien la
descubri primero. Los chips en la clase del Inlel Core 2 Duo contienen cerca de
300 millones de transistores.
o Snooping: Los circuitos de hardware especiales aseguran que si hay una
palabra presente en dos o ms cachs, y una de las CPUs modifica la
palabra, sta se remueva en forma automtica y atmica de todas las
cachs para poder mantener la consistencia. A este proceso se le conoce
como snooping.
o CMPS( Multiprocesadores a nivel de chip)
o Sistema en un CHIP
1.2. TIPOS DE SISTEMAS OPERATIVOS MULTIPROCESADOR
Cada CPU tiene su propio sistema operativo: La manera ms simple posible de
organizar un sistema operativo multiprocesador es dividir estticamente la
memoria y su propia copia privada del sistema operativo. En efecto, las n CPUs
operan entonces como n computadoras independientes.
o Aspectos Importantes
Cuando un proceso realiza una llamada al sistema, esta se atrapa y
maneja en su propia CPU, usando las estructuras de datos en las
tablas de este sistema operativo
Como cada sistema operativo tiene sus propias tablas, tambin tiene
su propio conjunto de procesos que programa por su cuenta
No hay comparticin de pginas. Puede ocurrir que la CPU 1 tenga
pginas de sobra, mientras que la CPU 2 este paginando en forma
continua. No hay forma de que la CPU 2 pida prestadas algunas
pginas a la CPU 1, ya que la asignacin de memoria es fija.
Si el sistema operativo mantiene una cache un bfer de los bloques
de disco de uso reciente, cada sistema operativo hace esto de una
manera independiente a los dems. Por ende, puede ocurrir que
haya cierto bloque de disco presente y sucio en varias caches de
bfer al mismo tiempo, con lo cual se producirn resultados
inconscientes.
Multiprocesadores Maestro-esclavo
o Problema Principal
Con muchas CPUs , el maestro se convertir en un cuello de botella.
Despus de todo , debe manejar todas las llamadas al sistema de todas
las CPUs
o Caractersticas
Resuelve la mayora de los problemas del primer modelo
Hay una sola estructura de datos que lleva la cuenta de los procesos
listos
Cuando una CPU esta inactiva, pide al sistema operativo en la CPU un
proceso para ejecutarlo , y se le asigna uno
Principal Problema
Multiprocesadores Simtricos
o Caractersticas
Equilibra los procesos y la memoria en forma dinmica, ya que solo
hay un conjunto de tablas del sistema operativo.
Elimina el cuello de botella de la CPU, ya que no hay maestro, pero
introduce sus propios problemas
1.3. SINCRONIZACION DE MULTIPROCESARORES
Caractersticas
o Las regiones crticas de kemel y las tablas se tienen que proteger mediante
mutexes
o El corazn de cualquier protocolo de mutex prctico es una instruccin especial
que permite inspeccionar una palabra de memoria y establecerla en una
operacin
o Se utiliza la instruccin TSL (Probar y establecer bloqueo) para implementar
regiones criticas
o Se observa el uso del popular algoritmo de back off exponencial binario de
Ethernet( Anderson, 1990). En vez de sondear en forma continua, se puede
insertar un ciclo de retraso entre los sondeos. Esto para reducir el trfico en el
bus.
Comparacin entre espera activa y conmutacin
Ejemplo: Suponiendo que la espera activa y realizar un cambio de hilo son
opciones viables, hay que hacer la siguiente concesin. La espera activa
desperdicia ciclos de la CPU de manera directa; evaluar un bloqueo en forma
repetida no es un trabajo productivo. Sin embargo, cambiar de hilo tambin
desperdicia ciclos de la CPU, ya que se debe guardar el estado del hilo actual, se
debe adquirir el bloqueo sobre la lista de procesos listos, hay que seleccionar un
hilo, se debe cargar su estado y debe iniciarse. Adems, La cache de la CPU
contendr todos los bloques incorrectos, por lo que ocurrirn michos fallos de
cache a medida que el nuevo hilo se empiece a ejecutar. Tambin es probable
que ocurran fallos de TLB. En un momento dado se realizara un cambio de vuelta
al hilo original, y le seguirn ms fallos de cache. Adems de los fallos de cache,
se desperdician los ciclos invertidos en estos dos cambios de contexto.
1.4. PLANIFICACION DE MULTIPROCESADORES
Dimensiones a Considerar
o El planificador tiene que decidir que hilo ejecutar
o En cual CPU lo va a ejecutar
Tiempo compartido
o Planificacin inteligente: un hilo que adquiere un bloqueo de espera activa
establece una bandera a nivel de proceso, para mostrar que actualmente tiene un
bloqueo de espera activa. Al liberar el bloqueo, se borra la bandera. As, el
planificador no detiene un hilo que contenga un bloqueo de espera activa, sino que
le da un poco ms de tiempo para que complete su regin crtica y libere el
bloqueo.
o Planificacin por afinidad: la idea bsica es esforzarse en serio por hacer que un
hilo se ejecute en la misma CPU en que se ejecut la ltima vez.
Algoritmo de planificacin de dos niveles
Espacio compartido: A la planificacin de varios hilos al mismo tiempo, esparcidos
sobre varias CPUs, se le conoce como espacio compartido.
o Algoritmo El trabajo ms corto primero
Planificacin por pandilla
o Los grupos de hilos relacionados se programan como una unidad, o pandilla.
o Todos los miembros de una plantilla se ejecutan en forma simultnea, en distintas
CPUs de tiempo compartido
o Todos los miembros de la pandilla inician y terminan sus intervalos en conjunto.
MULTICOMPUTADORAS
Son CPUs con acoplamiento fuerte que no comparten memoria. Cada una tiene su propia
memoria. Estos sistemas tambin son conocidos por una variedad de nombres, incluyendo
clster de computadoras y COWS (Clusters ofWorkstations, Clsteres de estaciones de
trabajo).
1.1. HARDWARE DE UNA MULTICOMPUTADORA
Tecnologa de interconexin
o La topologa de estrella
o La rejilla o malla: Es un diseo bidimensional que se ha utilizado en muchos
sistemas comerciales. Es muy regular y tiene la facilidad de poder escalar a tamaos
mayores. Tiene un dimetro, que es la ruta ms larga entre dos nodos cualesquiera,
y que aumenta slo con base en la raz cuadrada del nmero de nodos.
o Malla doble toroide: una rejilla con los bordes conectados. No slo es ms tolerante
a fallas que la rejilla, sino que el dimetro es tambin menor debido a que las
esquinas opuestas ahora se pueden comunicar en slo dos saltos
o El cubo: constituye una topologa tridimensional regular. Hemos ilustrado un cubo de
2 X 2 X 2, pero en el caso ms general podra ser un cubo de k X k X k.
o El hipercubo
Interfaces de red
1.2. SOFTWARE DE COMUNICACIN DE BAJO NIVEL
Problemas comunes
o Es problemtico hacer una llamada al sistema para asignar la tarjeta y designarla de
un espacio de direcciones virtuales, pero si solo un proceso obtiene la tarjeta :
Solucin: Asignar la tarjeta de interfaz a todos los procesos que la necesitan pero
entonces se requiere un mecanismo para evitar condiciones de competencia.
o El Kernel necesite acceso a la red de interconexin en si, por ejemplo, para acceder
al sistema de archivos en un nodo remoto. No es conveniente que el kernel
comparta la tarjeta de interfaz con los usuarios, ni siquiera cuando hay tiempo
compartido.
Interfaz de comunicacin de nodo a red
1.3. SOFTWARE DE COMUNICACIN A NIVEL USUARIO
Mtodos
o Enviar y recibir
Llamadas con Bloqueo
o Comparacin entre llamadas con Bloqueo y sin bloqueo
Llamadas sin bloqueo
-DESVENTAJA: El emisor no puede modificar el bfer del mensaje sino hasta que
este se haya enviado
-SOLUCIONES
> Hacer que el kernel copie el mensaje en un bfer interno del kernel y
que despus permita que contine el proceso.
> Interrumpir al emisor cuando se haya enviado el mensaje por completo,
para informarle que el bfer est disponible otra vez.
> Hacer que el bfer copie al escribir; es decir, se marca como de solo
lectura hasta que se haya enviado el mensaje. Si el bfer se vuelve a
utilizar antes de enviar el mensaje, se obtiene una copia
1.4. LLAMADA A PROCESAMIENTO REMOTO(RPC)
Aspectos de implementacin
o Problemas
El uso de parmetros tipo apuntador
En los lenguajes con tipificacin dbil como C, es perfectamente clido escribir
un procesamiento que calcule el producto interno de dos vectores (arreglos) sin
especificar la longitud de ninguno. Cada vector podr terminar por un valor
especial conocido solo para el procedimiento que hizo la llamada y el
procedimiento al que llamo.
No siempre es posible deducir los tipos de los parmetros, ni siquiera a partir
de una especificacin formal o del mismo cdigo.
Se relaciona con el uso de las variables globales. Por lo general, los
procedimientos que hacen las llamadas y aquellos de hacerlomediante
parmetros. Si el procedimiento al que se llama se cambia a una maquina
remota, el cdigo fallara debido a que las variables globales yano estn
compartidas.
1.5. MEMORIA COMPARTIDA DISTRIBUIDA (DSM)
Duplicacin
Comparticin falsa
Como lograr una consistencia secuencial
1.6. PLANIFICACION DE MULTICOMPUTADORAS: Es un proceso similar a la planificacin de
multiprocesadores, pero no todos los algoritmos de la primera se aplican a la segunda. Sin
embargo, el algoritmo de multiprocesador ms simple (mantener una sola lista central de
procesos listos) no funciona debido a que cada proceso slo se puede ejecutar en la CPU
en la que se encuentra ubicado. Sin embargo, al crear un nuevo proceso podemos elegir
en dnde colocarlo, por ejemplo para balancear la carga.
1.7. BALANCEO DE CARGA
Algoritmos de asignacin de procesador
o Algoritmo determinstico basado en teora de grafos: Hay una clase de
algoritmos que se estudia mucho para los sistemas que consisten en
procesos con requerimientos de CPU y memoria conocidos, y una matriz
conocida que proporciona la cantidad promedio de trfico entre cada par de
procesos. Si el nmero de procesos es mayor que el nmero de CPUs (k),
habr que asignar varios procesos a cada CPU. La idea es realizar esta
asignacin para minimizar el trfico de red.
o Un algoritmo heurstico iniciado por el emisor: Dice que cuando se crea un
proceso, se ejecuta en el nodo que lo cre a menos que ese nodo est
sobrecargado. La mtrica para sobrecarga podra implicar demasiados
procesos, un conjunto de trabajo total muy grande o alguna otra mtrica. Si
el nodo est sobrecargado, selecciona otro nodo al azar y le pregunta sobre
su carga (usando la misma mtrica). Si la carga de ese nodo es menor a
cierto valor de umbral, el nuevo proceso se enva a ese nodo (Eager y
colabor'ddores, 1986). Si no es menor, se selecciona otra mquina para el
sondeo. Este proceso de sondeo no es indefinido. Si no se encuentra un
host adecuado en N sondeos o menos, el algoritmo termina y el proceso se
ejecuta en la mquina que lo origin
o Un algoritmo heurstico distribuido, iniciado por el receptor: Con este
algoritmo, cada vez que un proceso termina, el sistema comprueba si tiene
suficiente trabajo. De no ser as, selecciona una mquina al azar y le pide
trabajo. Si esa mquina no tiene nada que ofrecer, selecciona una segunda
mquina y despus una tercera. Si no se encuentra trabajo despus de N
sondeos, el nodo deja de pedir trabajo temporalmente, realiza cualquier
trabajo que se haya puesto en cola e intenta de nuevo cuando tennina el
siguiente proceso. Si no hay trabajo disponible, la mquina queda inactiva.
Despus de cierto intervalo fijo, empieza a sondear de nuevo
VIRTUALIZACION
1.1. VENTAJAS
1.2. REQUERIMIENTOS
1.3. PARAVIRTUALIZACION
1.4. VIRTUALIZACION DE LA MEMORIA
1.5. VIRTUALIZACION DE LA E/S
1.6. DISPOSITIVOS VIRTUALES
1.7. MAQUINAS VIRTUALES EN CPUs DE MULTINUCLEO
1. SISTEMAS DISTRIBUIDOS
1.1. CARACTERISTICAS
1.2. HARDWARE DE RED
1.3. PROTOCOLOS Y SERVICIOS DE RED
1.4. MIDDLEWARE BASADO EN DOCUMENTOS
1.5. MIDDLEWARE BASADO EN SISTEMAS DE ARCHIVOS
1.6. MIDDLEWARE BASADO EN OBJETOS
1.7. MIDDLEWARE BASADO EN COORDINACION
1.8. GRIDS(MALLAS)