Sunteți pe pagina 1din 48

Captulo 10

Planificacin de multiprocesadores y en tiempo real

Clasificacin de los sistemas multiprocesador


Mutiprocesador dbilmente acoplado:
Cada procesador tiene su propia memoria principal y sus propios canales de E/S.

Procesadores especializados funcionalmente:


Procesadores de E/S. Controlados por el procesador principal.

Multiprocesador fuertemente acoplado.


Los procesadores comparten una memoria principal comn. Controlados por el sistema operativo.

Paralelismo independiente
Aplicacin o trabajo separado. No existe sincronizacin. Hay ms de un procesador disponible:
El tiempo medio de respuesta a los usuarios ser menor.

Paralelismo de grano grueso y muy grueso


Sincronizacin entre los procesos muy burda. Bueno para los procesos concurrentes que se ejecutan en un monoprocesador multiprogramado:
Puede verse respaldado por un multiprocesador con escasos cambios.

Paralelismo de grano medio


Un proceso paralelo o varias tareas en una nica aplicacin. Una sola aplicacin es un conjunto de hilos. Los hilos interactan de forma muy frecuente.

Paralelismo de grano fino


Aplicaciones muy paralelas. Campo muy especializado y fragmentado.

Planificacin
Asignacin de procesos a los procesadores. Uso de multiprogramacin en procesadores individuales. Expedicin real de los procesos.

Asignacin de procesos a los procesadores


Tratar a los procesadores como un recurso reservado y asignar los procesos a los procesadores por demanda. Se asigna un proceso a un procesador de forma permanente:
Cola a corto plazo dedicada para cada procesador. Sobrecarga menor. Un procesador puede estar desocupado mientras que otro procesador tiene trabajos pendientes.

Asignacin de procesos a los procesadores


Cola global:
Ejecutados en cualquier procesador que est disponible.

Arquitectura maestro/esclavo:
Las funciones clave del ncleo siempre ejecutan en un determinado procesador. El maestro es el responsable de la planificacin. El esclavo enva una solicitud del servicio al maestro. Desventajas:
Un fallo en el maestro hace caer todo el sistema. El maestro puede llegar a ser un cuello de botella del rendimiento.

Asignacin de procesos a los procesadores


Arquitectura simtrica:
El sistema operativo puede ejecutarse en cualquier procesador. Cada procesador se autoplanifica. Complica el sistema operativo:
Debe asegurarse que dos procesadores no seleccionen el mismo proceso.

Planificacin del procesos


Una cola nica para todos los procesadores. Varias colas segn la prioridad. Todas las colas alimentan a una reserva comn de procesadores. El algoritmo especfico de planificacin es mucho menos importante con dos procesadores que con uno.

Hilos
La ejecucin se separa del resto de la definicin de un proceso. Una aplicacin puede implementarse como un conjunto de hilos que cooperan y ejecutan concurrentemente en el mismo espacio de direcciones. Los hilos que se ejecutan simultneamente en distintos procesadores posibilitan un aumento drstico del rendimiento.

Planificacin de hilos para multiprocesadores


Reparto de carga:
Los procesos no se asignan a un procesador en particular.

Planificacin por grupos:


Se planifica un conjunto de hilos afines para su ejecucin en un conjunto de procesadores al mismo tiempo.

Planificacin de hilos para multiprocesadores


Asignacin dedicada de procesadores:
Asignacin de hilos a un procesador especfico.

Planificacin dinmica:
El nmero de hilos en un programa se puede cambiar en el curso de la ejecucin.

Reparto de carga
La carga se distribuye uniformemente entre los procesadores. No es necesario un planificador centralizado. Uso de colas globales.

Desventajas del reparto de carga


La cola central necesita exclusin mutua:
Puede convertirse en un cuello de botella si muchos procesadores buscan trabajo al mismo tiempo.

Es improbable que los hilos expulsados reanuden su ejecucin en el mismo procesador:


El uso de la cache ser menos eficiente.

Si todos los hilos estn en la cola global, todos los hilos de un programa no conseguirn acceder a los procesadores al mismo tiempo.

Planificacin por grupos


Planificacin simultnea de hilos que forman parte de un nico proceso. til para aplicaciones cuyo rendimiento se degrada seriamente cuando alguna parte de la aplicacin no se est ejecutando. Los hilos normalmente necesitan sincronizarse mutuamente.

Planificacin por grupos


Divisin uniforme Grupo 1 1 Grupo Grupo 2 Divisin por pesos Grupo 1 Grupo 2

desocupado desocupado

desocupado desocupado desocupado

desocupado desocupado desocupado desocupado Tiempo 37,5% Desperdiciado 15% Desperdiciado

Figura 10.2. Ejemplo de planificacin por grupos con uno y cuatro hilos [FEIT90a].

Asignacin dedicada de procesadores


Cuando se planifica una aplicacin, se asigna cada uno de sus hilos a un procesador. Algunos procesadores pueden estar desocupados. No hay multiprogramacin de procesadores.

Planificacin dinmica
La aplicacin permite cambiar dinmicamente el nmero de hilos de un proceso. El sistema operativo ajusta la carga para mejorar la utilizacin:
Asigna los procesadores desocupados. Las nuevas llegadas pueden ser asignadas a un procesador quitndoselo a algn proceso que tenga ms de un procesador asignado. La peticin queda pendiente hasta que un procesador est disponible. Se asignar un procesador a las nuevas llegadas antes de que se den las aplicaciones que se estn ejecutando.

Sistemas en tiempo real


La exactitud del sistema no depende slo del resultado lgico de un clculo sino tambin del instante en que se produzca el resultado. Las tareas o procesos intentan controlar o reaccionar ante sucesos que tienen lugar en el mundo exterior. Estos sucesos se producen en tiempo real y el proceso debe poder ir al paso de ellos.

Sistemas en tiempo real


Control de experimentos de laboratorio. Procesos de control de edificios. Robtica. Control del trfico areo. Telecomunicaciones. Sistema de control y mando militar.

Caractersticas de los sistemas operativos en tiempo real


Determinismo:
Las operaciones se realizan en instantes fijos y predeterminados o en intervalos de tiempo predeterminados. Hace referencia a cunto tiempo consume un sistema operativo en reconocer una interrupcin.

Caractersticas de los sistemas operativos en tiempo real


Sensibilidad:
Cunto tiempo consume un sistema operativo en dar servicio a la interrupcin, despus de reconocerla. Incluye la cantidad de tiempo necesario para comenzar la ejecucin de la interrupcin. Incluye la cantidad de tiempo necesario para ejecutar la interrupcin.

Caractersticas de los sistemas operativos en tiempo real


Control del usuario:
El usuario especifica prioridades. Especifica paginacin. Qu procesos deben estar siempre residentes en la memoria principal. El usuario especifica los algoritmos de disco que se emplearn. Factores que disponen a los procesos en varias bandas de prioridad.

Caractersticas de los sistemas operativos en tiempo real


Fiabilidad:
La degradacin del rendimiento puede tener consecuencias catastrficas. Intento de corregir el problema o minimizar sus efectos mientras contina la ejecucin. Ejecuta la tareas ms importantes y de mayor prioridad.

Caractersticas de los sistemas operativos en tiempo real


Cambios rpidos de proceso o hilos. Pequeo tamao. Capacidad de responder rpidamente a interrupciones externas. Multitarea con herramientas de comunicacin entre procesos, como semforos, seales y sucesos. Uso de archivos secuenciales especiales que pueden acumular datos a alta velocidad.

Caractersticas de los sistemas operativos en tiempo real


Planificacin preferente basada en prioridades. Reduccin de los intervalos en los que estn inhabilitadas las interrupciones. Demorar tareas durante un tiempo fijo. Alarmas especiales y temporizadores.

Planificacin de un proceso de tiempo real


Solicitud de un proceso en tiempo real El proceso de tiempo real se aade a la cola de ejecucin en espera de su prxima fraccin

Proceso 1 Pulso de reloj

Proceso 2 Tiempo de planificacin

Proceso n

Proceso de tiempo real

(a) Planificador preferente por turno rotatorio

Figura 10.4. Planificacin de un proceso de tiempo real.

Planificacin de un proceso de tiempo real


Solicitud de un proceso en tiempo real El proceso de tiempo real pasa al principio de la cola de ejecucin

Proceso actual

Proceso de tiempo real El proceso actual se bloquea o termina

Tiempo de planificacin

(b) Planificador preferente controlado por prioridades

Figura 10.4. Planificacin de un proceso de tiempo real.

Planificacin de un proceso de tiempo real


Solicitud de un proceso en tiempo real Espera de otro instante de apropiacin

Proceso actual Instante de apropiacin Tiempo de planificacin

Proceso de tiempo real

(c) Planificador preferente controlado por prioridades con instantes de apropiacin

Figura 10.4. Planificacin de un proceso de tiempo real.

Planificacin de un proceso de tiempo real


Solicitud de un proceso en tiempo real El proceso de tiempo real expulsa al proceso actual y se ejecuta inmediatamente Proceso de tiempo real

Proceso actual

Tiempo de planificacin (d) Planificador preferente inmediato

Figura 10.4. Planificacin de un proceso de tiempo real.

Planificacin en tiempo real


Mtodos con tablas estticas:
Determina, en tiempo de ejecucin, cundo debe comenzar la ejecucin de una tarea.

Mtodos preferentes con prioridades estticas:


Se puede emplear un planificador convencional preferente con prioridades.

Mtodos de planificacin dinmica. Mtodos dinmicos del mejor resultado.

Planificacin por plazos


En las aplicaciones de tiempo real no preocupa la velocidad absoluta, sino completar las tareas. La planificacin de las tareas con el plazo ms prximo minimiza la proporcin de tareas que no cumplen sus plazos.

Planificacin por plazos


Informacin utilizada:
Instante en que est lista. Plazo de comienzo. Plazo de finalizacin. Tiempo de proceso. Exigencias de recursos. Prioridad. Estructura de subtareas.

Dos tareas
Tabla 10.2. Perfil de ejecucin de dos tareas peridicas.
Proceso Instante de llegada
Tiempo de ejecucin

Plazo final

Plazo de B1 Plazo de A1 Plazo de A2 Plazo de A3 Plazo de A4

Plazo de B1 Plazo de A5

Tiempos de llegada, ejecucin y plazos Tiempo (ms.)

Planificacin por prioridades fijas; A tiene prioridad

A2

B1 A3 (No cumplido)

Planificacin por prioridades fijas; B tiene prioridad

A1 (No cumplido)

A4 (No cumplido)

Planificacin por el plazo ms cercano con plazos de terminacin

Figura 10.5. Planificacin de tareas peridicas de tiempo real con plazos de terminacin.

Instantes de llegada Requisitos Plazos de inicio Instantes de llegada Plazo ms cercano Servicio Plazo de inicio Instantes de llegada Plazo ms cercano con tiempos libres no forzosos Servicio Plazo de inicio Instantes de llegada Primero en llegar/primero en servirse (FCFS) Servicio Plazo de inicio (no cumplido)
(no cumplido)

(no cumplido)

Figura 10.6. Planificacin de tareas aperidicas de tiempo real con plazos de inicio.

Planificacin montona de frecuencia


Asigna prioridades a las tareas en funcin de sus periodos. La tarea de ms alta prioridad es la del periodo ms corto.

Diagrama de tiempos de tareas peridicas


Ciclo 1
Procesamiento

Ciclo 2 libre
Procesamiento

Tiempo Tiempo C de ejecucin de la tarea P Periodo T de la tarea P

Figura 10.7. Diagrama de tiempos de tareas peridicas.

Alto Frecuencia ms alta y tarea de prioridad ms alta

Prioridad

Frecuencia ms baja y tarea de prioridad ms baja

Bajo Frecuencia (Hz.)

Figura 10.8. Una tarea con RMS [WARR91].

Planificacin en LINUX
Clases de planificacin:
SCHED_FIFO: Hilos de tiempo real con planificacin FIFO. SCHED_RR: Hilos de tiempo real con planificacin por turno rotatorio. SCHED_OTHER: Hilos que no son de tiempo real y otros.

Dentro de cada clase se utilizan mltiples prioridades.

mnima media media mxima


(a) Prioridades relativas de los hilos (b) Flujo con planificacin FIFO

(c) Flujo con planificacin RR

Figura 10.9. Ejemplo de planificacin Linux.

Planificacin en UNIX SVR4


Mxima prioridad a los procesos de tiempo real. El siguiente nivel de prioridad se asigna a los procesos en modo de ncleo. El nivel ms bajo se asigna al resto de los procesos en modo de usuario.

Colas de expedicin SVR4

Figura 10.11. Colas de expedicin de SVR4.

Planificacin en Windows 2000


Las prioridades se organizan en dos bandas o clases:
Tiempo real. Variable.

Planificador preferente con prioridades.

Mayor (31)

Clases de prioridad de tiempo real

Menor (16) Mayor (15)

Clases de prioridad variable

Menor (0)

Figura 10.12. Prioridades de expedicin de hilos en W2K.

mayor
por encima de lo normal por encima de lo normal

prioridad base

normal
por debajo de lo normal por debajo de lo normal menor menor

Prioridad de procesos

Prioridad de base de hilos

Prioridad dinmica de hilos

Figura 10.13. Ejemplo de relaciones entre prioridades en W2K.

S-ar putea să vă placă și