Planificador de Linux (Scheduler)



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

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).

Conceptos de Planificación

Tema 12: El sistema operativo y los procesos

Clase Práctica - Scheduling

Administración del Procesador

El modelo de Procesos

Planificación de Procesos

ALGORITMOS DE PROGRAMACIÓN NO EXPULSIVOS

Scheduling de procesos en Linux 2.6

PRÁCTICO 3. Comprender la administración de procesos e hilos de los sistemas operativos. Comprender la tarea y la elección de un planificador.

Sistemas Operativos Tema 5. Procesos José Miguel Santos Alexis Quesada Francisco Santana

Sistemas Operativos. Práctica 2: Scheduling

PRÁCTICO 3. Comprender la administración de procesos e hilos de los sistemas operativos Comprender la tarea y la elección de un planificador.

Clase práctica - Scheduling

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

Introducción a los Sistemas Operativos

Preguntas de autoevaluación tema 3

Sistemas Operativos. Procesos

IMPLANTACIÓN DE SISTEMAS OPERATIVOS 1º ASIR GESTIÓN DE PROCESOS

Sistemas Operativos. Trabajo Práctico N ō 3

Sistemas Operativos Scheduling de Procesos

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

Sistemas Operativos I

Procesos y Threads Procesos y Threads. Concurrencia Concurrencia Ventajas Ventajas. Rendimiento Rendimiento (paralelismo) (paralelismo)

Introducción a los Sistemas Operativos S.O.

Sistemas Operativos Preguntas de Revisión

ARQUITECTURA DE COMPUTADORES

Planificación de Procesos. Módulo 5. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco

FUNDAMENTOS DE INFORMÁTICA. Principios Básicos de Sistemas Operativos. Definición de Sistema Operativo

Taller de sistemas operativos PLANIFICADOR

MULTIPROGRAMACIÓN. Introducción a al Multitarea

Hilos Secciones Stallings:

Bloque I: Principios de sistemas operativos

Sistemas operativos 2ª edición. Capítulo 4 Planificación del procesador

Manipulación de procesos

Arquitecturas cliente/servidor

Sistemas Operativos Practica 1: procesos y concurrencia.

Cuestionario 1-Parte 1

Administración de procesos

SISTEMAS OPERATIVOS: PROCESOS. Planificación de procesos

Convivencia Gestión de Procesos

Linux 101 Gestión de Procesos

HP - UX. Qué es HP UX?

Procesos Definición y Estados

Virtualización Open Source. Virtulización basado en Linux para escritorios y servidores con compatibilidad para Microsoft Windows

Sistemas Operativos. Curso 2014 Planificación

Sistemas Operativos. Curso 2015 Planificación

Sistemas operativos, 2ª edición

1. INTRODUCCIÓN 1.1. Qué es un sistema operativo? El sistema operativo como máquina extendida El sistema operativo como gestor de

1. Sistema Operativo Unix

FUNDAMENTOS DE LOS SISTEMAS OPERATIVOS

FUNDAMENTOS DE SISTEMAS OPERATIVOS

Taller de Sistemas Operativos. Procesos 2012

Sistemas operativos 2ª edición. Capítulo 4 Planificación del procesador 3ª parte: planificación de máquinas virtuales

No hay un acuerdo universal sobre una definición de proceso, pero sí algunas definiciones aceptadas:

Sistemas Operativos. que es un sistema operativo?

Scheduling. Ricardo Corin

SISTEMAS OPERATIVOS. Informática Básica

Niveles de Planificación

Organización del Sistema Operativo

INFORMATICA III. Cap. I: Plataformas

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

Tarea 2. Descripción y Control de Procesos

SISTEMAS OPERATIVOS DE DISPOSITIVOS MÓVILES HÉCTOR DOMÍNGUEZ KRYSLER PINTO

SISTEMAS OPERATIVOS: Lección 4: Planificación de Procesos

Examen de Arquitectura de Computadores

Facultad de Ingeniería Industrial y de Sistemas v2.0 MA781U GESTION DE MEMORIA

Introducción a los Sistemas Operativos

Sistemas operativos 2ª edición. Capítulo 4 Planificación del procesador (extracto de las transparencias del libro)

Sistemas Operativos. Oscar Bedoya

Tema II. Descripción y control de procesos. UNED Manuel Fernández Barcell. Blog:

5.- Despacho de CPU. Utilización máxima de CPU con multiprogramación. Ciclo CPU I/O Ejecución de un proceso = ciclo de CPU (ejecución) y espera de I/O

Tema 2: Gestión de la CPU

Transcripción:

Planificador de Linux (Scheduler) Profesor Gilberto Díaz gilberto@ula.ve Universidad de Los Andes Facultad de Ingeniería Departamento de Computación G. Díaz (ULA) Planificador de Linux (Scheduler) Mérida, 2013 1 / 21

Planificador de Linux Definición La planificación es el método mediante el cual los hilos, los procesos o los flujos de datos tienen acceso a los recursos, por ejemplo, tiempo de procesador, ancho de banda en la comunicación, entre otros. G. Díaz (ULA) Planificador de Linux (Scheduler) Mérida, 2013 2 / 21

Planificador de Linux Planificador Es el componente del sistema operativo encargado de la planificación. La necesidad de algoritmos de planificación surgió con la aparición de sistemas operativos multi tareas. Completely Fair Scheduler (CFS) Desde la versión 2.6.23 el planificador tradicional de Linux fue remplazado por el CFS. El 80 % del diseño de CFS fundamentalmente modela un Procesador multi tarea ideal. G. Díaz (ULA) Planificador de Linux (Scheduler) Mérida, 2013 3 / 21

Completely Fair Scheduler Completely Fair Scheduler CFS busca mantener el balance (equidad) en el tiempo de procesador que se asignan a los procesos. Cada proceso debe recibir un tiempo equitativo. Cuando un proceso esta fuera de balance, se le asigna tiempo de ejecución en el procesador. Para determinar el balance, CFS mantiene la cantidad de tiempo que se le ha asignado a un proceso en lo que llaman Virtual Runtime. G. Díaz (ULA) Planificador de Linux (Scheduler) Mérida, 2013 4 / 21

Completely Fair Scheduler Completely Fair Scheduler CFS utiliza una colas basadas en el tiempo. El proceso con menor Virtual Runtime es el más próximo a ser ejecutado. G. Díaz (ULA) Planificador de Linux (Scheduler) Mérida, 2013 5 / 21

CFS mantiene un árbol rojo-negro ordenado por tiempo. G. Díaz (ULA) Planificador de Linux (Scheduler) Mérida, 2013 6 / 21

Un árbol RB está balanceado El sub árbol con claves menores a n se encuentra a la izquierda. El sub árbol con claves mayores a n se encuentra a la derecha. La profundidad de 2 nodos cualquiera no difiere en más de 1. Los sub árboles son balanceados también. La búsqueda es O(log n) G. Díaz (ULA) Planificador de Linux (Scheduler) Mérida, 2013 7 / 21

El nodo más a la izquierda tiene la clave más pequeña. Eso quiere decir que es el nodo con el menor virtual runtime. Es decir, es el nodo que representa al proceso que más necesita ejecutarse El nodo de más a la derecha tiene la clave más grande (mayor virtual runtime). Es el proceso que menos necesita ejecución. Entonces, CFS selecciona el nodo más a la izquierda para ser despachado. El nodo se elimina del árbol. Si no ha terminado, se inserta de nuevo con un nuevo valor de virtual runtime. G. Díaz (ULA) Planificador de Linux (Scheduler) Mérida, 2013 8 / 21

virtualruntime+ = (delta_exec)(nice_0_load) se(load.weight) delta_exec Cantidad de tiempo de ejecución. NICE_0_LOAD Valor de la unidad de peso. G. Díaz (ULA) Planificador de Linux (Scheduler) Mérida, 2013 9 / 21

Los arboles rojo-negro son auto-balanceables. Ningún camino es, a lo sumo, el doble en tamaño que cualquier otro. G. Díaz (ULA) Planificador de Linux (Scheduler) Mérida, 2013 10 / 21

Las operaciones en el árbol ocurren en tiempo O(log(n)), donde n es el número de nodos del árbol. De esta manera se pueden ejecutar las operaciones de inserción y eliminación de procesos de manera rápida y eficiente. G. Díaz (ULA) Planificador de Linux (Scheduler) Mérida, 2013 11 / 21

Políticas de Planificación Políticas de Planificación Utiliza una técnica de tiempo compartido. A cada proceso se le asigna un quantum de tiempo para ejecutarse en el procesador. La planificación se ejecuta acorde a un ranking de prioridad. Utiliza prioridades dinámicas que son ajustadas a través del tiempo. Los procesos que no han sido ejecutados por ele procesador en un periodo largo de tiempo, aumentan su prioridad. Los que han sido ejecutados por mayor tiempo, reducen su prioridad. G. Díaz (ULA) Planificador de Linux (Scheduler) Mérida, 2013 12 / 21

Políticas de Planificación Políticas de Planificación Se utiliza la expropiación de procesos. Un proceso se expropia cuando: Se acaba su quantum de tiempo. Entra un nuevo proceso con mayor prioridad que se ejecuta actualmente. G. Díaz (ULA) Planificador de Linux (Scheduler) Mérida, 2013 13 / 21

Políticas de Planificación Políticas de Planificación Un proceso puede tener 2 tipos de prioridades: Estática: Dinámica: G. Díaz (ULA) Planificador de Linux (Scheduler) Mérida, 2013 14 / 21

Prioridad Estática Prioridad Estática Estática: Es asignada cuando el proceso es creado. Los procesos de tiempo real también tienen prioridad estática (de 0 a 99). Estos procesos tienen prioridad mayor a los procesos comunes y no puede ser cambiada por el planificador. Estos utilizan 2 tipos de políticas: SCHED_FIFO SCHED_RR Los procesos normales utilizan la política SCHED_OTHER. G. Díaz (ULA) Planificador de Linux (Scheduler) Mérida, 2013 15 / 21

Políticas de Planificación Políticas de Planificación Un proceso puede tener 2 tipos de prioridades: Estática: Es asignada cuando el proceso es creado. Los procesos de tiempo real también tienen prioridad estática (de 0 a 99). Estos procesos tienen prioridad mayor a los procesos comunes y no puede ser cambiada por el planificador. Estos utilizan 2 tipos de políticas: G. Díaz (ULA) Planificador de Linux (Scheduler) Mérida, 2013 16 / 21

Políticas de Planificación Políticas de Planificación Se pueden clasificar los procesos mediante dos esquemas: CPU-bound y I/O-bound Interactive, Batch y Real-Time El planificador asigna mayor prioridad a procesos en tiempo real. Estos nunca pueden ser bloqueados por procesos de menor prioridad. Los procesos Batch son penalizados por el planificador, ya que no son responsivos y corren generalmente en segundo plano. Los procesos Real Time necesitan mayor tiempo de ejecución. G. Díaz (ULA) Planificador de Linux (Scheduler) Mérida, 2013 17 / 21

Funcionamiento Funcionamiento El planificador de Linux ejecuta varios métodos para cumplir su función, entre los principales están: scheduler_tick() try_to_wake_up() recalc_task_prio() load_balance() schedule() G. Díaz (ULA) Planificador de Linux (Scheduler) Mérida, 2013 18 / 21

Funcionamiento Rutina schedule() Es el método más importante del planificador. Este método es el responsable de elegir el próximo proceso a ser ejecutado. Es ejecutado cuando: Un proceso cede voluntariamente el CPU. Un proceso espera por una señal para dormir. Un proceso agota su tiempo de ejecución. Otros casos. G. Díaz (ULA) Planificador de Linux (Scheduler) Mérida, 2013 19 / 21

Kernel de Linux G. Díaz (ULA) Planificador de Linux (Scheduler) Mérida, 2013 20 / 21

Kernel de Linux Kernel de Linux Se encuentra en el directorio de los códigos fuentes del kernel, en el directorio /usr/src/linux/kernel/sched/. Algunos de los archivos principales son: sched.c : Contiene el código del planificador genérico. Las políticas de gestión están implementadas en otros archivos. sched_fair.c : Contiene el código del planificador CFS y provee las politicas de planificación para los procesos Interactive y Batch. sched_rt.c : Provee las políticas usadas para los procesos Real Time. G. Díaz (ULA) Planificador de Linux (Scheduler) Mérida, 2013 21 / 21