2. 2
Prof. Eliezer Córdova
Índice:
1. Planificación de Sistemas en
Tiempo Real
2. Planificación de
Multiprocesadores
3. Ejemplos de Planificación
2
3. 3
Prof. Eliezer Córdova
Índice:
1. Planificación de Sistemas en
Tiempo Real
2. Planificación de
Multiprocesadores
3. Ejemplos de Planificación
3
4. 4
Prof. Eliezer Córdova
1. Planificación de Sistemas en Tiempo Real
1. Definición de Sistema en Tiempo Real
2. Modelos de planificación
3. Planificación por plazos
5. 5
Prof. Eliezer Córdova
1. Planificación de Sistemas en Tiempo Real
1. Definición de Sistema en Tiempo Real
2. Modelos de planificación
3. Planificación por plazos
6. 6
Prof. Eliezer Córdova
1.1 Definición de Sistema en Tiempo Real
Sistema que debe ejecutar actividades respetando
unas restricciones temporales.
Clasificación de actividades:
Por cumplimiento:
• Rígidas: incumplimiento causa malfuncionamiento
• Flexibles: incumplimiento causa degradación calidad
• Opcionales: incumplimiento no tiene mayores consecuencias
Por periodicidad:
• Aperiódicas
• Periódicas
– Fijas
– Movibles
tT T T
7. 7
Prof. Eliezer Córdova
1. Planificación de Sistemas en Tiempo Real
1. Definición de Sistema en Tiempo Real
2. Modelos de planificación
3. Planificación por plazos
8. 8
Prof. Eliezer Córdova
1.2 Modelos de Planificación
1. Planificación Apropiativa con Prioridades
Estáticas
Aplicabilidad: cualquier sistema (solución clásica)
Se utiliza un planificador genérico
El quid de la cuestión: asignación de
prioridades:
• Se analizan las actividades (periodicidad y
cumplimiento)
• Se clasifican por niveles, según cumplimiento y
frecuencia
• Se asignan prioridades estáticas a cada nivel
Dificultad: garantizar planificabilidad
9. 9
Prof. Eliezer Córdova
1.2 Modelos de Planificación
2. Planificación con Tablas Estáticas
Aplicabilidad: todas las actividades periódicas
Se construye planificador ad-hoc
Metodología:
• Se calcula ciclo de ejecución (duración: mcm periodos)
• Se analizan actividades y establece plan de ejecución
• Planificador lanza cada actividad cuando corresponde
10. 10
Prof. Eliezer Córdova
1.2 Modelos de Planificación
3. Planificación Dinámica
Aplicabilidad: todas las actividades periódicas +
alguna aperiódica flexible u opcional
Se construye planificador ad-hoc
Metodología:
• Se parte de un plan de ejecución con las actividades
periódicas
• Si llega actividad periódica se intenta acomodar en el
plan:
– Retrasando una flexible
– Eliminando una opcional
• Si no se puede acomodar: se descarta
11. 11
Prof. Eliezer Córdova
1.2 Modelos de Planificación
4. Planificación por mejor resultado
Aplicabilidad: cualquier sistema (orientado a
actividades aperiódicas)
Metodología:
• Se definen plazos de ejecución para actividades
• El planificador organiza las actividades de forma que
se cumplan los plazos
12. 12
Prof. Eliezer Córdova
1. Planificación de Sistemas en Tiempo Real
1. Definición de Sistema en Tiempo Real
2. Modelos de planificación
3. Planificación por plazos
13. 13
Prof. Eliezer Córdova
1.3 Planificación por Plazos
Criterio basado en Mejor Resultado
Idea: la preferencia por usar el procesador lo
tiene aquella actividad que está más próxima a
salirse de plazo.
Concepto de plazo:
Plazo Final: la actividad ha de comenzar y
terminar dentro del plazo.
Plazo Inicial: basta con que la actividad comience
dentro del plazo
tP tP
14. 14
Prof. Eliezer Córdova
1.3 Planificación por Plazos
Ejemplo: aplicación a dos actividades periódicas
flexibles.
Suponemos que el plazo de cada actividad expira al acabar
cada periodo
T t
A 4 2
B 10 5
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
15. 15
Prof. Eliezer Córdova
Índice:
1. Planificación de Sistemas en
Tiempo Real
2. Planificación de
Multiprocesadores
3. Ejemplos de Planificación
15
16. 16
Prof. Eliezer Córdova
2. Planificación de Multiprocesadores
1. Tipos de sistemas multiprocesadores
2. Paralelismo
3. Aspectos de Diseño
4. Planificación de hilos en multiprocesadores
17. 17
Prof. Eliezer Córdova
2. Planificación de Multiprocesadores
1. Tipos de sistemas multiprocesadores
2. Paralelismo
3. Aspectos de Diseño
4. Planificación de hilos en multiprocesadores
18. 18
Prof. Eliezer Córdova
2.1 Tipos de Multiprocesadores
Multiprocesadores con Acoplamiento Débil
Procesadores no comparten memoria
Comunicados entre sí por algún sistema de
comunicaciones
No ha lugar a planificación!
Procesadores especializados
Su función no es la ejecución de código de los procesos
Colaboran con procesador principal: coprocesadores
matemáticos, video, audio, etc.
No ha lugar a planificación!
Multiprocesadores con Acoplamiento Fuerte
Comparten memoria y Sistema Operativo
Consecuencia: paralelismo real
19. 19
Prof. Eliezer Córdova
2. Planificación de Multiprocesadores
1. Tipos de sistemas multiprocesadores
2. Paralelismo
3. Aspectos de Diseño
4. Planificación de hilos en multiprocesadores
20. 20
Prof. Eliezer Córdova
2.2 Paralelismo
Aplicaciones paralelas: formadas por varios
procesos/hilos que pueden colaborar entre sí
Grados de paralelismo:
Procesos independientes: no hay colaboración entre
ellos
Interacción baja o débil: la colaboración se de forma
muy esporádica.
Interacción media: se produce frecuente colaboración
Interacción alta: se produce colaboración muy
frecuente, cada muy pocas instrucciones.
21. 21
Prof. Eliezer Córdova
2. Planificación de Multiprocesadores
1. Tipos de sistemas multiprocesadores
2. Paralelismo
3. Aspectos de Diseño
4. Planificación de hilos en multiprocesadores
22. 22
Prof. Eliezer Córdova
2.3 Aspectos de diseño
Relación entre procesadores:
Sistemas Amo/Esclavo
vs
Multiprocesadores simétricos
Asignación de procesos a procesadores:
Asignación Dinámica
vs
Asignación Estática
Multiprogramación interna de procesadores
SI
vs
NO
23. 23
Prof. Eliezer Córdova
2.3 Aspectos de diseño
Relación entre procesadores:
Multiprocesamiento Simétrico
Sistema Amo/Esclavo
24. 24
Prof. Eliezer Córdova
2.3 Aspectos de diseño
Sistemas Amo/Esclavo
Ventajas:
Planificación similar a versión monoprocesador (pueden
haber N procesos activos)
Planificación no concurrente
¡Sistema operativo más simple!
Inconvenientes:
Si hay muchos procesadores: Amo = cuello de botella
Fiabilidad: Amo = elemento crítico
25. 25
Prof. Eliezer Córdova
2.3 Aspectos de diseño
Multiprocesamiento simétrico
Ventajas:
No hay cuello de botella
Mayor fiabilidad (incluso tolerante a fallos)
Inconvenientes:
Sistema operativo se ejecuta concurrentemente
¡Incluso planificación es concurrente!
Sistema operativo más complejo
26. 26
Prof. Eliezer Córdova
2.3 Aspectos de diseño
Asignación de procesos a procesadores
Asignación Estática
P6
P1 P2
P3 P4 P5
P7 P8 P9 P10 P11 P12
27. 27
Prof. Eliezer Córdova
2.3 Aspectos de diseño
Asignación de procesos a procesadores
Asignación Dinámica
P6P1 P2 P3 P4 P5
28. 28
Prof. Eliezer Córdova
2.3 Aspectos de diseño
Asignación dinámica
Ventajas:
Facilita repartir la carga de trabajo
Inconvenientes:
Cambiar un proceso de procesador puede implicar
penalización si usa memoria no compartida
Mayor complejidad:
• Cola de procesos = recurso compartido
• Más tomas de decisiones
P6P1 P2 P3 P4 P5
29. 29
Prof. Eliezer Córdova
2.3 Aspectos de diseño
Asignación estática
Ventajas:
Menos tomas de decisiones
Mayor simplicidad
Permite implementar planificación por grupos
Inconvenientes:
Posible mal balance de carga de trabajo
P6
P1 P2
P3 P4 P5
P7 P8 P9 P10 P11 P12
30. 30
Prof. Eliezer Córdova
2.3 Aspectos de diseño
Multiprogramación de procesadores:
¿Merece la pena multiprogramar cada procesador?
Si aplicaciones con alto grado de interacción y
suficientes procesadores: NO multiprogramar
En otro caso: SI multiprogramar
¿Procesadores ociosos?
No es de preocupar, si hay muchos
31. 31
Prof. Eliezer Córdova
2. Planificación de Multiprocesadores
1. Tipos de sistemas multiprocesadores
2. Paralelismo
3. Aspectos de Diseño
4. Planificación de hilos en multiprocesadores
32. 32
Prof. Eliezer Córdova
2.4 Planificación de hilos en multiproc.
Planificación de hilos: particularidades por su
aplicabilidad a aplicaciones de alto grado de
interacción
Modelos:
Compartición de carga
Planificación por grupos
Asignación de procesadores en exclusividad
Planificación dinámica
33. 33
Prof. Eliezer Córdova
2.4 Planificación de hilos en multiproc.
Se matiene una lista global de hilos preparados
Al primer procesador que queda libre, se le asigna
primer hilo de lista
Ventajas:
Tiende a repartir carga de trabajo entre procesadores
Método de selección inmediato
Se puede implementar como sistema simétrico
Compartición de carga
34. 34
Prof. Eliezer Córdova
2.4 Planificación de hilos en multiproc.
Inconvenientes:
Siguiente hilo no tiene por qué pertenecer a mismo
proceso → Mala gestión caché
Cola de hilos preparados: recurso compartido
• Necesidad de coordinación entre procesadores
• Posible cuello de botella
No garantiza paralelismo real entre hilos de un mismo
proceso: no apto para grado de interacción alto.
Compartición de carga
35. 35
Prof. Eliezer Córdova
2.4 Planificación de hilos en multiproc.
Indicado para aplicaciones con grado de interacción
Medio
Alto
Idea: formar grupos de hilos que se ejecutan en
paralelo activando y desactivando todos los hilos en
bloque.
Planificación por grupos
H1 H2 H3
H4 H5
H6 H7
36. 36
Prof. Eliezer Córdova
2.4 Planificación de hilos en multiproc.
Cuando se crea un hilo, se le asigna un procesador
No se le retira en ningún momento
¡Ni siquiera en caso de bloqueo!
Procesador sólo se libera a la terminación del hilo
Asignación de procesadores en exclusividad
Justificación:
Contexto de aplicación: grandes multiprocesadores
Objetivos:
• Garantizar paralelismo
• Reducir tiempos de terminación
37. 37
Prof. Eliezer Córdova
2.4 Planificación de hilos en multiproc.
La asignación/liberación de procesadores las
efectúa el propio proceso
Pensado para lenguajes con soporte de hilos:
Ada
Java
SO dispone en API de llamadas para manipulación
de procesadores
Planificación dinámica
38. 38
Prof. Eliezer Córdova
Índice:
1. Planificación de Sistemas en
Tiempo Real
2. Planificación de
Multiprocesadores
3. Ejemplos de Planificación
38
39. 39
Prof. Eliezer Córdova
3. Ejemplos de planificación
1. Planificación en MINIX
2. Planificación en Windows 2000
3. Planificación Linux
40. 40
Prof. Eliezer Córdova
3. Ejemplos de planificación
1. Planificación en MINIX
2. Planificación en Windows 2000
3. Planificación Linux
41. 41
Prof. Eliezer Córdova
3.1 Planificación en MINIX
Planificación mediante colas multinivel:
TASK_Q: Turno rotatorio hasta bloqueo (sin
apropiación)
SERVER_Q: Turno rotatorio hasta bloqueo
USER_Q: Turno rotatorio con ranura de 100 ms.
Planificador
MINIX
-prioridad+
Gestor
Floppy
Gestor
HD
Gestor
Disco RAM
TASK_Q
Admin.
Archivos
Admin.
Memoria
SERVER_Q
Proc.
usuario init
USER_Q
42. 42
Prof. Eliezer Córdova
3. Ejemplos de planificación
1. Planificación en MINIX
2. Planificación en Windows 2000
3. Planificación Linux
43. 43
Prof. Eliezer Córdova
3.2 Planificación en Windows 2000
Planificador de hilos mediante colas multinivel
32 Colas (o prioridades, según terminología Microsoft)
31
30
.
:
16
15
2
.
:
1
0
Nivel de Tiempo Real
Nivel de Prioridad Variable
TR1 TR2
TR3
Zero Page Thread
PV1 PV2
PV3 PV4 PV5
TR4 TR5 TR6
-prioridad+
44. 44
Prof. Eliezer Córdova
3.2 Planificación en Windows 2000
Planificación prioridades variable:
Prioridad inicial= prioridad del proceso + prioridad relativa
hilo
• prioridad del proceso: [1..15]
• prioridad del hilo: [-2 .. 2]
Priority Boost: si en varias ocasiones hilo se bloquea antes
de terminar cuanto: se incrementa su prioridad.
Límites de la prioridad dinámica:
• Límite inferior: menor (prioridad proceso – 2, 1)
• Límite superior: 15
Duración del cuanto:
Versiones de sobremesa: 6 ticks
Versiones para servidores: 36 ticks
En plataformas monoprocesador: 1 tick = 10ms
En plataformas multiprocesador: 1 tick= 15ms
45. 45
Prof. Eliezer Córdova
3.2 Planificación en Windows 2000
Si hay N procesadores:
Los N-1 hilos de mayor prioridad se asignan a N-1
procesadores y se activan hasta bloqueo
El procesador restante es compartido por los demás hilos
Afinidad por procesador:
Un hilo puede declarar afinidad por un procesador
Sólo se activará sobre dicho procesador
Si hilo preparado pero procesador no está libre → hilo
espera
46. 46
Prof. Eliezer Córdova
3. Ejemplos de planificación
1. Planificación en MINIX
2. Planificación en Windows 2000
3. Planificación Linux
47. 47
Prof. Eliezer Córdova
3.2 Planificación en Linux (2.6)
Planificador de hilos mediante colas multinivel
140 Colas (también llamadas prioridades)
0
1
.
:
99
100
138
.
:
139
Nivel de
Tiempo Real
S_F1 S_F2
S_R1
S_O1 S_O2
S_O3 S_O4
S_F3 S_R2
-prioridad+
0
1
.
:
99
100
138
.
:
139
S_R3 S_F4
S_O5
S_O6
S_O7 S_O8
S_F4
Colas Activas Colas Expiradas
Nivel de
Prioridad
Variable
48. 48
Prof. Eliezer Córdova
3.3 Planificación en Linux (2.6)
Planificación hilos tipo SCHED_FIFO
Sólo perderá la CPU en los siguientes casos:
• Bloqueo
• Cede CPU voluntariamente mediante sched_yield()
• Es apropiado por otro hilo SCHED_FIFO de mayor prioridad
Si hay más de un hilo SCHED_FIFO preparado con la
misma prioridad → se activa el que lleva más tiempo
esperando
Planificación hilos tipo SCHED_RR
Análoga a SCHED_FIFO, excepto en que…
Si hay más de un hilo SCHED_FIFO con la misma
prioridad → turno rotatorio
49. 49
Prof. Eliezer Córdova
3.3 Planificación en Linux (2.6)
Planificación hilos tipo SCHED_OTHER
Turno rotatorio en orden descendente de prioridad
Proridad dinámica = prioridad base + bonificación
Bonificación: -5 (máxima) .. +5 (mínima)
Cálculo de la bonificación: relación tiempo bloqueo /
tiempo activo
Duración del cuanto:
Depende de prioridad base
Entre 5 ms y 800 ms (más prioritario, cuanto más largo)
Procesos “interactivos”:
No van a cola expirada (excepción)
50. 50
Prof. Eliezer Córdova
3.3 Planificación en Linux (2.6)
Sistemas multiprocesadores:
Cada procesador tiene sus propias colas
Reparto de carga de trabajo mediante dominios de
planificación
Dominio de planificación = conjunto de procesadores que
se mantienen equilibrados
Los dominios de planificación son jerárquicos
Notas del editor
Aclarar que normalmente las actividades se ejecutan en respuesta a estímulos o eventos externos.
Hacer referencia aquí a que cuando se habló de conocimiento de futuro, se dijo que en sistemas en tiempo real esto no era descabellado.
Comentar brevemente pues a continuación se va a ver un ejemplo concreto: planificación por plazos
Contar que el plazo inicial se suele utilizar para actividades atómicas (de duración despreciable).
Contar por qué no se debe usar apropiación en plazos iniciales
IMPORTANTE: T=periodo, no tiempo de terminación!! :-O
Hacer notar que multiprocesadores con acoplamiento débil = sistema distribuido
Hacer notar que las aplicaciones paralelas pueden ejecutarse también en plataformas monoprocesador, si bien es en un sistema multiprocesador donde pueden hacer uso de paralelismo real.
En esta diapositiva, contar en qué consiste el multiprocesamiento simétrico y el multiprocesamiento AMO/Esclavo, sin entrar todavía en ventajas ni inconvenientes.
Sistema Simétrico:
Todos los procesadores iguales en función
Si un procesador queda libre: él mismo ejecuta el planificador para obtener un proceso
Si proceso ejecuta E/S: el mismo procesador ejecuta el código del S/O que lo sirve.
Sistema Amo/Esclavo:
Hay un procesador con atribuciones especiales (el jefe) ;-)
Dicho procesador coordina esclavos:
Ejecuta el planificador
Asigna procesos a procesadores esclavos
Cuando un proceso se bloquea, el procesador queda libre -> avisa al amo
Hacer notar que en multiprocesamiento simétrico, el planificador se ejecuta de manera distribuida!!
En esta diapositiva, contar en qué consiste la asignación estática:
Cada proceso asignado a un procesador “de por vida”
Por tanto criterio de asignación se ejecuta una sola vez al iniciarse proceso
Cada procesador tiene sus propias colas. Hacer notar que pueden haber procesadores sobrecargados mientras hay procesadores ociosos, pero sin entrar aún en hablar de ventajas e inconvenientes.
En esta diapositiva, contar en qué consiste la asignación dinámica:
Procesos no vinculados a procesadores
Colas de procesos únicas y compartidas.
Criterio de asignación: se lleva a cabo cada vez que un proceso pasa de estado preparado a activo
Lo de las tomas de decisiones se refiere a que se decide a qué procesador se asigna un proceso cada vez que hay que activarlo.
Recalcar que lo que vamos a estudiar son modelos, que no criterios concretos.
Haz notar que se trata de un modelo dinámico
Comentar que una solución al problema de que puedan haber procesadores sin usar es asignar los procesadores por cuantos tiempos proporcional al nº de hilos.
Haz notar lo tremendamente eficiente en tiempo de ejecución que es este método, pues ni siquiera hay penalización por conmutación
Téngase en cuenta que aunque la colsa SERVER_Q se planifica sin cuanto, puede ser apropiada por un gestor de la cola TASK_Q que termine un bloqueo.
Comentar que decir “prioridad de un hilo” equivale a decir “cola en la que se planifica el hilo”
Cualquier hilo puede ser apropiado por un hilo que se inserte en una cola de más prioridad
Planificación colas en tiempo real:
Cada hilo se planifica en la cola que se le asigna en su creación.
Planificación colas de prioridad variable: en siguiente diapositiva
Comentar que el Zero Page Thread es el demonio de paginación
Comentar que el tick es una abstracción del Hardware Abstraction Layer (HAL)
Lo primero: aclarar que planificación muy compleja.
Similar a Windows 2000
Si quieres, cuenta lo de que el planificador le llaman O(1) porque selecciona un proceso en tiempo constante, independientemente de la carga
Haz notar que las prioridades van al revés que en Windows 2000
Comentar que existen tres tipos de hilos, SCHED_FIFO, SCHED_RR, SCHED_OTHER, que los dos primeros son solo para el nivel de tiempo real (prioridades estáticas) y el último solo para el nivel no de tiempo real (prioridades dinámicas), y que la forma en que planifican depende, además del nivel, del tipo de hilo. No entrar en más detalle, eso se ve en siguiente diapositiva.
Comentar la duplicación colas activas-colas vencidas (click). En las colas vencidas se insertan los procesos que han agotado su cuanto, y cuando termina la ronda en la cola activa, la activa se convierte en vencida y viceversa. Así se evita inanición de los procesos con menor prioridad. Aclarar por tanto que este es un concepto de prioridad un tanto sui-generis.
Aclarar que el sistema decide qué procesos son “interactivos” mediante una formula que tiene en cuenta la frecuencia y duración de los bloqueos. No significa necesariamente que sean interactivos
Haz notar que en Linux, los procesos de mayor prioridad salen doblemente beneficiados: más prioridad y encima, mayor cuanto.