Sistemas operativos 2ª edición. Capítulo 4 Planificación del procesador 2ª parte: planificación en multiprocesadores

Documentos relacionados
TEMA 9. SISTEMAS OPERATIVOS DISTRIBUIDOS

Conceptos de Planificación

Introduccion a Sistemas Operativos. Ej: Linux

ALGORITMOS DE PROGRAMACIÓN NO EXPULSIVOS

Concurrencia. Concurrencia

Sistemas Operativos. Curso 2016 Introducción

Facultad de Ingeniería Industrial y de Sistemas v1.0 MA781U PROCESOS DISTRIBUIDOS

Sistemas Distribuidos. Soporte de Sistemas Operativos

Tema 12: El sistema operativo y los procesos

Planificación multiprocesador. Niveles de granularidad. Niveles de granularidad. Niveles de granularidad. Planificación multiprocesador - SSOO I

Capítulo 2. Sistemas Operativos. Elementos, estructura y funciones generales.

UNIDAD II Metodología de programación paralela. Lic. Jesús Germán Andrés PAUTSCH - FCEQyN - UNaM

Introducción a los Sistemas Operativos

Sistemas Operativos. Introducción. Tema 6

Universidad Autónoma de Baja California Facultad de Ciencias Administrativas Unidad Mexicali

Diseño arquitectónico 1ª edición (2002)

Sistemas Operativos. Procesos

Tipos de Diseño. Ing. Elizabeth Guerrero V.

Threads, SMP y Microkernels. Proceso

Con estas consideraciones, Flynn clasifica los sistemas en cuatro categorías:

Adaptación de la arquitectura linux lib de MaRTE OS a multiprocesadores

Herramientas Informáticas I Software: Sistemas Operativos

ESCUELA DE INGENIERIA Informática Y Sistemas

Participantes: Avila Aida Betancourt Sioly Briceño Susana Rojas Alejandro

Fecha de entrega: Miércoles 4 de Septiembre. Campus: Villahermosa. Carrera : Ingeniería en Sistemas Compuacionales. Nombre del maestro: Carlos Castro

TEMA 1: INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS

Pontificia Universidad Católica del Ecuador

Planificación multiprocesador y de tiempo real

ARQUITECTURAS PARA PROCESAMIENTO PARALELO

Introducción a los sistemas operativos. Ing Esp Pedro Alberto Arias Quintero

Lusitania. Pensando en Paralelo. César Gómez Martín

Pontificia Universidad Católica del Ecuador

Unidad 4 - Procesamiento paralelo. Arquitectura de computadoras. D o c e n t e : E r n e s t o L e a l. E q u i p o : J e s s i c a F i e r r o

Usuario. Programas de Aplicación. Sistema Operativo. Hardware. Figura 1. Sistema de cómputo estructurado por capas.

Gestión de Entrada-salida

HYPERTHREADING TECHNOLOGY IN THE NETBURST MICROARCHITECTURE. Arquitectura de computadores Leyre Aldama Pérez

Sistemas Operativos. Dr. Luis Gerardo de la Fraga. Departamento de Computación Cinvestav

Introducción a los Sistemas Operativos

Concurrencia y paralelismo

Sistemas Operativos. Un sistema operativo es un conjunto de programas de computadora diseñados especialmente para cubrir los siguientes objetivos:

TEMA II: ALMACENAMIENTO DE LA INFORMACIÓN

Memoria compartida simétrica

dit Planificación de tareas de tiempo real Juan Antonio de la Puente DIT/UPM UPM Copyright 2007, Juan Antonio de la Puente

Introducción a los Sistemas Operativos

6. Planificación. Los procesos tienden a tener ráfagas de ejecución (CPU-burst) y ráfagas de espera de operaciones de E/S (I/O burst).

Sistemas Operativos- Evolución Histórica

Nombre del estudiante: Giovanna Kristhel Mendoza Castillo Gustavo Antonio González Morales Eduardo Solis Lara Francisco Javier Merodio Molina

ADMINISTRACION DE LA MEMORIA. En memoria 1 solo proceso Desventajas:

Procesos Definición y Estados

INDICE 1. Introducción 2. Entrada / Salida: Principios y Programación 3. Procesos

MAGMA. Matrix Algebra on GPU and Multicore Architecture. Ginés David Guerrero Hernández

Qué es un programa informático?

ARQUITECTURA DE LA MEMORIA EN LOS DSPs

Unidad Nº I Revisión de conceptos de. Sistemas Operativos

Manipulación de procesos

0.Principios del Microprocesador

F1131 Fundamentos de sistemas operativos 1/12

INTRODUCCIÓN A LAS REDES DE ORDENADORES

GESTION DE LA MEMORIA

de Gran Canaria Centro de Tecnología Médica Programación Concurrente

Clasificación n de los Sistemas Operativos. Clasificación de los SO Estructuras de los SO Modos de procesamiento

Tema 1: Programación Multiproceso. Curso

Mensaje del editor. Agradecimientos. Sobre el autor

Sistemas Operativos Ricardo Sanz

Computación Cluster y Grid

una red de equipos no puede funcionar sin un sistema operativo de red

Conceptos de Sistemas Operativos. Sistema Operativo

FUNDAMENTOS DE LOS SISTEMAS OPERATIVOS

Modelo analítico de rendimiento

PROTOCOLO IP. Vicente Sánchez Patón. I.E.S Gregorio Prieto. Tema 1 SRI

GESTIÓN DE ARCHIVOS. Presentado por: Alba Arosemena Alma Vargas Hospicia Mendoza Roselvira Fernández Ahías Arosemena

Programación de arquitecturas paralelas. José M. Cámara v. 1.0

Gestión de Memoria. Gestión de Memoria. Requisitos de Gestión de Memoria

ÍNDICE TEMÁTICO Horas Teóricas. Horas Prácticas 1. Objetivo y Funciones de un Sistema Operativo Arquitectura de un Sistema Operativo 8 6 3

Sistemas operativos (Parte 4)

Memoria compartida distribuida

Gestión de la Memoria y Memoria Virtual

07 y 08 Sistemas distribuidos y paralelos y tarea 02

Convivencia Introducción

Hilos. Módulo 4. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco. Hilos

TEMA 9: DIAGRAMA DE OBJETOS, SECUENCIA Y DESPLIEGUE EN UML

Sistemas operativos. Hasta ahora hemos visto. Relación programa-sistema operativo Gestión de memoria

Aplicaciones Concurrentes

Sistemas Operativos Distribuidos. Sistemas Operativos Una visión aplicada

BASE DE DATOS DISTRIBUIDOS

Mercedes Fernández Redondo

Modelos de Programación Paralela Prof. Gilberto Díaz

Programa de Sistemas Operativos

Usando el Sistema Operativo

Funcionamiento de la computadora

Introducción Sistemas Operativos Avanzados

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos

Organización de Computadoras

Introducción a los Sistemas Operativos

Tema 7, Seguridad en Sistemas Operativos:

Paradigma de paso de mensajes

Tecnología de software para sistemas de tiempo real

REDES DE DATOS Modelo OSI. Angélica Flórez Abril, MSc.

Trucos para Mejorar el Desempeño de LabVIEW

Transcripción:

Sistemas operativos 2ª edición Capítulo 4 lanificación del procesador 2ª parte: planificación en multiprocesadores

Contenido ASM versus SM lanificación en multiprocesadores lanificación con cola única Sistema multiprocesador jerárquico lanificación con una cola por procesador lanificación de multiprocesadores en Linux lanificación de aplicaciones paralelas en multiprocesadores lanificación en sistemas distribuidos lanificación de aplicaciones paralelas en sistemas distribuidos 2

Multiprocesamiento asimétrico vs. simétrico Difícil adaptar SO de U para M Concurrencia se convierte en paralelismo real Solución de compromiso: Multiprocesamiento asimétrico (ASM) Simetría en hardware pero no en software SO sólo se ejecuta en UC maestra Llamadas al SO, excepciones e interrupciones en esa UC Se convierte en cuello de botella : SO no escalable Beneficioso sólo para programas paralelos que usan poco el SO Solución definitiva: Multiprocesamiento simétrico SO se ejecuta en cualquier UC Llamadas al SO y excepciones en UC donde se producen Interrupciones en UC que las recibe 3

Multiprocesamiento asimétrico (ASM)... roceso 3 (S) roceso 2 (S) roceso 7 (S) roceso 5 (S) Cola de procesos listos en modo sistema... roceso 9 (U) roceso 6 (U) roceso 8 (U) roceso 4 (U) Cola de procesos listos en modo usuario rocesador 1 rocesador 2 rocesador n Caché 1 Caché 2 Caché n Int. Red de conexión Interrupciones E/S Memoria principal 4

Multiprocesamiento simétrico (SM)... roceso 3 roceso 2 roceso 7 roceso 5 Cola de procesos listos rocesador 1 rocesador 2 rocesador n Caché 1 Caché 2 Caché n Int. Int. Int. Red de conexión Interrupciones E/S Memoria principal 5

lanificación en multiprocesadores Trivial: N UC ejecutan N procesos elegidos por planificador Sí, pero hay que tener en cuenta: Afinidad natural y estricta Multiprocesadores jerárquicos (SMT, CM, NUMA,...) Compartimiento de recursos entre algunos procesadores Evitar congestión en operación del planificador.e. debida al uso de cerrojos al acceder a cola de listos Además de rendimiento puede haber otros parámetros.ej. minimizar consumo (p.e. en un portátil) 2 esquemas: Cola única vs. Una cola/procesador Linux a partir de versión 2.6: uso de una cola/uc Windows cola única para cliente y cola/uc para servidor 6

lanificación en M con cola única UC elige qué proceso de la cola ejecuta (autoplanificación) Afinidad natural: mejor ejecutar en misma UC Aprovecha información en caché lanificación: UC queda libre (CCV o CCI): lanificador elige proceso (llamémosle el más prioritario ) rioridad matizada por la afinidad natural Asigna UC a proceso afín aunque con prioridad un poco menor Si afín se le asigna un bonus extra a la prioridad roceso pasa a listo (desbloqueo o nuevo): se le asigna 1. UC afín libre 2. Cualquier UC libre 3. UC con proceso Q tal que prio()>prio(q) rioridad matizada por afinidad natural si desbloqueo (bonus extra) Uso de int. SW de planificación con II para forzar CCI 7

Afinidad estricta lanificación debe respetar afinidad estricta roceso informa de qué UCs desea usar Cambios en el esquema de planificación roceso pasa a listo: Sólo UCs en su afinidad estricta UC queda libre: Sólo procesos que incluyan a esa UC Cambio de afinidad de proceso puede causar planificación Servicio OSIX para el control de afinidad estricta int sched_setaffinity(pid_t pid, unsigned int longit, cpu_set_t *máscara) máscara define en qué UCs puede ejecutar pid Usada por mandato taskset de Linux Servicio Windows para el control de afinidad estricta BOOL SetrocessAffinityMask(HANDLE hpr, DWORD_TR máscara) máscara define en qué UCs puede ejecutar proceso 8

Sistema multiprocesador jerárquico Multiprocesador no es un conjunto de UCs al mismo nivel Multiprocesador tiene carácter jerárquico Sistema NUMA con múltiples nodos UC multinúcleo (CM: Chip Multirocessing) Cada núcleo con SMT (Simultaneous Multithreading) Algunas UC no independientes: pueden compartir recursos UC lógicas mismo núcleo caché L1 núcleos mismo multinúcleo caché L2 Incluso relacionados con consumo de energía núcleos mismo multinúcleo consumo de energía común Afecta esta jerarquía al SO? Y a la planificación? 9

Sistema multiprocesador jerárquico. físico. físico. físico. físico Nodo.lóg.lóg.lóg.lóg.lóg.lóg.lóg.lóg Multinúcleo Multinúcleo Caché L1 Caché L1 Caché L1 Caché L1 Caché L1 Caché L1 Caché L1 Caché L1 Caché L2 Caché L2 Caché L2 Caché L2 Memoria del nodo Memoria del nodo Red de conexión NUMA con 2 nodos: 2 multinúcleo/nodo con 2 núcleos y 1 p. lógico/núcleo 10

Ejemplos de configuraciones M para Linux 2 A. Kleen. Linux multi-core scalability. In roceedings of Linux Kongress, Octubre 2009. 11

Sistema operativo para multiprocesador jerárquico SO actual debe ser consciente de jerarquía de M CONFIG_SM http://lxr.linux.no/linux+v3.13.5/kernel/sched/core.c#l399 CONFIG_NUMA http://lxr.linux.no/linux+v3.13.5/kernel/sched/core.c#l5423 CONFIG_SCHED_MC http://lxr.linux.no/linux+v3.13.5/kernel/sched/core.c#l5300 CONFIG_SCHED_SMT http://lxr.linux.no/linux+v3.13.5/kernel/sched/core.c#l5297 12

lanificación en multiprocesador jerárquico (1/2) Compartimiento de recursos entre algunos procesadores Afecta a afinidad natural: Extensión de afinidad a la jerarquía Afecta a asignación de UCs libres a proc nuevos (sin afinidad) En M no jerárquico: vale cualquier UC libre Jerarquía de afinidades SMT: Afinidad a núcleo Mejor ejecutar en UC lógica mismo núcleo CM: Afinidad a multinúcleo Mejor ejecutar en núcleo mismo multinúcleo NUMA: Afinidad a nodo Mejor ejecutar en mismo nodo rioridad matizada por la afinidad natural Bonus dependiendo de nivel de afinidad (SMT>CM>NUMA) 13

lanificación en multiprocesador jerárquico (2/2) Asignación de procesadores libres a nuevos procesos Si 2 UC comparten: potencia total < 2*potencia/UC 2 UC lógicas mismo núcleo; 2 núcleos mismo multinúcleo Reparto teniendo en cuenta grado de independencia Mejor ir ocupando UCs con mayor grado de independencia Creación de nuevo proceso Buscar UC lógica libre en núcleo libre de multinúcleo libre Aunque para minimizar consumo puede ser mejor lo contrario: Mejor usar núcleo libre de multinúcleo ocupado que de libre ermite mantener multinúcleo libre en bajo consumo Linux: administrador decide qué prima (consumo vs. eficiencia) echo 1 > /sys/devices/system/cpu/sched_mc_power_savings http://lxr.linux.no/linux+v3.4/include/linux/sched.h#l858 14

lanificación en M con una cola por UC Cola única: Accesos a cola requieren cerrojo: mala escalabilidad Limitado aprovechamiento de la afinidad natural rocesos cambian de UC cache line bouncing Cola por UC: UC se planifica de forma independiente No hay congestión por cerrojo y se aprovecha mejor afinidad En qué UC inicia ejecución nuevo proceso? En M procesos compiten por espacio en las diversas cachés Meta: carga equilibrada en el sistema UC menos cargada Aplicando jerarquía: rocesador seleccionado corresponde a Nodo menos cargado (N) Multinúcleo (M) menos cargado de N rocesador físico (F) menos cargado de M rocesador lógico (L) menos cargado de F 15

Multiprocesamiento simétrico (SM) cola/uc... roceso 3 roceso 2 roceso 7 roceso 5 Cola de procesos listos UC 1... roceso 1 roceso 4 roceso 6 roceso 8 Cola de procesos listos UC 2 Cola de procesos listos UC N... roceso 9 roceso 0 roceso 11 roceso 12 rocesador 1 rocesador 2 rocesador n Caché 1 Caché 2 Caché n Int. Int. Int. Red de conexión Interrupciones E/S Memoria principal 16

Asignación de procesador en UNIX Modelo de procesos de UNIX conlleva 3 puntos de decisión: exec. érdida total de afinidad uede ser buen momento para migrar Buscar procesador menos cargado aplicando jerarquía pthread_create. Mantiene afinidad Razonable asignar mismo procesador Aunque pierde paralelismo uede aplicarse jerarquía de afinidades fork. Situación intermedia: Afinidad pero hasta COW Mismo procesador o no? En Linux configurable (SD_BALANCE_FORK): http://lxr.linux.no/linux+v3.13.5/include/linux/sched.h#l781 17

Migración de procesos Mecanismo de equilibrado de carga debe ser explícito Migración de procesos ante desequilibrios eriódicamente o si cola de UC queda vacía Carácter jerárquico del multiprocesador or afinidad, mejor migrar entre UCs que pertenezcan al: 1. Mismo núcleo 2. Mismo multinúcleo 3. Mismo nodo Equilibrado teniendo en cuenta jerarquía Equilibrar nodos Equilibrar multinúcleos de cada nodo Equilibrar núcleos de cada multinúcleo Equilibrar procesadores lógicos de cada núcleo 18

lanificación con una cola por procesador rocesador 1.... 00000000... 4 3 2 Migración 6 rocesador 2 rocesador 3 5 7 1.... 00110010....... 9 8 00101001... 19

lanificación multiprocesador en Linux Mejoras en versión 2.6: uso de una cola por UC Gestión de carácter jerárquico: dominios de planificación Dominio=conjunto de grupos Dominio intenta mantener carga equilibrada en sus grupos Cada grupo tiene un poder de cómputo (CU ower) Tiene en cuenta grado de independencia de UC 2 UC lógica mismo núcleo CU ower del grupo = 1,1 Equilibrado de carga basado en info. específica de cada nivel Frecuencia de comprobación de desequilibrios Mayor en niveles más bajos Nivel de desequilibrio que provoca migración Menor en niveles más bajos Coste de la migración (mayor cuanto más afinidad se pierda) Entre UCs lógicas del mismo núcleo Coste 0 20

Dominios de planificación NUMA con 4 nodos de 3 UCs físicas (2 lógicas/física) Grupo Grupo Grupo Grupo 1 dominio de primer nivel Grupo Grupo Grupo Grupo Grupo Grupo Grupo Grupo Grupo Grupo Grupo Grupo 4 dominios de segundo nivel Grp Grp Grp Grp Grp Grp Grp Grp Grp Grp Grp Grp Grp Grp Grp Grp Grp Grp Grp Grp Grp Grp Grp Grp 12 dominios de tercer nivel 21

lanificación de aplicaciones paralelas en M Aspecto vinculado con el campo del paralelismo Básicamente ajeno al SO Implementado normalmente por entorno de ejecución paralelo resentación sólo da una visión general Aplicación paralela A formada por múltiples procesos/threads No finaliza hasta que no termine el último Alto grado de paralelismo e interacción rocesos/threads de una A deberían ejecutar simultáneamente En el sistema hay un conjunto de As con ejecución batch Uso de un planificador a largo plazo 2 técnicas más frecuentes Space sharing Gang scheduling Temas abiertos: asignación de UCs a A en M jerárquico 22

Space sharing Multiplexación en el espacio de las As Se asigna un conjunto de procesadores a cada A Una UC dedicada a cada proceso/thread Uso de primitivas de afinidad estricta del SO para la reserva Ejecución simultánea: interacción muy rápida Sin sobrecarga por cambios de contexto lanificador a largo plazo controla la entrada de trabajos A declara cuántas UCs requiere y espera entrada al sistema lanificador asigna UCs a As siguiendo una política dada FCFS, SJF (requiere estimación de tiempo), prioridad, EDF, backfilling: UCs disponibles no satisfacen a A 1º en cola Se cuela otra A pero garantizando no inanición de la 1ª Extensión para servidor paralelo: asignación dinámica Servidor puede ajustar grado de paralelismo a UCs disponibles 23

Gang scheduling Multiplexación en el espacio y en el tiempo de las As rocesos/threads de una A ejecutan simultáneamente ero no tienen procesadores dedicados En cada rodaja se ejecutan todos los proc/threads de varias As Dificultad/ineficiencia implementar una planificación sincronizada Sobrecarga por cambios de contexto involuntarios Reduce tiempo de espera de las As para entrar al sistema Aunque alarga su tiempo de ejecución lanificador controla la asignación de UCs a As A declara cuántas UCs requiere lanificador se basa en una matriz de Ousterhout Rodajas X rocesadores O[i,j]: qué proceso/thread ejecuta en UC i durante rodaja j 24

Ejemplo de planificación de As en M Sistema M con 6 procesadores 4 As por orden de prioridad (o llegada) requiere 4 UCs y dura 3 unidades Q requiere 2 UCs y dura 2 unidades R requiere 4 UCs y dura 2 unidades S requiere 2 UCs y dura 3 unidades 3 estrategias: Space sharing sin backfilling Space sharing con backfilling Gang scheduling 25

Ejemplo: Space sharing sin backfilling 1 1 1 R1 R1 2 2 2 R2 R2 procesadores 3 4 3 4 3 4 R3 R4 R3 R4 Q1 Q1 S1 S1 S1 Q2 Q2 S2 S2 S2 tiempo 26

Ejemplo: Space sharing con backfilling 1 1 1 R1 R1 2 2 2 R2 R2 procesadores 3 4 3 4 3 4 R3 R4 R3 R4 Q1 Q1 S1 S1 S1 Q2 Q2 S2 S2 S2 tiempo 27

Ejemplo: Gang Scheduling 1 R1 1 R1 1 2 R2 2 R2 2 procesadores 3 4 R3 R4 3 4 R3 R4 3 4 Q1 S1 Q1 S1 S1 Q2 S2 Q2 S2 S2 tiempo 28

lanificación en sistemas distribuidos Aspecto vinculado con el campo de los sistemas distribuidos Básicamente ajeno al SO Implementado normalmente por middleware resentación sólo da una visión general Falta de memoria compartida condiciona planificación en SS.DD. Equilibrio de carga migración (como con M y cola/uc) ero sin memoria compartida: costosa y técnicamente compleja Incluso no factible en algunos sistemas Necesario migrar mapa memoria y recursos asociados al proceso Asignación del procesador inicial a un proceso Ejecución en la UC donde se crea Ejecución remota para reparto de carga Más sencilla que migración roblemas en sistemas heterogéneos 29

Estrategias de equilibrado de carga Iniciada por el emisor: emisor busca receptores Nodo sobrecargado pide ayuda.e. a un conjunto aleatorio de nodos Envía un proceso al nodo seleccionado (p.e. menos cargado) Mejor nuevo: Ejecución remota, no requiere migración Sobrecarga peticiones ayuda inútiles si sistema muy cargado Iniciada por el receptor: receptor solicita procesos Nodo descargado ofrece ayuda.e. a un conjunto aleatorio de nodos ide un proceso al nodo seleccionado (p.e. más cargado) Requiere migración Sobrecarga ofertas inútiles si sistema poco cargado (- grave) Simétrico: combinación de las anteriores 30

lanificación de aplicaciones paralelas en SS.DD. Maximizar paralelismo: Esquema con 1 proceso de la A/nodo Gestión similar a Space sharing en M lanificador a largo plazo controla la entrada de trabajos A declara cuántas UCs requiere y espera entrada al sistema lanificador asigna UCs a As siguiendo una política dada FCFS, SJF (requiere estimación de tiempo), prioridad, EDF, backfilling: UCs disponibles no satisfacen a A 1º en cola Se cuela otra A pero garantizando no inanición de la 1ª Esquema con múltiples procesos de la A/nodo Asignación estática de conjunto de procesos a nodos Maximizando paralelismo y minimizando comunicación Depende de la arquitectura de la A. Ejemplos: Modelo basado en precedencias: grafo acíclico dirigido (DAG) Modelo basado en comunicaciones: grafo no dirigido 31

Ejemplo modelo precedencia de tareas (DAG) 10 10 1 2 0 N1 N2 1 20 1 1 3 4 20 lanificador 10 2 1 1 1 3 4 5 5 30 36 5 N1 N2 32

Ejemplo modelo basado en comunicaciones Ν1 Ν2 Ν3 Ν1 Ν2 Ν3 3 2 3 3 2 3 2 2 1 8 5 2 2 1 8 5 6 3 4 1 5 4 6 3 4 1 5 4 4 2 4 2 Tráfico entre nodos: 13+17=30 Tráfico entre nodos: 13+15=28 Tanenbaum. Sistemas Operativos Distribuidos 33