planificación de procesos cecilia hernández 2007-1
TRANSCRIPT
Planificación de procesos
Cecilia Hernández
2007-1
Planificación de Procesos
Recordando cambio de contexto Cambiando CPU de un proceso a otro
• Procesos cambian de estados • ejecución a bloqueado (ejecución instrucción I/O)
• bloqueado a listo por interrupciones
• Proceso espera por evento, evento se produce
• Reloj interrumpe y SO planifica a otro proceso
Planificación: Elegir que proceso de la cola de listos ejecutar Planificación implica una decisión (política) Cambio de contexto es una forma de hacerlo
(mecanismo)
Multiprogramación y planificación
Multiprogramación permite aumentar la utilización de recursos y productividad sobreponiendo E/S y procesamiento Que procesos/hebras ejecutar y por cuanto tiempo?
2 visiones para la planificación en CPU Largo plazo: determina nivel de multiprogramación
• Cuantos trabajos se cargan a memoria• Ingresarlo a memoria o sacarlo (swapping)
Corto plazo: qué trabajo ejecutar a continuación para proporcionar un buen servicio
• Ocurre frecuentemente, idea minimizar sobrecarga por cambio de contexto
• Idea de buen servicio depende de muchas cosas
Objetivos de Planificación
Maximizar la utilización de CPU (CPU Utilization) Maximizar la Productividad número de requerimientos
atendidos por unidad de tiempo (throughput) Minimizar tiempo de respuesta promedio (Response time)
Desde inicio hasta obtención primera respuesta de sistema Minimizar tiempo de espera promedio (Waiting time)
Tiempo en cola de listos Minimizar tiempo que tarda en proceso ejecutarse
completamente, de inicio a fin (Turnaround time) Favorecer algunos procesos, prioridad (Priority) Evitar espera indefinida Algunos sistemas favorecen algunos objetivos frente a otros
Productividad. Sistema de procesamiento de transacciones Tiempo de respuesta. Sistema interactivo
Diferencia entre sistemas batch e interactivos
Sistemas batch Importa maximizar throughput y minimizar turnaround
time Sistemas interactivos
Importa maximizar throughput y minimizar turnaround time y response time
De acuerdo a como se comportan procesos o hebras en un sistema Procesos batch (CPU-bound) Procesos interactivos (I/O-bound)
También importante para planificadores
Típicamente tratan de evitar inanición (starvation) Cuando un proceso es prevenido de progresar
porque otro proceso tiene el recurso que necesita• Ejemplo. Procesos de alta prioridad no permiten a
procesos de baja prioridad ejecutarse
Inanición también se puede producir en hebras/procesos sincronizados
Planificador
Módulo que mueve trabajos entre colas Algoritmo de planificación determina que trabajo ejecutar
a continuación Se ejecuta cuando
• Un trabajo pasa de listo a bloqueado• Ocurre una interrupción del timer• Se crea o termina un trabajo
2 tipos de sistemas de planificación• No apropiativa
• Planificador espera que trabajo termine o ceda CPU
• Apropiativa• Planificador interrumpe trabajo en ejecución y fuerza un context
switch
Planificación Apropiativa/No Apropiativa
No Apropiativa. Una vez que procesos adquieren CPU no la liberan, excepto Proceso pasa a estado de espera (bloqueado) Proceso termina
Apropiativa. SO puede decidir quitar CPU a proceso para dársela a otro Usa interrupciones de reloj
Algoritmos No 1 (FCFS)
FCFS (First Come, First Served) Atención por orden de llegada Justo, simula mundo real (banco, supermercado,
etc) Típicamente No Apropiativo Ejemplo: P1 : 24ms, P2 : 3ms, P3 : 3ms
• Tiempo de respuesta promedio? Tiempo de espera
promedio? Ventajas? Desventajas?
FCFS (cont)
Ventajas Ningún proceso espera indefinidamente
Desventajas Tiempo de espera promedio puede ser alto, depende
de:• tiempo de ejecución de procesos• orden de llegada• procesos cortos tienen espera alta si están detrás de los
largos
Puede producir baja utilización de recursos• cuando procesos esperan podrían ocupar otros recursos
Algoritmo No2 (SJF)
Short-Job-First (SJF) Asocia cada proceso con el tiempo de ejecución,
tiempo que ocupo CPU la ultima vez antes de cambiarse a estado de espera
CPU es asignada a proceso con el menor tiempo de ejecución
Si dos procesos tienen igual tiempo de ejecución se aplica FCFS
Calcule tiempo de respuesta y espera promedios usando ejemplo anterior
Puede ser apropiativo y no apropiativo
SJF (cont)
Versión apropiativa Shortest-Remaining-Time-First Calcula tiempo de ejecución mas corto y tiempo de
llegada Ejemplo: Calcular tiempo de respuesta y espera
promedio
Proceso Tiempo llegada Tiempo ejecución
P1 0 8
P2 1 4
P3 2 9
P4 3 5
SJF (cont)
Ventajas Parece perfecto Mejor tiempo de espera promedio que FCFS
Desventajas Espera indefinida? Como estimar tiempo de procesamiento de
próximo requerimiento de proceso?
Algoritmo No 3: (RR)
Round Robin (RR) Cola de procesos listos tratada como cola FIFO
circular A cada proceso se le entrega CPU por un periodo
de tiempo, llamado quantum• Proceso se ejecuta por la duración del quantum o hasta
que pasa a bloqueado• Ejemplo P1 : 24 ms, P2 : 3ms, P3 : 3ms, quantum 4ms
Ventajas ?• Estupendo para procesos interactivos (sistemas de
tiempo compartido)
RR (cont)
Desventajas Valor del quantum muy importante en rendimiento
de RR• Problemas si es muy chico?
• Tiempo de overhead por cambio de contexto
• Problemas si es muy grande?• Se acerca a FCFS
• Recomendación• 80% de tiempo de ejecución de procesos (cada
requerimiento antes de bloquearse) debería ser mas cortas que quantum
Algoritmo No 4 : Prioridades
Asignar prioridades a procesos Ejecutar proceso con mayor prioridad Si hay procesos con igual prioridad, aplicar FCFS SJF, prioridad es tiempo de próximo requerimiento Ejemplo:
Proceso Tiempo EjecuciónPrioridad
P1 10 3
P2 1 1
P3 2 4
P4 1 5
P5 5 2
Prioridades (cont)
Como asignar prioridades Internamente por SO, en base a uso de recursos
(memoria, archivos, etc) Externamente (no por SO) de acuerdo a importancia de
procesos Espera indefinida
Si continuamente llegan procesos de alta prioridad, los de baja prioridad esperan indefinidamente
Solución Espera indefinida Envejecimiento
• aumentar prioridad como función acumulada en el tiempo• decrementar prioridad como función acumulada de tiempo de
procesamiento
Combinando Algoritmos
En la práctica los sistemas actuales usan una combinación de estos algoritmos (RR, Prioridad, SJF) Ejemplo: Múltiples colas retroalimentadas
• Tiene jerarquía de colas• Tiene prioridades para ordenar las colas• Nuevos procesos entran a cola de mayor prioridad• Cada cola planificada con RR• Quantums son distintos en cada cola• Procesos se cambian de colas en base a historia
Múltiples Colas Retroalimentadas
Idea, separar procesos en base a sus necesidades de ejecución
Procesos interactivos están en las colas de mayor prioridad
Procesos que usan mucha CPU se cambian a colas de menor prioridad
Procesos que llevan mucho tiempo en el sistema se cambian a colas de mayor prioridad
Planificación en UNIX
Usa múltiples colas realimentadas De acuerdo a tipo de proceso
• procesos de tiempo compartido• procesos de sistema• Procesos de tiempo real
Planificación por prioridad entre distintas colas y RR dentro de cada cola
• Procesos con alta prioridad siempre se ejecutan primero• Procesos con la misma prioridad se planifican con RR
Procesos cambian prioridad dinámicamente• Se incrementa si proceso hace E/S antes de terminar
quantum• Se decrementa si proceso usa todo su quantum
Objetivo?• Premiar procesos interactivos
• Típicamente usan CPU por periodos pequeños de tiempo
Planificador Linux
Soporta: una CPU SMP (Simultaneous Multi-Processors)
• Multiprocesadores en un chip o no, cada uno con caches y compartiendo Memoria Principal
SMT (Simultaneous Multi-Threading) • Procesador con recursos adicionales para soportar
hebras. Sistema con Memoria principal compartida NUMA (Non- Uniform Memory Access)
• Unico sistema usando mas de un nodo (una máquina con un procesador o un multiprocesador es decir con propia CPU o set de CPUs y memorias)
Planificador de CPU en Linux 2.4
2 algoritmos para planificación de procesos Uno para procesos de tiempo compartido, en donde CPU
se multiplexa en forma justa entre procesos Una para procesos con requermientos de tiempo real,
donde prioridades absolutas son más importantes que justicia
Algoritmo para procesos que comparten tiempo Prioridades y créditos asociadas a proceso Proceso con más créditos se ejecuta primero A cada interrupción del timer se decrementan créditos de
proceso en ejecución. Cuando llega a 0 se planifica el siguiente proceso
Cuando créditos de todos los procesos listos es 0, créditos se recalculan para todos los procesos (incluyendo los bloqueados)
• créditos = (créditos/2) + prioridad
Algoritmo Planificador Linux 2.4 vs 2.6
Diferencias entre version 2.4 y 2.6 Algoritmos de 2.4 del orden O(n)
• Tiempo ejecución varía linealmente al aumentar tamaño entrada
Algoritmos de 2.6 del orden O(1)• Tiempo ejecución constante independiente del
número de tareas a ejecutar en sistema
Estructuras básicas en 2.6• Runqueues
• Priority arrays
Algunos problemas mejorados en 2.6
Planificación de tareas de tiempo real (soft) Mayor rapidez en atender este tipo de tareas
Algunos problemas para procesos que parecen interactivos (I/O-bound) Procesos/hebras que usan mucho E/S considerados
como interactivos• A veces están relacionados con BD no
necesariamente interactivos Procesos/hebras que son CPU-bound e I/O-
bound pueden anular efectos de boost y penalidad de planificador
Mayor información http://www.inf.udec.cl/~chernand/links/
linux_cpu_scheduler.pdf
Resumen
Planificación de procesos puede influenciar fuertemente el rendimiento Como?
Generalmente, múltiples objetivos tienen conflictos Como?
Existen diversos algoritmos puros, pero normalmente los sistemas implementan lo bueno de varios