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











