miércoles, 2 de diciembre de 2015

Multiprocesadores



Miércoles 02 de diciembre del 2015
TEMA: MULTIPROCESADORES
INTRODUCCIÓN
 Son sistemas formados por un cierto número de procesadores que trabajan en paralelo. La comunicación entre ellos se realiza mediante el empleo de variables en memoria compartida.
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).
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.


MULTIPROCESADORES
Los multiprocesadores son populares y atractivos debido a que ofrecen un modelo de comunicación simple: todas las CPUs comparten una memoria común.
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.
En su mayor parte, los sistemas operativos multiprocesadores son sólo sistemas operativos regulares. Manejan las llamadas al sistema, administran la memoria, proveen un sistema de archivos administran los dispositivos de E/S. Sin embargo, hay ciertas áreas en las que tienen características únicas. Estas áreas son la sincronización de procesos, la administración de recursos y la programación de tareas. A continuación analizaremos con brevedad el hardware de los multiprocesadores y después pasaremos a ver las cuestiones relacionadas con estos sistemas operativos.

Hardware de Multiprocesador
Todos los multiprocesadores tienen la propiedad de que cada CPU puede direccionar toda la
memoria, algunos tienen la característica adicional de que cada palabra de memoria se puede leer con la misma velocidad que cualquier otra palabra de memoria.
Estas máquinas se conocen como:
        Multiprocesadores UMA (Uniform Memory Access, Acceso uniforme a la memoria)
       Multiprocesadores NUMA (Non-uniform Memory Access, Acceso no uniforme a la memoria)

Multiprocesadores UMA (Acceso Uniforme a la Memoria)
Es una arquitectura de memoria compartida utilizada en computación paralela.
todos los accesos a memoria tarda el mismo tiempo. Para conseguir esta uniformidad de acceso, se tiene que aumentar el tiempo de los accesos más rápidos.
Estos computadores tienen todos sus procesadores interconectados a través de un mecanismo de switches a una memoria compartida centralizada


Multiprocesadores UMA que utilizan interruptores de barras cruzadas

Este es uno de los circuitos mas simples para conectar una cpu . Los interruptores de barras cruzadas ya antes mencionados se han utilizado por décadas en los puntos de intercambio de los conmutadores telefónicos para conectar un grupo de líneas entrantes a un conjunto de líneas salientes de manera arbitraria. La cual en cada intersección que esta tenga de una linea horizontal la que vendría siendo entrante y la vertical  que vendría siendo la saliente en estas dos hay un punto de cruce el cual es un pequeño interruptor que puede estar abierto o cerrado en sentido eléctrico, dependiendo   de si las líneas horizontal y vertical van a conectarse o no También son posibles muchas otras combinaciones. De hecho, el número de combinaciones es igual al número de las distintas formas en que se pueden colocar ocho torres en un tablero de ajedrez.




Multiprocesadores NUMA(Acceso no uniforme a la Memoria)
Esta concesión nos lleva a la idea de los multiprocesadores NUMA, como dijimos. Al igual que sus parientes UMA, proveen un solo espacio de direcciones a través de todas las CPUs, pero a diferencia de las máquinas UMA, el acceso a los módulos de memoria locales es más rápido que el acceso a los remotos. Por ende, todos los programas UMA se ejecutarán sin cambios en las máquinas NUMA, pero el rendimiento será peor que en una máquina UMA a la misma velocidad de reloj.

Multiprocesadores maestro-esclavo
En la siguiente figura se muestra un segundo modelo, donde nos demuestra que todas las llamadas al sistema se redireccionan  a la cpu numero 1 para que las procese, la misma que puede ejecutar el proceso si este tiene tiempo de sobra. al modelo antes mencionado se le conoce como maestro-esclavo, donde la cpu 1 se comporta como maestro  y las demas son los esclavos.


Multiprocesadores simétricos

El SMP (Multiprocesador simétrico). Hay una copia del sistema operativo en memoria, pero cualquier CPU puede ejecutarlo. Cuando este realiza una llamada al sistema, y en el cpu donde se realizó la llamada al sistema lo atrapa para el kernel y la procesa. También elimina el cuello de botella de la cpu.  
 
Planificación de Multiprocesadores
En los multiprocesadores, es necesario determinar qué es lo que se va a planificar. En los días de antaño, cuando todos los procesos tenían un solo hilo, los procesos eran los que se planificaban; no había nada más que se pudiera planificar.


Todos los sistemas operativos modernos soportan procesos multihilo, lo cual complica aún más la planificación. Es importante saber si los hilos son de kernel o de usuario. Si la ejecución de hilos se lleva a cabo mediante una biblioteca en espacio de usuario y el kernel no sabe nada acerca de los hilos, entonces la planificación se lleva a cabo con base en cada proceso, como siempre.
Si el kernel ni siquiera sabe que los hilos existen, es muy difícil que pueda planificarlos.
 
  
Planificación temporal
En la planificación temporal es donde se define cada procesador individual, es igual que cuando se extrae de un monoprocesador, la diferencia es que en un multiprocesador es meno relevante para el rendimiento. En la planificación temporal se decide qué procesos se ejecutan.


Planificación espacial
Esta es por la cual se de la asignación de los procesadores a los diferentes procesos. Y también donde se deciden en que procesadores se ejecutan los procesos.

                                      
CONCLUSIONES
*      Tener claro que un  multiprocesador consiste en dos o más CPUs que comparten una RAM comúny que las CPUs se pueden interconectar mediante un bus, un conmutador de barras cruzadas o una red de conmutación multietapa.


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