Planificación de uso del procesador

Slides:



Advertisements
Presentaciones similares
Sistemas Operativos Administración del procesador.
Advertisements

Planificación de Monoprocesadores
I11 A y i 11 B Séptimo semestre.
Cuartó parcial 7A 7B.
III - Gestión de memoria
Planificador de Procesos
SISTEMAS OPERATIVOS Un Sistema operativo (SO) es un software que actúa de interfaz entre los dispositivos de hardware y los programas de usuario.
Uno de los conceptos mas importantes que gira entorno a un sistema operativo es el de proceso. Un proceso es un programa en ejecución junto con el entorno.
Sistemas en estratos. Descripción: se organiza en una jerarquía de estratos, estando construido cada uno de ellos sobre el otro que tiene menor jerarquía.
Sistemas Operativos Unidad II Procesos.
Modelo de procesos de dos estados
POLITICAS DE PLANIFICACION
Base de la biblioteca de threads a nivel usuario del proyecto SODIUM.
SISTEMAS OPERATIVOS UNIDAD 1..
INGENIERIA EN SOFTWARE y HARDWARE
Unidad 3: Administración de la CPU
TRABAJO DE LUIS VIRACOCHA
Administración del Procesador
Introducción a los SSOO Sebastián Sánchez Prieto.
Elemento Lógico (Software)
HILOS Y COMUNICACIÓN ENTRE PROCESOS
CLASIFICACIÓN DEL SISTEMA OPERATIVO POR APLICACIÓN
TEMA 1: «GESTIÓN DE PROCESOS»
Tema 10: Gestión de Memoria
Planificación de Tareas Aperiodicas
Sistemas Operativos Procesos.
Planificación de procesos
Estructura del sistema operativo
Profesor: Rodrigo Sanhueza Figueroa
Administración de Memoria Memoria Virtual
Capítulo 6: Planificación del CPU – Parte a
Administración de Memoria
Planificación del Procesador
EL SISTEMA OPERATIVO.
Planificación Dinámica de Tareas
Sebastián Sánchez Prieto
Planificación de Procesos
Teoría de Sistemas Operativos Planificación Procesos
Teoría de Sistemas Operativos Departamento de Electrónica 2º Semestre, 2002 Gabriel Astudillo Muñoz
Planificación y Gestión de procesos
Capítulo 7 Gestión de memoria.
Planificaciones por prioridad
Planificación de Tareas Aperiodicas
Gestión de procesos Sistemas Operativos Edwin Morales
Gestión de Procesos.
Sistemas Operativos Tema 4
1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para.
Planificación. Visión General El planificador del SO se construye a partir de un mecanismo para la conmutación de contexto y una política que determina.
Gestión de Memoria.
Sistemas Operativos Unidad III Procesos.
Métodos de Planificación
comenzar Listo Ejecutando Terminado Bloqueado Un proceso ejecuta y solo abandona el control de la CPU cuando lanza E/S o termina. La cola de listos se.
Guido Tapia B.. La cola de listos se reparten en colas separadas: procesos de primer plano (interactivos) procesos de segundo plano (batch)‏ Cada cola.
GESTIÓN DE PROCESOS.
Unidad 2 – Gestión de Procesos
Estados de procesos El estado de un proceso define su actividad actual. Durante su existencia, un proceso pasa por una serie de estados discretos. Transiciones.
LSI. Freddy Veloz Sistemas Operativos
PLANIFICACION DEL PROCESADOR
ROUND ROBIN.
TEMA: PROCESOS y PLANIFICACIÓN
Teoría de Sistemas Operativos Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
Sesión 8 Procesos.
TIPOS DE SISTEMAS OPERATIVOS.  Que es un sistema operativo??  Es el encargado de brindar al usuario una forma amigable y sencilla de operar, interpretar,
Planificación de uso del procesador Rina Arauz. Planificación de CPU 2 UNAN-Leon La ejecución de un trabajo se compone de secuencias de procesador y de.
Tema 4: Planificación de Procesos
Gestión de Memoria – Parte 2
Planificación de CPU Conceptos Básicos Criterios de Planificación Algoritmos de Planificación Planificación con Múltiples Procesadores Planificación Real-Time.
Bloqueos Mutuos Modelo del Sistema Caracterización de Deadlock Métodos de manejo de Deadlocks Prevención de Deadlocks Evitación de Deadlocks Detección.
Planificación de CPU. Ráfagas de CPU Ciclo de ráfagas de CPU–E/S – La ejecución de procesos consiste en un ciclo de ejecución de CPU y esperas de E/S.
Planificación de uso del procesador
Transcripción de la presentación:

Planificación de uso del procesador Sebastián Sánchez Prieto

Concepto de planificación Programa 1 Sistema Operativo Programa 2 En ejecución Salvar registros Inactivo Interrupción o llamada al sistema Restaurar registros Inactivo En ejecución Salvar registros Interrupción o llamada al sistema Restaurar registros Inactivo En ejecución  1999-2003 S2P, OGP & IGT

Planificación La ejecución de un trabajo se compone de secuencias de procesador y de espera Objetivos: Equidad Eficiencia Bajo tiempo de respuesta Rendimiento alto Minimizar el tiempo de espera Todos estos objetivos no se pueden conseguir simultáneamente  1999-2003 S2P, OGP & IGT

Colas de procesos PCB 12 PCB 30 PCB 24 Cola de preparados Cabeza Misc. Disco Cabeza Misc. Impresora Cabeza CD-ROM Cabeza  1999-2003 S2P, OGP & IGT

Planificadores (schedulers) Existen dos planificadores de procesador Planificador a largo plazo Controla el grado de multiprogramación Planificador a corto plazo Selecciona entre los trabajos cargados en memoria y que están preparados para ejecutarse cual hará uso del procesador El planificador a corto plazo debe ser muy rápido ya que entra en juego con una frecuencia muy alta Planificador a medio plazo Carga y descarga trabajos desde el disco a la memoria y de la memoria al disco en función del grado de sobrecarga del sistema.  1999-2003 S2P, OGP & IGT

Relación entre los planificadores CPU Cola de preparados E/S Cola de E/S E/S Cola de E/S E/S Cola de E/S  1999-2003 S2P, OGP & IGT

Criterios de planificación Utilización del procesador Maximizar el rendimiento del procesador Rendimiento (“Throughput”) Trabajos completados por unidad de tiempo Tiempo de estancia (“Turnaround time”) Tiempo transcurrido desde que se lanza hasta que finaliza Tiempo de espera Por operaciones de E/S o por otros aspectos Tiempo de respuesta Importante en aplicaciones interactivas o de tiempo real  1999-2003 S2P, OGP & IGT

Planificación FCFS Primero en entrar, primero en salir Se lleva a cabo manejando la cola de procesos preparados como una cola FIFO Es el algoritmo más sencillo de codificar Características y prestaciones: Depende fuertemente de los tipos de trabajo y del instante en que llegan Limitados por CPU: Mucha CPU y poca E/S Limitados por E/S: Mucha E/S y poca CPU  1999-2003 S2P, OGP & IGT

Eficiencia FIFO Los tiempos de estancia y respuesta varían fuertemente de un momento a otro Los tiempos medios de retorno son menores en el segundo caso que en el primero tra=16 trb=11 Trabajo 1 Trabajo 2 Trabajo 3 12 15 21 Trabajo 2 Trabajo 3 Trabajo 1 3 9 21  1999-2003 S2P, OGP & IGT

Shortest Job First (SJF) Asocia de forma dinámica a cada proceso la longitud de su siguiente ráfaga de CPU Asigna la CPU al trabajo con la ráfaga siguiente más pequeña Este algoritmo es óptimo para reducir los tiempos medios de retorno Su dificultad es conocer cuáles van a ser las duraciones de las próximas ráfagas de CPU de cada proceso ¿Cómo se estima la duración de la siguiente ráfaga de CPU?  1999-2003 S2P, OGP & IGT

Método de predicción La siguiente ráfaga de CPU se predice como una media exponencial de las longitudes medias en anteriores ráfagas Sea: tn: longitud de la n-ésima ráfaga de CPU tn: valor predicho para la n-ésima ráfaga de CPU a : parámetro de ajuste tn+1 = a tn + (1-a) tn tn: contiene la información más reciente tn: contiene la historia pasada  1999-2003 S2P, OGP & IGT

Algoritmos de prioridad Se asocia una prioridad a cada proceso y la CPU se asigna al trabajo con la prioridad más alta Las prioridades pueden definirse de dos formas: Internamente: Consumo de tiempo de CPU Cantidad de memoria usada Recursos empleados Externamente Tipo de usuario Tipo de aplicación Etcétera Problema: posible inanición (“starvation”) de determinadas solicitudes  1999-2003 S2P, OGP & IGT

Algoritmos con requisa En los algoritmos anteriores, una vez que la CPU ha sido asignada a un proceso, éste la mantiene hasta que pide una E/S o termina ¿Cómo hacer que la CPU sea retirada a un proceso una vez asignada? Prioridad con requisa (“preemption”): i.e. SJF Llega el Trabajo 2 con ráfaga más corta Trabajo 1 Trabajo 2 Trabajo 1 Trabajo 3 3 7 12 23  1999-2003 S2P, OGP & IGT

Algoritmos “round robin” Usados en sistemas de tiempo compartido La CPU se asigna a cada proceso preparado durante un cuanto de tiempo “q” La cola de procesos preparados es FIFO Si la ráfaga de CPU > q  Interrupción TIME-OUT Si la ráfaga de CPU < q  Liberación de CPU Prestaciones: dependen fuertemente de q q  ¥  round-robin degenera en FCFS q  0  CPU/n Si “q” es muy pequeño se pierde mucho tiempo en el cambio de contexto. Disminuye la eficacia del procesador Si “q” es grande, los tiempos de respuesta aumentan Regla empírica: el 80% de las ráfagas de CPU deben ser menores que el cuanto Problema: sólo existe una cola de trabajos preparados, no distingo entre tipos de trabajos  1999-2003 S2P, OGP & IGT

Colas multinivel Dividen la cola de preparados en colas separadas en función del tipo de trabajo Cada cola tiene su propio algoritmo de planificación Debe existir otro algoritmo para elegir la cola en cada momento Prioridad alta Tareas del sistema Tareas interactivas Tareas de edición Tareas batch Prioridad baja  1999-2003 S2P, OGP & IGT

Colas multinivel realimentadas Los trabajos se mueven. Consideraciones: El algoritmo de planificación de cada cola Métodos para “ascender” y “descender” Dónde poner inicialmente a los trabajos Quantum = 10 Quantum = 20 FCFS  1999-2003 S2P, OGP & IGT

Algoritmo UNIX SVR3 y 4.3 BSD Un reloj HW interrumpe cada 10 ms La rutina de tratamiento del reloj tick(), tiene una de las prioridades más altas Recarga el reloj HW si es necesario Actualiza el uso de CPU del proceso activo Cálculo de prioridades y manejo de finalización del quantum Actualiza la fecha Se manejan los callouts Se despierta al swapper y pagedaemon cuando es necesario Se manejan las alarmas Sólo la supera la interrupción de fallo de alimentación Prioridades comprendidas entre 0 y 127 Núcleo: entre 0 y 49 Procesos de usuario: entre 50 y 127 El núcleo es ininterrumpible  1999-2003 S2P, OGP & IGT

Estructura proc Campos relacionados con la planificación: — p_pri Prioridad real — p_usrpri Prioridad en modo usuario — p_cpu Uso reciente de CPU — p_nice Definido por el usuario (oscila entre 0 y 39, valor por defecto 20) Cada tick se incrementa el valor de p_cpu para el proceso activo hasta un máximo de 127 Inicialmente vale 0 Cada segundo se recalculan las prioridades (schedcpu() vía callout)  1999-2003 S2P, OGP & IGT

Recálculo de prioridades El campo p_cpu se reduce por un factor denominado de decadencia (decay) En SVR3 decay=1/2 En 4.3 BSD decay=(2*car_media)/(2*car_media+1) car_media es el número medio de procesos activos en el último segundo Fórmula: p_usrpri=PUSER+(p_cpu/4)+(2*p_nice) PUSER=50  1999-2003 S2P, OGP & IGT

Estructuras de datos En la misma cola se emplea RR whichqs Cola 0 Prio. 0-3 Proc 1 ... qs Cola 1 Prio. 4-7 Cola 2 Prio. 8-11 Cola 3 Prio. 12-15 Cola 4 Prio. 16-19 Cola 31 Prio. 124-127 En la misma cola se emplea RR Cada 100 ms se invoca roundrobin()  1999-2003 S2P, OGP & IGT

Consecuencias del algoritmo Si la carga es alta es ineficiente recalcular todas las prioridades cada segundo No existe la posibilidad de asignar CPU a grupos de procesos No existen plazos de respuesta acotados Las aplicaciones no tienen control sobre su prioridad El mecanismo nice es simple e inadecuado Se puede producir inversión de prioridades, el núcleo es ininterrumpible Cuando un proceso de baja prioridad hace una llamada al sistema puede retardar a uno de alta prioridad  1999-2003 S2P, OGP & IGT

Algoritmo de VAX/VMS Es un algoritmo con prioridades (32 niveles) Las prioridades bajas (0-15) corresponden a procesos de usuario Tienen una prioridad base que es fija Offset: hasta 6 niveles sobre la base A igualdad de prioridad: RR Se beneficia a las tareas limitadas por E/S Las prioridades altas altas (16-31) corresponden a procesos de tiempo real Su prioridad no suele cambiar Planificación con prioridades y desalojo  1999-2003 S2P, OGP & IGT

Algoritmo utilizado en W2K Pensado para ser muy sensible a las necesidades de un único usuario en un entorno interactivo o en el papel de servidor Algoritmo apropiativo con prioridades (base + offset) WNT soporta 32 niveles de prioridad Prioridades 16-31 -> tareas de tiempo real Prioridades 1-15 -> tareas ordinarias La prioridad 0 es para “Zero page thread” Idle aparece con prioridad 0, pero se ejecuta con una prioridad menor La prio. de un hilo ordinario no puede ser > 15  1999-2003 S2P, OGP & IGT

Algoritmo utilizado en W2K Las colas son colas doblemente enlazadas de tareas Ready Las colas son comunes a todos los procesadores Se planifican hilos no procesos Los hilos del mismo nivel se ejecutan en RR En sistemas MP se ejecutan hilos simultáneamente No se garantiza la ejecución de los n hilos más prioritarios si hay n procesadores Se intenta mantener cada hilo en su procesador Un procesador puede interrumpir a otro para que planifique una tarea  1999-2003 S2P, OGP & IGT

Planificación de hilos en W2K No existe un planificador central!!! Las rutinas de planificación se invocan cuando se produce un evento que cambia el estado Ready de un hilo Evento que provocan la activación del “scheduler” Interrupción del temporizador (fin del quantum) Interrupción del temporizador (“timed wait”) Interrupción HW (finalización de E/S) Operación V en un “Waitable object” Operación P en uno o varios “Dispatch objects”  1999-2003 S2P, OGP & IGT

Escenarios de planificación Apropiación Un hilo con mayor prioridad que el activo pasa al estado Ready El hilo de menor prioridad es expulsado El hilo requisado pasa a la cabeza de la cola Ready Conmutación voluntaria Bloqueo en un “dispatch object” Finalización Disminución de la prioridad de modo explícito Finalización de quantum Se decrementa la prioridad del hilo a no ser que ya se encuentre en la prioridad base El hilo se introduce al final de la cola correspondiente a su prioridad El hilo puede seguir ejecutándose si no hay tareas de igual o mayor prioridad listas para ejecutarse  1999-2003 S2P, OGP & IGT

Apropiación La apropiación es estrictamente dirigida por eventos No se espera por el siguiente pulso de reloj No se garantiza un periodo mínimo de ejecución Los hilos en modo núcleo pueden ser también requisados (a no ser que IRQL >= 2) Ready Running Desde el estado de espera  1999-2003 S2P, OGP & IGT

Lista después de una espera El proceso que termina la espera tiene menor prioridad que el proceso activo Si el hilo que ha estado esperando no tiene una prioridad mayor que el hilo activo, es insertada al final de la cola que le corresponda Ready Running Desde el estado de espera  1999-2003 S2P, OGP & IGT

Conmutación voluntaria Cuando la tarea activa abandona la CPU Se ejecuta la tarea lista que se encuentre a la cabeza de la cola de prioridad más alta Ready Running Al estado de espera  1999-2003 S2P, OGP & IGT

Finalización de quantum Cuando la tarea activa finaliza su quantum, se coloca al final de la cola de listos Se aplica tanto a tareas de tiempo real como ordinarias, tanto en modo supervisor como usuario Si no existen tareas en la cola, puede continuar su ejecución durante otro q Boosting??? Ready Running  1999-2003 S2P, OGP & IGT

Valor del quantum El quantum estándar es de 2 ticks (12 para NT Server) El clock tick es de 10 ms, 15 ms en algunos Pentium MP El quantum lógico es 6 (36 en NT Server) El quantum se decrementa en 3 cada clock tick Por tanto, el quantum es de 2 ticks Después de una espera el quantum sólo se decrementa en 1  1999-2003 S2P, OGP & IGT

Ensanchamiento del quantum Aplicable a la tarea que se ejecuta en primer plano En lugar de aumentar su prioridad, se le aumenta el quantum Posibles valores: Maximum = 6 ticks Middle = 4 ticks None = 2 ticks Este ensanchamiento no se aplica a NT Server Ready Running  1999-2003 S2P, OGP & IGT

Ajuste de prioridad en W2K Boost y Decay se aplican sólo a hilos con prioridades comprendidas entre 1 y 15 ¿Cuándo se aplica? Fin de E/S Fin de espera por eventos o semáforos La tarea de primer plano finaliza una espera Tareas GUI despiertan como consecuencia de una “window input” Para evitar “CPU starvation” No aplicable a tareas de TR  1999-2003 S2P, OGP & IGT

Boosting Después de una E/S: especificado por el device driver Valores de boost: 1 disco, CD-ROM, puerto paralelo y vídeo 2 puerto serie, red, tubería con nombre 6 teclado y ratón 8 sonido Después de una espera por evento o semáforo Boost = 1 Después de una espera en un “dispatcher object” por parte de la tarea en primer plano Boost = 2 Comportamiento de boost Se aplica a la prioridad base Nunca se debe superar el máximo de 15 Si después del boost se obtiene un quantum Se cae un nivel y se asigna otro quantum Así hasta llegar a la prioridad base  1999-2003 S2P, OGP & IGT

Decay cuando finaliza el quantum Se cae a la siguiente cola Nunca por debajo de la prioridad base Ready Running  1999-2003 S2P, OGP & IGT

Boost y Decay Prioridad Prioridad base Decay Boost Apropiación Activo Espera Activo Ready Activo Tiempo  1999-2003 S2P, OGP & IGT

Boost para hilos GUI Cuando un hilo GUI se despierta como consecuencia de un “window input” se le asigna un boost = 2 Este boost se suma a la prioridad actual, no a la prioridad base Objetivo: mejorar el tiempo de respuesta de las tareas interactivas  1999-2003 S2P, OGP & IGT

¿Cómo evitar la inanición? El “Balance Set Manager” busca esos hilos Es un hilo con prioridad 16 Se despierta cada segundo y analiza la cola de preparados Busca hilos que lleven preparados 300 ticks sin haberse ejecutado Trata de evitar la inversión de prioridades En cada pasada busca 16 hilos listos Sube la prioridad de los hilos (boosting) hasta un valor de 10  1999-2003 S2P, OGP & IGT