Вы находитесь на странице: 1из 49
MultiprocesamientoMultiprocesamiento Ing. Laura Saborío Oviedo
MultiprocesamientoMultiprocesamiento
Ing. Laura Saborío Oviedo
ConceptoConcepto Consiste en configurar un sistema con varios procesadores. Actualmente, los empaquetados poseen
ConceptoConcepto
Consiste en configurar un sistema con
varios procesadores.
Actualmente, los empaquetados
poseen varios núcleos de proceso,
pero en grandes empresas se
manejan equipos con gran cantidad
de procesadores.
ConfiabilidadConfiabilidad Si un procesador falla, los demás siguen operando y debe haber un informe de
ConfiabilidadConfiabilidad
Si un procesador falla, los demás
siguen operando y debe haber un
informe de la falla de parte del SO.
Si existe un fallo, se procede a la
reasignación de recursos para evitar
la sobrecarga.
ParalelismoParalelismo No se explota como se debería el paralelismo, lo que se realiza es un
ParalelismoParalelismo
No se explota como se debería el
paralelismo, lo que se realiza es un
incremento en la capacidad de
ejecución en forma secuencial.
El software para explotar el
paralelismo es escaso y complicado.
Lo deseable es que los Sistemas
Operativos y compiladores puedan
detectar e implementar el paralelismo
automáticamente
ParalelismoParalelismo MasivoMasivo Se debe disponer de suficientes procesadores como para que todas las operaciones
ParalelismoParalelismo MasivoMasivo
Se debe disponer de suficientes
procesadores como para que todas
las operaciones que puedan ser
ejecutadas en paralelo puedan ser
asignadas a procesadores separados.
Disponiendo del paralelismo masivo,
¿cuál es el tiempo mínimo requerido
para ejecutar un algoritmo
determinado?.
MetasMetas deldel MultiprocesamientoMultiprocesamiento Confiabilidad Disponibilidad Incremento del poder de la
MetasMetas deldel MultiprocesamientoMultiprocesamiento
Confiabilidad
Disponibilidad
Incremento del poder de la
computación
Diseño modular que proporciona
flexibilidad
Facilidad para expandir la capacidad.
DetecciDeteccióónn automautomááticatica deldel ParalelismoParalelismo Los sistemas de computación obtienen los
DetecciDeteccióónn automautomááticatica deldel
ParalelismoParalelismo
Los sistemas de computación
obtienen los beneficios del
procesamiento concurrente más por la
“multiprogramación” de varios
procesos y menos por la explotación
del “paralelismo” dentro de un solo
proceso.
ParalelismoParalelismo ExplExplíícitocito Es indicado de forma específica por un programador mediante una
ParalelismoParalelismo ExplExplíícitocito
Es indicado de forma específica por un
programador mediante una
“construcción de concurrencia”.
Se pueden utilizar procesadores
separados para ejecutar cada una de las
proposiciones.
Es susceptible de errores de
programación difíciles de detectar y
depurar.
El programador puede omitir tratar
situaciones donde sería aplicable el
paralelismo.
ParalelismoParalelismo ImplImplíícitocito La verdadera esperanza está en la detección automática del paralelismo
ParalelismoParalelismo ImplImplíícitocito
La verdadera esperanza está en la
detección automática del paralelismo
implícito.
Es el paralelismo intrínseco del
algoritmo pero no establecido
explícitamente por el programador.
Los compiladores explotan el
paralelismo implícito mediante las
técnicas de “distribución de ciclos” y
de “reducción de la altura del árbol”.
DistribuciDistribucióónn dede ciclosciclos Una “estructura de ciclos o de repetición” implica la repetición de
DistribuciDistribucióónn dede ciclosciclos
Una “estructura de ciclos o de
repetición” implica la repetición de una
serie de proposiciones (cuerpo del
ciclo) hasta que ocurre alguna
condición de terminación.
EjemploEjemplo dede ciclociclo For i = 1 to 3 Do a(i) = b (i) +
EjemploEjemplo dede ciclociclo
For i = 1 to 3
Do
a(i) = b (i) + c (i);
El procesador secuencial realizará en
secuencia lo siguiente:
ReducciReduccióónn dede lala alturaaltura deldel áárbolrbol Utilizando las propiedades asociativa, conmutativa y
ReducciReduccióónn dede lala alturaaltura deldel
áárbolrbol
Utilizando las propiedades asociativa,
conmutativa y distributiva de la
aritmética, los compiladores pueden:
◦ Detectar el paralelismo implícito en
expresiones algebraicas.
◦ Producir un código objeto para
multiprocesadores que indique las
operaciones que se pueden realizar
simultáneamente.
◦ Reordenar expresiones para que sean
más apropiadas para la computación en
paralelo.
ReducciReduccióónn dede lala alturaaltura deldel áárbolrbol porpor asociatividadasociatividad
ReducciReduccióónn dede lala alturaaltura deldel áárbolrbol
porpor asociatividadasociatividad
ReducciReduccióónn dede lala alturaaltura deldel áárbolrbol porpor conmutatividadconmutatividad
ReducciReduccióónn dede lala alturaaltura deldel áárbolrbol
porpor conmutatividadconmutatividad
ReducciReduccióónn dede lala alturaaltura deldel áárbolrbol porpor distributividaddistributividad
ReducciReduccióónn dede lala alturaaltura deldel áárbolrbol
porpor distributividaddistributividad
OrganizaciOrganizacióónn deldel HWHW deldel MultiprocesadorMultiprocesador Los multiprocesadores se caracterizan por
OrganizaciOrganizacióónn deldel HWHW deldel
MultiprocesadorMultiprocesador
Los multiprocesadores se caracterizan
por los siguientes aspectos:
◦ Un multiprocesador contiene dos o más
procesadores con capacidades
aproximadamente comparables.
◦ Todos los procesadores comparten el acceso
a un almacenamiento común y a canales de
Entrada / Salida, unidades de control y
dispositivos.
◦ Todo está controlado por un Sistema
Operativo que proporciona interacción entre
procesadores y sus programas en los niveles
de trabajo, tarea, paso, archivo y elementos
de datos.
OrganizacionesOrganizaciones mmááss comunescomunes Tiempo compartido o bus común (conductor común). Matriz de
OrganizacionesOrganizaciones mmááss
comunescomunes
Tiempo compartido o bus común
(conductor común).
Matriz de barras cruzadas e
interruptores.
Almacenamiento de interconexión
múltiple.
TiempoTiempo compartidocompartido Usa un solo camino de comunicación entre todas las unidades funcionales. El bus
TiempoTiempo compartidocompartido
Usa un solo camino de comunicación
entre todas las unidades funcionales.
El bus común es en esencia una unidad
pasiva.
Un procesador o procesador de Entrada
/ Salida que desee transferir datos debe
efectuar los siguientes pasos:
◦ Verificar la disponibilidad del conductor y de
la unidad de destino.
◦ Informar a la unidad de destino de lo que se
va a hacer con los datos.
◦ Iniciar la transferencia de datos.
TiempoTiempo CompartidoCompartido Las unidades receptoras deben poder reconocer qué mensajes del bus son enviados
TiempoTiempo CompartidoCompartido
Las unidades receptoras deben poder
reconocer qué mensajes del bus son
enviados hacia ellas y seguir y confirmar las
señales de control recibidas de la unidad
emisora.
Es una organización económica, simple y
flexible pero con una sola vía de
comunicación, por lo cual:
◦ El sistema falla totalmente si falla el bus.
◦ La tasa neta de transmisiones está limitada por
la tasa neta de transmisión del conductor.
◦ La contención por el uso del bus en un sistema
sobrecargado puede ocasionar una seria
degradación.
TiempoTiempo CompartidoCompartido
TiempoTiempo CompartidoCompartido
MatrizMatriz dede BarrasBarras CruzadasCruzadas ee InterruptoresInterruptores Existe un camino diferente para cada
MatrizMatriz dede BarrasBarras CruzadasCruzadas ee
InterruptoresInterruptores
Existe un camino diferente para cada
unidad de almacenamiento, por lo cual
las referencias a dos unidades diferentes
de almacenamiento no son bloqueantes
sino simultáneas y la multiplicidad de
caminos de transmisión puede
proporcionar tasas de transferencia muy
altas .
MatrizMatriz dede BarrasBarras CruzadasCruzadas ee InterruptoresInterruptores
MatrizMatriz dede BarrasBarras CruzadasCruzadas ee
InterruptoresInterruptores
AlmacenamientoAlmacenamiento dede InterconexiInterconexióónn MMúúltipleltiple Se obtiene al sacar las lógicas de
AlmacenamientoAlmacenamiento dede
InterconexiInterconexióónn MMúúltipleltiple
Se obtiene al sacar las lógicas de
control, de conmutación y de arbitraje de
prioridades fuera del interruptor de
barras cruzadas y se las coloca en la
interfaz de cada unidad de
almacenamiento.
Cada unidad funcional puede acceder a
cada unidad de almacenamiento, pero
sólo en una “conexión de
almacenamiento” específica, es decir
que hay una conexión de
l
i
t
id
d f
i
l
AlmacenamientoAlmacenamiento dede InterconexiInterconexióónn MMúúltipleltiple El conexionado es más complejo que
AlmacenamientoAlmacenamiento dede
InterconexiInterconexióónn MMúúltipleltiple
El conexionado es más complejo que
en los otros esquemas.
Se puede restringir el acceso a las
unidades de almacenamiento para
que no todas las unidades de
procesamiento las accedan, en tal
caso habrá unidades de
almacenamiento “privadas” de
determinados procesadores
AlmacenamientoAlmacenamiento dede InterconexiInterconexióónn MMúúltipleltiple
AlmacenamientoAlmacenamiento dede
InterconexiInterconexióónn MMúúltipleltiple
AlmacenamientoAlmacenamiento dede InterconexiInterconexióónn MMúúltipleltiple
AlmacenamientoAlmacenamiento dede
InterconexiInterconexióónn MMúúltipleltiple
GradosGrados dede AcoplamientoAcoplamiento enen MultiprocesamientoMultiprocesamiento Pueden clasificarse en: ◦
GradosGrados dede AcoplamientoAcoplamiento enen
MultiprocesamientoMultiprocesamiento
Pueden clasificarse en:
◦ Ligeramente acoplados
Conexión de dos o más sistemas
independientes por enlace de comunicación
Cada sistema tiene su SO y almacenamiento
Funcionan independientemente y se
comunican cuando lo necesitan.
Pueden acceder a los archivos de los otros e
intercambiar tareas entre procesadores.
GradosGrados dede AcoplamientoAcoplamiento enen MultiprocesamientoMultiprocesamiento • Rígidamente acoplados ◦
GradosGrados dede AcoplamientoAcoplamiento enen
MultiprocesamientoMultiprocesamiento
• Rígidamente acoplados
◦ Solo utilizan almacenamiento compartido por
varios procesadores
◦ Tiene solo un SO que controla todos los
procesadores y el hardware del sistema.
LigeramenteLigeramente acopladosacoplados
LigeramenteLigeramente acopladosacoplados
RRíígidamentegidamente acopladosacoplados
RRíígidamentegidamente acopladosacoplados
OrganizaciOrganizacióónn Maestro/SatMaestro/Satéélitelite Un procesador está diseñado como el “maestro” y los
OrganizaciOrganizacióónn Maestro/SatMaestro/Satéélitelite
Un procesador está diseñado como el
“maestro” y los otros como “satélites”.
El procesador “maestro” es de
propósito general y realiza
operaciones de Entrada / Salida y
computaciones.
Los procesadores “satélites” sólo
realizan computaciones y otros
procesos limitados.
OrganizaciOrganizacióónn Maestro/SatMaestro/Satéélitelite Los procesos de E/S ejecutados por satélites pueden
OrganizaciOrganizacióónn Maestro/SatMaestro/Satéélitelite
Los procesos de E/S ejecutados por
satélites pueden resultar ineficientes.
Si un satélite falla, se pierde
capacidad pero no el sistema.
Si el maestro falla, falla el sistema, el
satélite puede asumir las funciones
con un reinicio del sistema.
En el multiprocesamiento simétrico
todos pueden hacer Entrada / Salida.
SistemaSistema OperativoOperativo dede MultiprocesadoresMultiprocesadores Capacidades Funcionales: ◦ Asignación y
SistemaSistema OperativoOperativo dede
MultiprocesadoresMultiprocesadores
Capacidades Funcionales:
◦ Asignación y administración de recursos.
◦ Protección de tablas y conjuntos de
datos.
◦ Prevención contra el interbloqueo del
sistema.
◦ Terminación anormal.
◦ Equilibrio de cargas de Entrada / Salida.
◦ Equilibrio de carga del procesador.
◦ Reconfiguración.
SistemaSistema OperativoOperativo dede MultiprocesadoresMultiprocesadores Las organizaciones básicas de los Sistemas
SistemaSistema OperativoOperativo dede
MultiprocesadoresMultiprocesadores
Las organizaciones básicas de los
Sistemas Operativos para
multiprocesadores son las siguientes:
◦ Maestro / satélite.
◦ Ejecutivo separado para cada
procesador.
◦ Tratamiento simétrico (o anónimo) para
todos los procesadores
Maestro/SatMaestro/Satéélitelite Fácil de implementar No optimiza el uso del hardware, solo el maestro puede
Maestro/SatMaestro/Satéélitelite
Fácil de implementar
No optimiza el uso del hardware, solo
el maestro puede ejecutar el SO.
Las interrupciones de los satélites son
atendidas por el SO del maestro
generando largas colas.
EjecutivosEjecutivos SeparadosSeparados Cada procesador tiene su SO y responde a sus interrupciones. Tablas de
EjecutivosEjecutivos SeparadosSeparados
Cada procesador tiene su SO y
responde a sus interrupciones.
Tablas de control de todo el sistema
Más confiable
Cada procesador controla sus
recursos
Reconfiguración de E/S implica
cambio de procesadores.
No hay cooperación en procesos
asignados en forma individual.
TratamientoTratamiento SimSiméétricotrico Es complicada de implementar, pero es la más poderosa y confiable. El SO
TratamientoTratamiento SimSiméétricotrico
Es complicada de implementar, pero
es la más poderosa y confiable.
El SO administra un grupo de
procesadores, que pueden usar los
dispositivos de E/S y las unidades de
almacenamiento.
El SO precisa código reentrante y
exclusión mutua.
Equilibra la carga de una mejor
manera.
TratamientoTratamiento SimSiméétricotrico El hardware y software resuelven conflictos. Todos los procesadores
TratamientoTratamiento SimSiméétricotrico
El hardware y software resuelven
conflictos.
Todos los procesadores cooperan en la
ejecución de un proceso determinado.
El procesador ejecutivo es el
responsable de las tablas y funciones
del sistema para evitar conflictos de la
RendimientoRendimiento deldel SistemaSistema MultiprocesamientoMultiprocesamiento Agregar otro procesador no implica
RendimientoRendimiento deldel SistemaSistema
MultiprocesamientoMultiprocesamiento
Agregar otro procesador no implica
que aumenta la capacidad de
ejecución. Ya que:
◦ Hay sobrecarga adicional del Sistema
Operativo.
◦ Se incrementa la contención por recursos
del sistema.
◦ Hay retrasos del hardware en el
intercambio y en el encaminamiento de
las transmisiones entre un número mayor
de componentes.
RecuperaciRecuperacióónn dede ErroresErrores Una de las capacidades más importantes de los Sistemas Operativos de
RecuperaciRecuperacióónn dede ErroresErrores
Una de las capacidades más
importantes de los Sistemas
Operativos de multiprocesadores es la
de soportar fallas de hardware en
procesadores individuales y continuar
su operación.
Debe existir el soporte
correspondiente en el Sistema
Operativo.
TTéécnicascnicas dede recuperacirecuperacióónn dede erroreserrores Los datos críticos (del sistema y de usuario)
TTéécnicascnicas dede recuperacirecuperacióónn dede
erroreserrores
Los datos críticos (del sistema y de
usuario) deben mantenerse en copias
múltiples y en bancos de
almacenamiento separados.
El Sistema Operativo debe ejecutar
efectivamente con la configuración
máxima y con subconjuntos ante fallas.
TTéécnicascnicas dede recuperacirecuperacióónn dede erroreserrores Debe haber capacidad de detección y
TTéécnicascnicas dede recuperacirecuperacióónn dede
erroreserrores
Debe haber capacidad de detección y
corrección de errores de hardware sin
interferir con la eficiencia operacional del
sistema.
Se debe utilizar la capacidad ociosa del
procesador para tratar de detectar
posibles fallos antes de que se
produzcan.
El Sistema Operativo debe dirigir un
procesador operativo para que tome el
control de un proceso que se estaba
ejecutando en un procesador que falla.
MultiprocesamientoMultiprocesamiento SimSiméétricotrico Cada procesador posee capacidades funcionales completas.
MultiprocesamientoMultiprocesamiento SimSiméétricotrico
Cada procesador posee capacidades
funcionales completas.
Los dispositivos de E/ S pueden ser
conectados a cada uno de los
procesadores.
Todas las llamadas al supervisor
pueden ser ejecutadas en todos los
procesadores, inclusive las de E/S.
MultiprocesamientoMultiprocesamiento SimSiméétricotrico Si un programa en ejecución en un procesador pide una
MultiprocesamientoMultiprocesamiento SimSiméétricotrico
Si un programa en ejecución en un
procesador pide una operación de E/S
en un dispositivo conectado a un
procesador diferente, el procesador
puede continuar ejecutando el trabajo y
la E/S se coloca en una cola para su
iniciación por el procesador apropiado.
MultiprocesamientoMultiprocesamiento SimSiméétricotrico Se considera procesador ejecutante al que está ejecutando un
MultiprocesamientoMultiprocesamiento SimSiméétricotrico
Se considera procesador ejecutante
al que está ejecutando un proceso
determinado.
Se considera procesador propietario
al que está conectado a los diferentes
dispositivos utilizados por el proceso.
Más eficiente que la maestro/satélite
Cada procesador puede ejecutar el
planificador para buscar el sgte.
Trabajo a ejecutar.
MultiprocesamientoMultiprocesamiento SimSiméétricotrico Utiliza una sola cola de trabajos y cada procesador puede
MultiprocesamientoMultiprocesamiento SimSiméétricotrico
Utiliza una sola cola de trabajos y
cada procesador puede seleccionar
trabajos de ella, con lo cual se
equilibra la carga entre los
procesadores
Para minimizar la contención en el
despacho de procesos, los relojes de
los procesadores tienen oblicuidad,
debido a ello las interrupciones de
reloj ocurren en diferentes momentos.
MultiprocesamientoMultiprocesamiento SimSiméétricotrico
MultiprocesamientoMultiprocesamiento SimSiméétricotrico
TendenciasTendencias dede loslos MultiprocesadoresMultiprocesadores Se incrementa el uso de los multiprocesadores por
TendenciasTendencias dede loslos
MultiprocesadoresMultiprocesadores
Se incrementa el uso de los
multiprocesadores por estas razones:
◦ La confiabilidad requerida es cada vez mayor.
◦ La reducción de costos consecuencia de los
avances en microelectrónica.
◦ El previsible desarrollo de lenguajes que
permitan a los usuarios expresar el paralelismo
explícitamente.
◦ El progreso en la detección automática del
paralelismo .
◦ El hecho de que se estaría llegando a los límites
del uniprocesador, la única posibilidad de
incrementar capacidad de cómputo es mediante
multiprocesamiento.