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