miércoles, 2 de diciembre de 2015

MULTIPROCESADORES






ESCUELA SUPERIOR POLITÉCNICA AGROPECUARIA DE MANABÍ MANUEL FÉLIX LÓPEZ


CARRERA INFORMÁTICA





TEMA:
MULTIPROCESADORES



AUTOR:

JOSE R. CEDEÑO ZAMBRANO

                                                                                                

FACILITADORA:

ING.HIRAIDA SANTANA.

CALCETA, NOVIEMBRE 2015




INTRODUCCION
Algunos diseñadores de computadoras han mantenido la ilusión de crear una computadora poderosa simplemente conectando muchas computadoras pequeñas. Esta visión es la base para la creación de sistemas con múltiples procesadores, sistemas escalables tanto en hardware como en software, de manera que los consumidores puedan adquirir un sistema con el número de procesadores que su presupuesto les permita, pero con la posibilidad de incrementar el número de procesadores y en espera de que el software los utilice para incrementar el rendimiento. El software escalable también implica que el sistema pueda continuar operando en presencia de hardware roto, esto es, si un procesador falla en un sistema con n procesadores, el sistema deberá continuar bajo servicio con n – 1 procesadores.
Además, los sistemas multiprocesadores deben tener el más alto rendimiento absoluto – deben ser más rápidos que el sistema uniprocesador más rápido. Actualmente el microprocesador es el procesador más efectivo en costo y si se considera que un procesador (un chip-único) puede soportar una carga de trabajo en tiempo compartido, entonces un multiprocesador compuesto de muchos chips-únicos debe ser más efectivo que construir un uniprocesador de alto rendimiento buscando otro tipo de tecnología.
A pesar de que los uniprocesadores han ido incorporando soporte hardware para explotar los diferentes niveles de paralelismo y mejorar el rendimiento de las aplicaciones (paralelismo a nivel de instrucción o ILP, a nivel de datos o DLP, y a nivel de threads o TLP), los speedups alcanzados en estas aplicaciones no han sido significativamente grandes, ya sea por motivos tecnológicos o bien por las necesidades concretas de las aplicaciones.








MULTIPROCESADORES
Los multiprocesadores son computadores que tienen memoria compartida y se pueden clasificar en UMA (uniform memory access), NUMA (nonuniform memory access) y COMA (cache only memory access).
Un multiprocesador con memoria compartida (o sólo multiprocesador, de aquí en adelante) es un sistema de cómputo en el que dos o más CPUs comparten todo el acceso a una RAM común. Un programa que se ejecuta en cualquiera de las CPUs ve un espacio normal de direcciones virtuales (por lo general paginadas). La única propiedad inusual que tiene este sistema es que la CPU puede escribir cierto valor en una palabra de memoria y después puede volver a leer esa palabra y obtener un valor distinto (tal vez porque otra CPU lo cambió). Si se organiza en forma correcta, esta propiedad forma la base de la comunicación entre procesadores: una CPU escribe ciertos datos en la memoria y otra lee esos datos.





ARQUITECTURA DE MULTIPROCESADORES
Los nombres que reciben las arquitecturas multiprocesador UMA y NUMA tienen que ver con el tiempo de acceso a la memoria principal, no teniéndose en cuenta la diferencia de tiempo entre un acierto o un fallo en caché. De lo contrario, también deberíamos considerar arquitectura NUMA a cualquier sistema con jerarquía de memoria, incluidos los uniprocesadores.


UMA
En este tipo de arquitectura, como bien dice su nombre, todos los accesos a memoria tardan el mismo tiempo. Seguramente podemos pensar que es difícil que tengamos el mismo tiempo de acceso si la memoria, aunque compartida, está dividida en módulos a los que se accede a través de una red de interconexión basada en switches. Eso es cierto y, para conseguir esta uniformidad de acceso, se tiene que aumentar el tiempo de los accesos más rápidos.






UMA  CON INTERRUPTORES DE BARRAS CRUZADAS
Aun con la mejor caché, el uso de un solo bus limita el tamaño de un multiprocesador UMA a 16 o 32 CPUs, aproximadamente. Para lograr algo más se necesita un tipo distinto de interconexión. El circuito más simple para conectar n CPUs a k memorias es el interruptor (conmutador) de barras cruzadas.



 








NUMA
En los multiprocesadores NUMA, a diferencia de los UMA, los accesos a memoria pueden tener tiempos distintos. En estas máquinas la memoria también está compartida, pero los módulos de memoria están distribuidos entre los diferentes procesadores con el objetivo de reducir la contención de acceso a memoria. El módulo de memoria que está junto a un procesador en un mismo nodo recibe el nombre de memoria local a este procesador. Así, los accesos de un procesador a su memoria  local suelen ser mucho más rápidos que los accesos a la memoria local de otro procesador. El método más popular para construir grandes multiprocesadores CC-NUMA en la actualidad es el multiprocesador basado en directorios.




SISTEMAS OPERATIVOS MULTIPROCESADOR
La manera más simple posible de organizar un sistema operativo multiprocesador es dividir  estáticamente la memoria y su propia copia privada del sistema operativo. En efecto, la n CPUs opera entonces como n computadoras independientes. Una optimización obvia es permitir que todas las CPUs compartan el código del sistema operativo y obtengan copias privadas sólo de las estructuras de datos del sistema operativo



 





                                                                                                                           
MULTIPROCESADORES MAESTRO-ESCLAVO
Tal y como su nombre lo indica, en este tipo de  sistema operativo se designa un procesador maestro en el que se encarga de ejecutar el sistema operativo, ejecutando los trabajos de planificación, controlando a todos los procesadores esclavos.
La ejecución de programas en paralelo es posible dado que el procesador maestro planifica y divide las operaciones entre los procesadores esclavos,
La característica principal de este modelo es también su debilidad, ya que el hecho de tener un solo procesador maestro ocasiona un cuello de botella, ya que el procesador maestro solo puede manejar un cierto número de procesadores esclavos con eficiencia.



 








MULTIPROCESADORES SIMÉTRICOS
El SMP (Multiprocesador simétrico), elimina esta asimetría. Hay una copia del sistema operativo en memoria, pero cualquier CPU puede ejecutarlo. Cuando se hace una llamada al sistema, la CPU en la que se hizo la llamada al sistema atrapa para el kernel y procesa la llamada al sistema.
Los sistemas SMP permiten que cualquier procesador trabaje en cualquier tarea sin importar su localización en memoria; con un propicio soporte del sistema operativo, estos sistemas pueden mover fácilmente tareas entre los procesadores para garantizar eficientemente el trabajo.



 








PLANIFICACIÓN EN MULTIPROCESADORES

Consideraremos un multiprocesador como una máquina con un conjunto de procesadores que comparten un mismo espacio de direcciones de memoria física. Por esta razón, también se les llama multiprocesadores de memoria compartida o fuertemente acoplados, a diferencia de los multicomputadores, donde los elementos de proceso no comparten memoria física, y que no vamos a tratar aquí. Sin embargo hay que recordar que en un multiprocesador moderno existen niveles de memoria cache (normalmente dos, interna y externa) privados para cada procesador, lo que, como veremos, tiene relevancia para la elección de una política de planificación.

PLANIFICACIÓN TEMPORAL.
Define la política de planificación en cada procesador individual, exactamente igual que si de un monoprocesador se tratase, salvo por el hecho de que en los multiprocesadores es menos relevante para el rendimiento la política que se elija, y tanto menos cuanto más procesadores. En la planificación temporal se decide qué procesos se ejecutan.



 


                                
                                                                                             





PLANIFICACIÓN ESPACIAL
Define cómo se asignan los procesadores a los diferentes procesos. En la planificación espacial se decide en qué procesadores se ejecutan los procesos.









                         



BIBLIGRAFIAS

Tanenbaum, A. 2009. Sistemas operativos modernos. Pearson educación de México. 3 ed. México. p 526-547.

Jiménez, D.2013. Multiprocesadores y multicomputadores. España. Formato pdf disponible en:
https://www.exabyteinformatica.com/uoc/Informatica/Arquitecturas_de_computadores_avanzadas/Arquitecturas_de_computadores_avanzadas_(Modulo_2).pdf