Professional Documents
Culture Documents
Capítulo III:
“Procesos y Gestión del
Procesador” 3.1 Gestión de Procesos
procedimientos.
1
Estados y Transiciones de un
Proceso Estados de un Proceso
• Nuevo: El proceso está siendo creado.
Terminado
Terminado • Ejecutándose: Proceso ejecuta instrucciones
Nuevo
Nuevo de máquina.
• Listo: El proceso está listo para recibir el
Esperando
procesador para iniciar o continuar su ejecución.
Despertar Esperando
Esperar • Esperar: El proceso deja de competir por el
procesador, esperando un evento externo (e.g.
Expropiar E/S, sincronización con otro proceso, una señal,
Salir
Admitir Listo
Listo
Ejecu-
Ejecu- etc.)
tándose
tándose • Terminado: El proceso ha terminado su
Despachar ejecución
2
Ejemplo de Cambio de Contexto Planificación de Procesos
Proceso P0 Proceso P1 Objetivos de la Planificación de Procesos:
♦ Multiprogramación: Tener siempre un proceso
Salvarestado
estadoen
enPCB
PCB0
Salvar 0 ejecutándose con el propósito mejorar utilización
CPU y otros recursos.
Recargarestado
Recargar estadoen
enPCB
PCB1 ♦ Tiempo Compartido: Cambiar rápidamente la
CPU entre procesos para mantener buena
1
interactividad.
Salvarestado
estadoen
enPCB
PCB1 No pueden existir más procesos en ejecución
Salvar 1
que el número de procesadores
⇒ Sistemas de multiprocesamiento permiten tener
Recargarestado
Recargar estadoen
enPCB
PCB0
0 más de un proceso en ejecución.
Ocurre
Ocurre
Evento Esperar Evento
Evento
swap-in
Swapped-out
Swapped-out
swap-out
proceso y cargándolo en la memoria.
• Controla el grado de multiprogramación.
Colade
Cola spool admitir
despool Procesamiento
ColaListo
Listo
Procesamiento
Cola
despachar
CPU
CPU • Determina una buena mezcla de procesos de
timeout uso intensivo de CPU y de E/S.
E/S Colade
deE/S
E/S • Algunos sistemas no tienen este planificador
E/S Cola
(e.g. Sistemas de tiempo compartido).
Planificación de Corto Plazo
3
Planificador de Corto Plazo Planificador de Mediano Plazo
• Decide a qué proceso asignarle la CPU, • Permite regular la carga reduciendo o
el cual es seleccionado de la cola listo. aumentando el grado de
• Se ejecuta con alta frecuencia, cada vez multiprogramación, usando técnica de
que un proceso abandona la CPU: swapping.
♦ salida del proceso (exit) • Un factor de decisión importante es la
♦ timeout (expira su ranura de tiempo) demanda por memoria de los procesos.
♦ solicitud de E/S o espera por un evento • Se usa en sistemas de tiempo
• Asegura la interactividad en un sistema compartido
4
Ejemplo de Cooperación:
Problema Productor-Consumidor Comunicación entre Procesos (IPC)
Paradigmas de comunicación:
Memoria Compartida
Paso de Mensajes
Invocación remota
Buffer
Productor
Productor Consumidor
Consumidor
Sincronización en la
Nombramiento (Naming) Comunicación
Comunicación directa Envío con bloqueo. Se bloquea hasta que
Se identifica al proceso emisor y receptor mensaje ha sido recibido.
Simétrica: receptor identifica al emisor Envío sin bloqueo. Proceso emisor reanuda
Asimétrica: receptor no conoce a priori al emisor su ejecución inmediatamente después de
Comunicación indirecta enviar el mensaje
Se usa un buzón o puerto (i.e. una cola de Recepción con bloqueo. El receptor se
mensajes) que tiene un identificador único bloquea hasta que tenga un mensaje para
Mensajes se envían y reciben desde un puerto recibir.
Cada proceso se asocia a un puerto para recibir Recepción sin bloqueo. El receptor
mensajes
recupera un mensaje o ninguno.
5
Buffering en la Comunicación Múltiples Hebras
Capacidad cero. Obliga a que el envío • Una hebra es una abstracción de un procesador
(Program counter, registros de trabajo y stack de
sea bloqueante. ejecución).
Capacidad limitada. Bloquea al • Una tarea (o proceso) permite que hebras
compartan: Código, datos y recursos del sistema
emisor sólo si el buffer está lleno y operativo.
hasta que haya nuevamente espacio. • Un proceso tradicional es una tarea con una sola
hebra.
Capacidad ilimitada. El emisor nunca • A las hebras también se les denominan procesos
se bloquea. livianos, en contraposición a procesos pesados en el
concepto tradicional.
• Hebras son más eficientes en la creación y en el
cambio de contexto.
Raúl Monge Departamento de Informática 31 Raúl Monge Departamento de Informática 32
Realización de Hebras
3.2 Planificación de Recursos
Proceso Proceso
y del Procesador
Núcleo
Núcleo
CPU
CPU CPU
CPU
CPU
CPU
6
UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍA
Departamento de Informática
Definiciones Básicas
• Recurso: Objeto que puede ser utilizado por
un proceso.
3.2.1 Conceptos Básicos • Asignación: Un recurso está asignado a un
proceso si éste dispone de un conjunto de
operadores para su uso.
• Administrador: Asigna, recupera y,
eventual-mente, expropia un recurso a un
proceso.
• Expropiación: Cuando el administrador
puede reasignar un recurso antes que un
proceso lo libere voluntariamente.
Raúl Monge Departamento de Informática 38
7
Expropiación en la Planificación del
Procesador Despachador
El planificador de la CPU puede intervenir Es la componente del núcleo que
cuando un proceso: transfiere el control del procesador al
Pasa voluntariamente a estado de espera (e.g. proceso seleccionado por el
E/S, sincronización, etc.)
Pasa a estado listo por expiración de tiempo
planificador.
(timeout) Tiene las siguientes funciones:
Pasa de estado esperando a listo Cambio de contexto
Cuando termina
Cambio a modo usuario
Cuando el planificador sólo interviene en 1 y
4, se dice que la planificación es sin Debe ser muy rápido para reducir el
expropiación, en caso contrario es con tiempo de latencia (overhead)
expropiación.
Raúl Monge Departamento de Informática 43 Raúl Monge Departamento de Informática 44
8
UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍA
Departamento de Informática
Tipos de Algoritmos de
Planificación Algoritmos de Planificación
• Expropiación (preemption). Existen algoritmos con
y sin expropiación del recurso. Sin Expropiación Con Expropiación
• Intervalos de tiempo. El proceso puede recibir el
recurso por un cierto lapso de tiempo. FCFS (First Come, First Round-Robin
• Prioridades. A los procesos se les pueden asociar Serve)
prioridades, las cuales pueden ser estáticas o SJF (Shortest Job First) SRTF (Shortest
dinámicas. Remaining Time First)
• Tiempos límites (deadlines). Existen tiempo límites Prioridades (Estáticas o Prioridades (Estáticas o
para que termine un proceso. Contra más cerca se dinámicas) dinámicas)
esté de ese límite, más urgente se hace su
planificación.
9
Efecto Convoy en FCFS b) Algoritmo SJF
• Se produce cuando se tiene una mezcla de un • Un algoritmo de planificación sin
proceso ligado a CPU y varios procesos ligados a E/S.
• Estos últimos procesos tenderán a ubicarse en la cola expropiación usado en sistemas en
LISTO, donde serán frenados por el proceso que usa lotes.
mucha CPU, quedando los recursos de E/S libres.
• Por el otro lado, cuando el proceso ligado a CPU • Se planifica el trabajo más breve que se
libera el procesador, los demás procesos pasan encuentra esperando como siguiente.
rápido a E/S, quedando la CPU ociosa.
• Por lo tanto, se produce baja utilización de CPU y de • Se requiere poder estimar a priori el
los dispositivos de E/S. tiempo de servicio de cada trabajo.
• Una solución requeriría una planificación no FCFS.
Aplicación de SJF a
Planificación del Procesador Sobre el promedio exponencial
Se intenta estimar para cada proceso la Se puede demostrar que:
duración del próximo ciclo o ráfaga de CPU .
Se asigna el procesador a aquel proceso que n
10
c) Algoritmo Round-Robin Ejemplo de R-R
• Corresponde a FCFS con expropiación. Proceso Ciclo de CPU
11
Ejemplos de Prioridades Problema de Prioridades Estáticas
SJF es un caso particular de planificación con • Las prioridades estáticas hacen posible
prioridades estáticas con criterio externo.
una postergación indefinida.
• Si τ es el tiempo estimado para un trabajo,
entonces su prioridad p es: p = 1/τ Rumor:
SRTF es igualmente una planificación con M.I.T, en 1973, se detuvo un IBM 7094 y
prioridades, pero dinámicas y con criterio encontraron un proceso de baja prioridad
externo. que fue admitido en 1967
SJF de corto plazo con predicción de ráfagas
de CPU mediante el promedio exponencial
correspondería a una prioridad dinámica
basada en un criterio interno y externo.
Raúl Monge Departamento de Informática 67 Raúl Monge Departamento de Informática 68
Una forma sería aumentar cada cierto Entonces se define la prioridad P de un proceso como:
tiempo τ la prioridad de cada proceso
W +S
que está esperando. P= = 1+
W
S S
12
h) Planificación con Múltiples Ejemplo de Múltiples Niveles
Niveles con Realimentación con realimentación
Permite separar dinámicamente trabajos con
diferentes características, y en forma Cuanto = 8
automática.
No se requiere predicciones de las ráfagas de
CPU para los procesos. Cuanto = 16
Realimentación
Procesos ligados a E/S tienen alta prioridad
(pasan rápido por la CPU)
3.3 Otros Temas
Procesos ligados a CPU disminuyen su
prioridad (bajan a colas de mayor cuanto)
Para evitar inanición, procesos que esperan
mucho pueden subir una cola
(envejecimiento).
plazos.
Programación debe ser especial para evitar Uso de memoria virtual no es conveniente
que un proceso sea dos veces asignado. Sistemas de tiempo real blandos
Existe una limitación cuando la E/S está Computación es menos restrictiva
ligada a un determinado procesador. Procesos de tiempo de real reciben más alta
prioridad
Se usan prioridades estáticas (sin envejecimiento)
Reducción de latencia requiere de expropiación
Raúl Monge Departamento de Informática 77 Raúl Monge Departamento de Informática 78
13
Planificación de Hebras Evaluacion de Desempeño
Planificación de hebras de nivel usuario las • Métodos determinísticos
maneja una biblioteca independiente del
• Métodos Analíticos basados en Teoría
kernel (planificación local).
de Colas
La planificación de hebras del nivel kernel es
global al sistema: un procesador libre puede • Simulación
ser asignado a cualquier hebra lista • Benchmarks
Se pueden usar diferentes prioridades.
Monitoreo de desempeño
•
Hebras de alta prioridad reciben un cuanto menor.
14