Planificación multiprocesador Niveles de granularidad Niveles de

Anuncio
Planificación multiprocesador - SSOO I
Clasificación de sistemas
multiprocesador
Planificación multiprocesador
Secciones Stallings:
10.1, 10.3 - 10.5
•  Débilmente acoplado, o procesador distribuido, o
cluster
–  Cada procesador tiene su propia memoria y canales de
E/S
•  Procesadores de funcionalidad especializada
–  Ej: procesadores de E/S
–  Controlados por un procesador maestro.
•  Multiprocesamiento fuertemente acoplado
–  Los procesadores comparten memoria principal.
–  Bajo el control integrado del sistema operativo.
(es el que vamos a estudiar)
Niveles de granularidad
Niveles de granularidad
•  Paralelismo independiente
•  Granularidad de sincronización o
frecuencia de sincronización entre los
procesos del sistema:
–  Paralelismo independiente
–  Grano grueso
–  Grano medio
–  Grano fino
Niveles de granularidad
–  Aplicaciones o trabajos separados.
–  Sin sincronización entre los procesos.
–  Ej: sistemas de tiempo compartido.
•  Grano grueso
–  Sincronización entre procesos a gran nivel, con poca
frecuencia.
–  Se trata como procesos concurrentes que ejecutan en
un monoprocesador con multiprogramación.
–  Puede proporcionarse en multiprocesador con pocos
cambios en Sw de usuario.
Granularidad de sincronización
•  Grano medio:
–  Necesidades de comunicación e interacción mayores.
–  Aplicación = colección de hilos.
–  Los hilos interactúan entre sí y se coordinan con
frecuencia.
•  Grano fino:
–  Aplicaciones altamente paralelas.
–  Área muy especializada y fragmentada, con muchas
propuestas diferentes.
EPS - UAM
Tamaño del grano
Descripción
Intervalo de
sincronización
(Instrucciones)
Fino
Paralelismo inherente en un único flujo
de instrucciones
<20
Medio
Procesamiento paralelo o multitarea
dentro de una única aplicación
20-200
Grueso
Multiprocesamiento de procesos
concurrentes en un entorno
multiprogramado
200-2000
Muy grueso
Procesamiento distribuido entre nodos
de una red para conformar un único
entorno de computación
2000-1M
Independiente
Múltiples procesos no relacionados
(N/D)
1
Planificación multiprocesador - SSOO I
Planificación
• 
Aspectos de diseño:
1.  Asignar procesos a procesadores
2.  Multiprogramación en procesadores
individuales
3.  Ejecutar cada proceso (dispatching)
Vinculación de procesos a
procesadores
1.  Dinámica: Tratar procesos como recursos
colectivos y asignar procesos a procesadores
bajo demanda:
–  Cola global de procesos
–  Se asigna el procesador que esté libre
2.  Estática: Asignar procesos permanentemente a
un procesador:
Asignación de procesos a
procesadores
•  Vinculación de procesos a procesadores
–  Dinámica
–  Estática
–  Balance dinámico de carga
•  Asignación de procesos a procesadores
Vinculación de procesos a
procesadores
3.  Balance dinámico de carga
–  Cada procesador tiene su cola
–  Los hilos se mueven de una cola a otra
–  Ej: Linux
–  Permite implementar planificación por grupos
(más adelante)
–  Cola a corto plazo para cada procesador.
–  Menos sobrecarga en la función de planificación.
–  Un procesador puede estar desocupado mientras otro
procesador tiene trabajo acumulado.
Asignación de procesos a
procesadores
•  Enfoque maestro/esclavo
•  Enfoque de colegas (o camaradas)
•  Enfoques mixtos
Asignación de procesos a
procesadores
•  Enfoque maestro/esclavo
–  Funciones claves del núcleo se ejecutan siempre en el
mismo procesador (maestro).
–  Resto de los procesadores ejecutan programas de
usuario (esclavos).
–  El maestro es responsable de la planificación.
–  Cada esclavo envía pedidos de servicios al maestro
•  Por ejemplo, llamada de E/S
–  Desventajas
•  Un fallo del maestro hace que falle todo el sistema.
•  El maestro se puede convertir en un cuello de botella.
EPS - UAM
2
Planificación multiprocesador - SSOO I
Asignación de procesos a
procesadores
•  Enfoque de colegas:
–  El núcleo del sistema operativo puede ejecutar
en cualquier procesador.
–  Cada procesador ejecuta su propio planificador
y elige proceso de entre los disponibles.
–  El sistema operativo es más complicado:
•  Asegurarse que dos procesadores no elijan el mismo
proceso.
•  Asegurarse de que los procesos no se extravían
•  Incorporar técnicas para resolver y sincronizar
competencia por recursos
Planificación de procesos
•  En sistemas multiprocesador tradicionales:
–  Única cola para todos los procesos ó
múltiples colas para administrar prioridades.
–  Todas las colas alimentan el único colectivo de
procesadores.
Asignación de procesos a
procesadores
• 
Enfoques mixtos:
a)  Subconjunto de procesadores para procesar el
núcleo
b)  Gestionar necesidades entre procesos del
núcleo y otros procesos sobre:
• 
• 
Prioridad
Historia de ejecución
Planificación de hilos
•  Hilo = Unidad de ejecución, separada del resto
de la definición del proceso.
•  Aplicación implementada como conjunto de
hilos que cooperan y ejecutan de forma
concurrente en el mismo espacio de direcciones.
•  Paralelismo real en una aplicación: hilos de la
aplicación son ejecutados simultáneamente en
procesadores separados.
Planificación multiprocesador y
asignación de hilos a procesadores
•  Cuatro enfoques distintos:
–  Compartición de carga.
–  Planificación por grupos (o en pandilla).
–  Asignación de procesador dedicado.
–  Planificación dinámica.
Compartición de carga
•  Los procesos no se asignan a procesador particular
•  Cola global de hilos listos.
–  Todos los hilos listos de todas las aplicaciones están en
una o varias colas globales
•  Carga distribuida uniformemente entre los
procesadores:
–  No hay procesadores ociosos mientras haya trabajo
–  Un procesador ocioso selecciona hilo de cola
•  No se precisa planificador centralizado:
–  En el procesador disponible se ejecuta la rutina de
planificación del S.O. para seleccionar el siguiente hilo
a ejecutar.
EPS - UAM
3
Planificación multiprocesador - SSOO I
Desventajas de compartición de carga
•  Acceso a colas globales necesita exclusión mutua
–  Cuello de botella si muchos procesadores buscan
trabajo al mismo tiempo.
•  Hilos expulsados pueden retomar ejecución en un
procesador distinto al de su última ejecución
–  Uso de la caché de cada procesador menos eficaz.
•  Procesos con alto grado de coordinación entre sus
hilos pueden verse desfavorecidos:
–  Hilos en varios procesadores necesitan coordinarse
=> cambios de proceso pueden comprometer
rendimiento global
Planificación uniforme por número de grupos
Grupo 1
División por pesos
Grupo 1
Grupo 2
Grupo 2
Pr.1
Pr.2
Pr.3
Pr.4
Proceso con 4
hilos. Cada
hilo a un
procesador
Proceso con 1
hilo. Único hilo
a un
procesador
Desperdicio:
37.5%
–  Reducción de bloqueos por sincronización
(no esperarán mucho, al estar ejecutando)
–  Necesidad de menos cambios por proceso
–  Útil para aplicaciones paralelas en general, y específ.
para grano medio/fino: el rendimiento se degrada
cuando hay partes listas y partes que no se ejecutan.
•  ¿Dónde se utiliza planificación por grupos?
–  Planificación simultanea de hilos de un proceso.
–  Aplicaciones paralelas cuyo rendimiento es sensible a
la coordinación estrecha de sus hilos.
•  Enfoque opuesto al reparto de carga:
vs.
ponderada por el número de hilos de cada proceso
Pr.1
Pr.2
Pr.3
Pr.4
•  Se planifica un conjunto de hilos afines para su
ejecución en un conjunto de procesadores al
mismo tiempo. Relación uno a uno.
Asignación de procesador
dedicado
Planificación por grupos
División uniforme
Planificación por grupos
Asignación al
proceso
proporcional al
número de sus hilos
Desperdicio:
15%
Asignación de procesador
dedicado
–  A cada proceso se le asigna un nº de procesadores
igual al nº de sus hilos:
•  Cada procesador esta dedicado al hilo hasta que la
aplicación concluye (monoprogramación)
–  Cuando el programa finaliza, los procesadores
retornan a la reserva general para posibles
asignaciones a otros programas.
•  Inconvenientes:
–  Procesadores pueden quedar ociosos
–  No hay multiprogramación de los procesadores
(entre hilos de distintos procesos).
Asignación de procesador
dedicado
–  En sistemas altamente paralelos
(decenas o centenas de procesadores):
•  Cada procesador representa una pequeña fracción
del coste del sistema
•  La utilización del procesador deja de ser una
medida importante de la eficacia o rendimiento
(tengo muchos)
–  Evitar totalmente cambios de procesos durante
la vida de un programa supone una mejora
sustancial en su velocidad:
•  El tiempo se emplea en sincronización
EPS - UAM
Aceleración
•  Defendiendo esta estrategia:
Número de procesadores: 8
Número de procesos
• ¿Cuántos procesadores asignamos a un programa en un momento dado?
• Conjunto residente de actividad
• Limitar el número de hilos activos al número de procesadores
• Mejor resultado: lanzar tantos hilos como procesadores disponibles
4
Planificación multiprocesador - SSOO I
Asignación de procesador
dedicado
•  Conjunto residente de actividad:
–  Mínimo número de actividades (hilos) que
deben ser planificados simultáneamente sobre
procesadores para que la aplicación tenga un
progreso aceptable.
•  Fragmentación del procesador:
–  Quedan procesadores ociosos que no son
suficientes en nº, o que no están organizados
adecuadamente para dar soporte a los
requisitos de las aplicaciones pendientes.
Linux Scheduling
•  Clases de planificación
–  SCHED_FIFO: Hilos de tiempo real FIFO
–  SCHED_RR: Hilos de tiempo real Round-robin
–  SCHED_OTHER: Otros hilos no de T.R.
•  Dentro de cada clase pueden utilizarse
múltiples prioridades
Planificación dinámica
•  Nº de hilos de 1 proceso puede cambiar durante el curso de
su ejecución.
•  Petición de uno o más procesadores por un trabajo:
–  Si hay procesadores ociosos: asignárselos
–  Si no: si trabajo nuevo, ubicarlo en único procesador,
quitándoselo a trabajo que tenga más de 1 procesador
–  Si no se puede satisfacer parte de la solicitud (nº procesadores),
mantener trabajo pendiente hasta que:
•  procesador disponible, ó
•  el trabajo rescinda solicitud (ej: ya no necesita tantos procs.)
•  Liberar procesadores:
–  Mirar si hay trabajos en la cola de listos.
–  Elegir los que no tienen procesador asignado: asignarles un único
procesador (ej: trabajos nuevos).
–  Asignar al resto de los trabajos los procesadores libres según FCFS.
Hilos de tiempo real
A
Mínima
B
Media
C
Media
D
Máxima
(a) Prioridades relativas de los hilos
(b) Secuencia con planificación FIFO
(c) Secuencia con planificación R.R.
Hilos no de tiempo real
•  Linux 2.6 usa el planificador nuevo O(1):
–  El tiempo que tarda en elegir el próximo
proceso y asignarlo a un procesador es
constante
•  Independiente de la carga del sistema.
•  Independiente del nº de procesadores.
Hilos no de tiempo real
•  Cada tarea no de T.R. tiene prioridad entre
100 y 139 (default 120).
•  Esta prioridad puede variar dinámicamente
de acuerdo al tiempo que la tarea esté
esperando por eventos E/S.
–  Se favorece las tareas limitadas por la E/S.
=> Mejora respuesta interactiva.
•  Cuantos (rodajas) entre 10 y 200ms.
–  A mayor prioridad, cuanto de tiempo + largo.
EPS - UAM
5
Planificación multiprocesador - SSOO I
EdD por cada procesador
Prioridad 0
Cola no vacía de
mayor prioridad
Maneja 2 tipos de colas,
1 bit por cada cola
Prioridad 139
Array de 140 bits para las colas activas
Colas activas: 140
colas x prioridad.
Cada cola contiene
las tareas listas
para dicha prioridad
Colas vencidas: 140 colas
x prioridad. Cada cola
contiene las tareas listas
para dicha prioridad
Array de 140 bits para las colas vencidas
Clases de prioridad en SVR4
Clase de
Prioridad
Valor
Global
Secuencia
de
planificación
Planificación en UNIX SVR4
•  Planificador expulsivo de prioridades estáticas.
•  160 niveles de prioridad divididos en tres clases.
•  Clases de prioridad:
–  Mayor preferencia: procesos de tiempo real.
–  Siguiente mayor preferencia: procesos en modo
núcleo.
–  Menor preferencia: otros procesos de usuario.
•  Inserción de puntos de expulsión seguros para
el núcleo básico:
–  Región de código donde todas las estructuras de
datos del núcleo están actualizadas y son consistentes
o bien están bloqueadas por un semáforo.
Clases de prioridad en SVR4
•  Tiempo Real (159 – 100)
–  Serán elegidos para ejecutar antes que cualquier
proceso de núcleo o de tiempo compartido.
–  Pueden expulsar procesos de núcleo o de usuario.
•  Núcleo (99 – 60)
–  Serán elegidos para ejecutar antes que cualquier
proceso de tiempo compartido (pero no antes que T.R.)
•  Tiempo Compartido (59-0)
–  Menor prioridad
Colas de activación SVR4
Planificación en Windows
dqactmap
•  Planificador expulsivo con sistema flexible
de niveles de prioridad.
•  Prioridades organizadas en dos clases:
•  Turnos rotatorios dentro de cada nivel.
•  En los procesos de T.C. el nivel puede variar:
–  Tiempo Real
–  Variable
–  Disminuye al utilizar todo el cuanto.
–  Aumenta cuando se bloquea por recurso o evento.
•  El tamaño del cuanto depende del nivel:
–  100ms para prioridad 0 --- 10ms para prioridad 59
EPS - UAM
6
Planificación multiprocesador - SSOO I
Mayor(31)
Ejemplo de prioridades
Clases de
prioridad de
tiempo real
Menor(16)
Mayor(15)
Pueden subir
o bajar
Clases de
prioridad
variable
Prioridad
Proceso
Menor(0)
Ejercicios
• 
Sobre planificación de procesos:
• 
EPS - UAM
Sobre planificación de procesos:
1.  Todos los métodos que utilicen prioridades
van a provocar inanición en algún momento
2.  El algoritmo FCFS perjudica a los procesos
intensivos en CPU
3.  Los métodos multicolas con varias colas de
bloqueados están concebidos para planificar
siempre sistemas multiprocesadores
4.  Todas las anteriores son falsas
Ejercicios
En un sistema informático, los procesos recién
creados entran en una cola de espera. De esa
cola pasan a la cola de listos sólo cuando se ve
que la utilización de la CPU cae por debajo del
20%. Este sistema:
Prioridad
dinámica
del hilo
Ejercicios
1.  Todos los métodos que utilicen prioridades
van a provocar inanición en algún momento
2.  El algoritmo FCFS perjudica a los procesos
intensivos en CPU
3.  Los métodos multicolas con varias colas de
bloqueados están concebidos para planificar
siempre sistemas multiprocesadores
4.  Todas las anteriores son falsas
• 
Prioridad
Base del hilo
Ejercicios
• 
En un sistema informático, los procesos recién
creados entran en una cola de espera. De esa
cola pasan a la cola de listos sólo cuando se ve
que la utilización de la CPU cae por debajo del
20%. Este sistema:
1.  Utiliza planificación expulsiva
2.  Utiliza planificación a largo plazo
1.  Utiliza planificación expulsiva
2.  Utiliza planificación a largo plazo
3.  Aplica prioridades
4.  Aplica realimentación con 2 colas
3.  Aplica prioridades
4.  Aplica realimentación con 2 colas
7
Planificación multiprocesador - SSOO I
Ejercicios
• 
El planificador que decide si se debe
desalojar un proceso de la memoria
principal debido a que el sistema está
sobrecargado se denomina
1. 
2. 
3. 
4. 
Ejercicios
• 
Planificador de E/S
Planificador a corto plazo
Planificador a medio plazo
Planificador a largo plazo
El planificador que decide si se debe
desalojar un proceso de la memoria
principal debido a que el sistema está
sobrecargado se denomina
1. 
2. 
3. 
4. 
Ejercicios
• 
Los procesos de tiempo real se
caracterizan principalmente por:
1. 
2. 
3. 
4. 
Ejercicios
• 
Ser procesos muy veloces
Ser procesos monotarea, con 1 sólo hilo
Permitir la multiprogramación
Cumplir unas restricciones de tiempo
definidas a priori
Los procesos de tiempo real se
caracterizan principalmente por:
1. 
2. 
3. 
4. 
Ejercicios
• 
El tiempo de respuesta es un factor de
gran importancia en los sistemas
1. 
2. 
3. 
4. 
EPS - UAM
De procesamiento por lotes
Multiprogramados
Multiusuario
De tiempo compartido
Planificador de E/S
Planificador a corto plazo
Planificador a medio plazo
Planificador a largo plazo
Ser procesos muy veloces
Ser procesos monotarea, con 1 sólo hilo
Permitir la multiprogramación
Cumplir unas restricciones de tiempo
definidas a priori
Ejercicios
• 
El tiempo de respuesta es un factor de
gran importancia en los sistemas
1. 
2. 
3. 
4. 
De procesamiento por lotes
Multiprogramados
Multiusuario
De tiempo compartido
8
Planificación multiprocesador - SSOO I
Ejercicios
• 
(A PARTIR DE AQUÍ, HECHOS YA)
Suponga un sistema que planifica procesos
según la política Round Robin. Cuando entra un
proceso nuevo, siempre ocurre que:
Ejercicios
• 
1.  Disminuye el tiempo medio de espera
Suponga un sistema que planifica
procesos según la política Round Robin.
Cuando entra un proceso nuevo, siempre
ocurre que:
1.  Disminuye el tiempo medio de espera
2.  Aumenta el tiempo medio de respuesta
3.  Aumenta el número de cambios de contexto
por unidad de tiempo
4.  Disminuye el porcentaje de utilización de
CPU
2.  Aumenta el tiempo medio de respuesta
3.  Aumenta el número de cambios de contexto por
unidad de tiempo
4.  Disminuye el porcentaje de utilización de CPU
Ejercicios
• 
Indicar cuál de las afirmaciones siguientes es cierta:
Ejercicios
• 
Indicar cuál de las afirmaciones siguientes es cierta:
1. 
Cuando se planifica con la política de turno rotatorio (roundrobin), los cambios de contexto se producen únicamente al
finalizar cada quanto de tiempo asignado al proceso en
ejecución.
1. 
Cuando se planifica con la política de turno rotatorio (roundrobin), los cambios de contexto se producen únicamente al
finalizar cada quanto de tiempo asignado al proceso en
ejecución.
2. 
Cuando se planifica con políticas de planificación con expulsión
por prioridades, los cambios de contexto se producen cuando el
proceso en ejecución abandona voluntariamente la CPU.
2. 
Cuando se planifica con políticas de planificación con expulsión
por prioridades, los cambios de contexto se producen cuando el
proceso en ejecución abandona voluntariamente la CPU.
3. 
Cuando se planifica según la política primero el proceso más
corto (SPN) se beneficia siempre a los procesos que ocupan
poco en memoria frente a los que ocupan mucho.
3. 
Cuando se planifica según la política primero el proceso más
corto (SPN) se beneficia siempre a los procesos que ocupan
poco en memoria frente a los que ocupan mucho.
4. 
La política de turno rotatorio (round-robin) no perjudica
especialmente a los procesos cortos.
4. 
La política de turno rotatorio (round-robin) no perjudica
especialmente a los procesos cortos.
Ejercicios
• 
Indica cuál de las siguientes afirmaciones es falsa.
1. 
2. 
3. 
4. 
EPS - UAM
No hay protección de memoria entre los hilos de un mismo
proceso, por ejemplo un hilo tiene acceso a la pila de otro hilo
del mismo proceso.
Cada hilo tiene informaciones que le son propias,
principalmente las referentes al contexto de ejecución, pila y
bloque de control del hilo.
En el caso de procesos con hilos a nivel de núcleo y máquinas
con multiprocesadores puede existir más de un hilo del mismo
proceso en ejecución en el mismo instante.
En el caso de procesos con hilos a nivel de núcleo y máquinas
con multiprocesadores nunca puede haber más de un hilo del
mismo proceso bloqueado al mismo tiempo.
Ejercicios
• 
Indica cuál de las siguientes afirmaciones es falsa.
1. 
2. 
3. 
4. 
No hay protección de memoria entre los hilos de un mismo
proceso, por ejemplo un hilo tiene acceso a la pila de otro hilo
del mismo proceso.
Cada hilo tiene informaciones que le son propias,
principalmente las referentes al contexto de ejecución, pila y
bloque de control del hilo.
En el caso de procesos con hilos a nivel de núcleo y máquinas
con multiprocesadores puede existir más de un hilo del mismo
proceso en ejecución en el mismo instante.
En el caso de procesos con hilos a nivel de núcleo y
máquinas con multiprocesadores nunca puede haber más de
un hilo del mismo proceso bloqueado al mismo tiempo.
9
Planificación multiprocesador - SSOO I
Ejercicios
• 
Sobre planificación de procesos:
Ejercicios
• 
1.  Todos los métodos que utilicen prioridades
van a provocar inanición en algún momento
2.  El algoritmo FCFS perjudica a los procesos
intensivos en CPU
3.  Los métodos multicolas con varias colas de
bloqueados están concebidos para planificar
siempre sistemas multiprocesadores
4.  Todas las anteriores son falsas
Sobre planificación de procesos:
1.  Todos los métodos que utilicen prioridades
van a provocar inanición en algún momento
2.  El algoritmo FCFS perjudica a los procesos
intensivos en CPU
3.  Los métodos multicolas con varias colas de
bloqueados están concebidos para planificar
siempre sistemas multiprocesadores
4.  Todas las anteriores son falsas
Ejercicios
• 
En un sistema informático, los procesos recién
creados entran en una cola de espera. De esa
cola pasan a la cola de listos sólo cuando se ve
que la utilización de la CPU cae por debajo del
20%. Este sistema:
Ejercicios
• 
En un sistema informático, los procesos recién
creados entran en una cola de espera. De esa
cola pasan a la cola de listos sólo cuando se ve
que la utilización de la CPU cae por debajo del
20%. Este sistema:
1.  Utiliza planificación expulsiva
2.  Utiliza planificación a largo plazo
1.  Utiliza planificación expulsiva
2.  Utiliza planificación a largo plazo
3.  Aplica prioridades
4.  Aplica realimentación con 2 colas
3.  Aplica prioridades
4.  Aplica realimentación con 2 colas
Ejercicios
• 
El planificador que decide si se debe
desalojar un proceso de la memoria
principal debido a que el sistema está
sobrecargado se denomina
1. 
2. 
3. 
4. 
EPS - UAM
Planificador de E/S
Planificador a corto plazo
Planificador a medio plazo
Planificador a largo plazo
Ejercicios
• 
El planificador que decide si se debe
desalojar un proceso de la memoria
principal debido a que el sistema está
sobrecargado se denomina
1. 
2. 
3. 
4. 
Planificador de E/S
Planificador a corto plazo
Planificador a medio plazo
Planificador a largo plazo
10
Planificación multiprocesador - SSOO I
Ejercicios
• 
Los procesos de tiempo real se
caracterizan principalmente por:
1. 
2. 
3. 
4. 
Ejercicios
• 
Ser procesos muy veloces
Ser procesos monotarea, con 1 sólo hilo
Permitir la multiprogramación
Cumplir unas restricciones de tiempo
definidas a priori
Los procesos de tiempo real se
caracterizan principalmente por:
1. 
2. 
3. 
4. 
Ejercicios
• 
El tiempo de respuesta es un factor de
gran importancia en los sistemas
1. 
2. 
3. 
4. 
De procesamiento por lotes
Multiprogramados
Multiusuario
De tiempo compartido
Ser procesos muy veloces
Ser procesos monotarea, con 1 sólo hilo
Permitir la multiprogramación
Cumplir unas restricciones de tiempo
definidas a priori
Ejercicios
• 
El tiempo de respuesta es un factor de
gran importancia en los sistemas
1. 
2. 
3. 
4. 
De procesamiento por lotes
Multiprogramados
Multiusuario
De tiempo compartido
Ejercicios
• 
El tiempo de respuesta es un factor de
gran importancia en los sistemas
1. 
2. 
3. 
4. 
EPS - UAM
De procesamiento por lotes
Multiprogramados
Multiusuario
De tiempo compartido
11
Descargar