Вы находитесь на странице: 1из 25

Tema 2: Gestin de la CPU

Yolanda Blanco Fernndez


yolanda@det.uvigo.es
Programas vs Procesos
Curso 2009/2010
Programa: datos e instrucciones.
Un proceso es un programa en ejecucin: datos, instrucciones, recursos y
estado.
El SO carga el programa en memoria para su ejecucin: las instrucciones
van accediendo a los datos que necesiten y guardando resultados en la zona
de memoria asignada.
Instrucciones
Instrucciones
Datos
Datos
PROGRAMA
MEMORIA
SISTEMA OPERATIVO
Concepto de Multiprogramacin
Curso 2009/2010
El objetivo es aprovechar los tiempos muertos de la CPU para
ejecutar otros programas, consiguiendo con ello un mejor
aprovechamiento de los recursos del ordenador (gracias al incremento
de uso del procesador).
Crea la falsa apariencia de ejecucin simultnea de varios programas:
en cada instante slo podr ejecutarse un programa en la CPU, pero
como los restantes estn realizando operaciones de E/S sobre los
dispositivos, el usuario tendr la sensacin de que todos estn en
ejecucin.
Gestin de Ejecucin de Programas
Curso 2009/2010
El SO crea las estructuras necesarias para gestionar todos los recursos
necesarios durante la ejecucin de los programas cargados en memoria.
Estos datos se renen en el Bloque de Control del Sistema (SCB):
Lista de descriptores de los procesos.
Puntero al descriptor del proceso que ocupa actualmente la CPU
(proceso en ejecucin).
Puntero a la cola de descriptores de los procesos que estn esperando
para poder usar el procesador (procesos preparados).
Puntero a la cola de descriptores de los procesos que no estn usando la
CPU, y que estn esperando a que se produzca algn evento, como la
nalizacin de una operacin de E/S (procesos en espera)).
Puntero a la cola de descriptores de los procesos que no estn usando la
CPU por no estar activos pero que, ante una orden de activacin, podran
seguir ejecutndose (interrupciones).
Estado del Proceso
Curso 2009/2010
Nuevo: El proceso est siendo creado.
En ejecucin: Se estn ejecutando las instrucciones.
En espera: El proceso est esperando a que se produzca un suceso
(n de operacin E/S o recepcin de seal).
Preparado: El proceso est a la espera de que le asignen a un
procesador.
Terminado: Ha terminado la ejecucin del proceso.
nuevo
preparado en ejecucin
en espera
terminado
admitido salida
interrupcin
terminacin de
operacinE/S
en espera de suceso
o de operacin E/S
Informacin del Proceso
Curso 2009/2010
Se almacena en el Bloque de Control del Proceso (PCB):
Identicador del proceso (PID).
Tipo de proceso.
Privilegios.
Prioridad.
Estado CPU.
Contador de programa.
Registros.
Estado del proceso.
Recursos.
Mapa de memoria donde se haya cargado el proceso.
Ficheros abiertos.
Jerarqua de procesos: proceso padre y procesos hijos.
Objetivo: Preservar la informacin del proceso en el caso de que su
ejecucin tenga que ser temporalmente suspendida (cambio de
contexto).
Prioridades
Curso 2009/2010
Mecanismo que permite denir la urgencia con la que debe ejecutarse un
proceso (la prioridad que tiene frente a otros procesos).
Nmero entero: tpicamente si Prioridad (A) > Prioridad (B) A es ms
prioritario que B.
Tipos de prioridades:
Asignadas por el SO.
Asignadas por el propietario.
Estticas: no pueden ser modicadas durante la ejecucin del proceso.
Nunca en sistemas de tiempo real.
Dinmicas: Un proceso puede modicar su prioridad para poder atender
adecuadamente a todos los eventos que se produzcan.
Interrupciones
Curso 2009/2010
Seal del HW ante un evento ajeno a la ejecucin normal del proceso.
Tras tratar la interrupcin, el SO debe recuperar la ejecucin del proceso en
el punto en el que estaba antes de la misma.
Cambio de Contexto
Curso 2009/2010
Se produce cuando se requiere la atencin de algn servicio del SO
(interrupcin, llamada al SO, ejecucin de instruccin privilegiada, etc).
El SO salva el estado del proceso en su PCB, o lo restaura desde los datos
almacenados en dicho bloque para continuar su ejecucin en la CPU.
Salva el
estado del
proceso
Repone el
estado del
proceso
Ejecucin
del SO
Cambio de contexto
Cambio de contexto
Llamada al SO
o interrupcin
Cambio de Proceso
Curso 2009/2010
Salva el
estado del
proceso A
Repone el
estado del
proceso B
Ejecucin
del SO
Salva el
estado del
proceso B
Repone el
estado del
proceso A
Ejecucin
del SO
Llamada al SO
o interrupcin
Proceso A Proceso B
Planicacin de Procesos
Curso 2009/2010
Multiprogramacin: tener en ejecucin varios procesos al mismo tiempo para
maximizar utilizacin de CPU.
Sistemas de tiempo compartido: conmutar rpidamente la CPU entre los
procesos en memoria de forma que los usuarios puedan interactuar con los
programas en ejecucin.
Planicador de CPU: decide cul de los procesos cargados en memoria
pasar a ejecutarse en la CPU.
El planicador no le da a cada proceso el tiempo de CPU que precisa de
forma consecutiva rfaga de CPU.
Sucesin de rfagas de CPU y operaciones E/S.
Agenda de contenidos:
1. Colas de planicacin.
2. Tipos de planicadores.
3. Criterios de planicacin.
4. Algoritmos de planicacin.
Colas de Planicacin
Curso 2009/2010
Cola de trabajos: almacena los procesos que entran en el sistema.
Cola de procesos preparados: lista enlazada de los PCBs de los procesos
que estn cargados en memoria esperando a ocupar la CPU.
Cola del dispositivo: lista enlazada de PCBs de los procesos que estn
esperando para poder acceder al dispositivo.
Tipos de Planicadores
Curso 2009/2010
Planicador a largo plazo o planicador de trabajos:
Qu trabajos se cargan en memoria para ser ejecutados en CPU?
Controla el grado de multiprogramacin del sistema.
Alcanzar equilibrio entre procesos limitados por E/S (muchas
operaciones de E/S y pocos clculos) y procesos limitados por la CPU
(muchos clculos y operaciones E/S espordicas).
Planicador a corto plazo o planicador de CPU:
Cul de los procesos cargados en memoria se ejecutar en CPU?
Con apropiacin (un proceso puede desalojar a otro de la CPU) o sin
apropiacin (el proceso que ocupa la CPU no puede ser desalojado hasta
terminar su ejecucin o conmutar a estado de espera).
Mayor frecuencia de ejecucin que el planicador de trabajos.
Planicador a medio plazo:
Intercambio: Elimina procesos de la memoria (dejando de contender por
la CPU) para luego volver a cargarlos.
Para mejorar la combinacin de procesos E/S y limitados por CPU o por
restricciones de la memoria del sistema.
Criterios para elegir un Algoritmo de Planicacin
Curso 2009/2010
Tiempo de servicio: tiempo de carga en memoria + tiempo de espera en cola
de procesos preparados + tiempo en CPU + tiempo consumido en
operaciones E/S
Tiempo de ejecucin: tiempo en CPU + tiempo consumido en operaciones
E/S
Tiempo de procesador : tiempo de ejecucin en CPU
Tiempo de espera: tiempo en cola de procesos preparados + tiempo
consumido en operaciones de E/S
Rendimiento:
tiempo de CPU de todos los procesos
tiempo total de CPU
Eciencia: Nmero de procesos ejecutados por unidad de tiempo.
Algoritmos de Planicacin
Curso 2009/2010
FCFS (First-Come, First-Served)
RR (Round-Robin)
SJF (Shortest-Job-First )
Planicadores por prioridades
Planicacin mediante colas multinivel
Planicacin mediante colas multinivel realimentadas
FCFS: First-Come, First-Served
Curso 2009/2010
Se asigna en primer lugar la CPU al proceso que primero la solicite.
Cuando un proceso entra en la cola de procesos preparados, su PCB se
coloca al nal de la cola FIFO.
Cuando la CPU queda libre, se asigna el procesador al proceso cuyo PCB
est al principio de la cola (y se elimina de la misma).
Tiempo medio de espera en cola vara signicativamente si la duracin de
las rfagas de CPU de los procesos es muy variable.
Produce efecto convoy:
Procesos intensivos en E/S estn esperando a que un proceso con
rfaga de CPU larga deje libre el procesador.
Consecuencias: Utilizacin de CPU y dispositivos de E/S menor que la
que se conseguira si se permitiera a los procesos ms cortos ejecutarse
primero.
Es un algoritmo colaborativo (sin apropiacin) Inapropiado para sistemas
de tiempo compartido.
SJF: Shortest-Job-First
Curso 2009/2010
El algoritmo asocia a cada proceso la duracin de su siguiente rfaga de
CPU.
El planicador asigna la CPU al proceso (de la cola de procesos preparados)
que tiene menor rfaga de CPU.
En caso de empate, se resuelve mediante FCFS.
SJF proporciona el tiempo medio de espera mnimo para un conjunto de
procesos.
SJF puede ser apropiativo o colaborativo.
SJF con apropiacin se llama SRT (Shortest-Remaining-Time):
apropiacin cuando la rfaga de CPU del proceso que acaba de llegar es
menor que el tiempo de ejecucin que le queda al que ocupa el procesador.
Problema: cmo conocer la duracin de la siguiente rfaga de CPU del
proceso?
En planicador a largo plazo en un sistema por lotes, se usa como
duracin de la rfaga el lmite de tiempo del proceso que especique el
usuario en el momento de enviar el trabajo.
En planicador a corto plazo se predice la duracin de la siguiente rfaga
(porque no hay forma de conocerla).
SJF: Mecanismo de prediccin de la siguiente rfaga de CPU
Curso 2009/2010
Se asigna la CPU al proceso que tenga la siguiente rfaga de CPU predicha
ms corta.
Se predice el valor de la siguiente rfaga asumiendo que su duracin ser
similar a la de las rfagas anteriores.
La siguiente rfaga se predice como la media exponencial de las duraciones
medias de las anteriores rfagas de CPU.
Sean t
n
la duracin de la n-sima rfaga de CPU y
n+1
el valor predicho
para la siguiente rfaga del proceso. Para [0, 1], se tiene que:

n+1
= t
n
+ (1 )
n
(1)
t
n
contiene la informacin ms reciente y
n
el historial pasado.
Si = 0:
n+1
=
n
el historial reciente no tiene efecto.
Si = 1:
n+1
= t
n
slo la rfaga de CPU ms reciente importa
(historial obsoleto).
RR: Round-Robin o Planicacin por Turnos
Curso 2009/2010
Algoritmo con apropiacin diseado especialmente para sistemas de tiempo
compartido.
Los procesos nuevos se aaden al nal de la cola (FIFO) de procesos
preparados.
El planicador toma el primer proceso de la cola y se asigna la CPU durante
un quantum de tiempo (tpicamente entre 10 y 100 ms).
Si la rfaga del proceso es menor que el quantum el proceso libera
voluntariamente la CPU.
Si la rfaga es mayor que el quantum interrupcin al SO, cambio de
contexto y el proceso se coloca al nal de la cola de procesos preparados.
Si hay n procesos en la cola de procesos preparados y el quantum es q,
cada proceso obtiene
1
n
del tiempo de CPU en partes de como mximo q
unidades de tiempo. Cada proceso no tiene que esperar ms de (n 1) q
unidades de tiempo hasta obtener su siguiente turno.
RR: Dimensionando el Quantum
Curso 2009/2010
Si quantum muy largo RR degenera en FCFS.
Si quantum muy corto comparticin del procesador (impresin de que
cada proceso tiene su propio procesador ejecutndose
1
n
de la velocidad del
procesador real).
El quantum conviene que sea grande con respecto al tiempo requerido por
un cambio de contexto (si el quantum es corto, los procesos no acaban de
ejecutarse en la CPU y se ralentiza la ejecucin debido a cambios de
contexto).
Si quantum excesivamente corto vapuleo: el rendimiento de CPU se
reduce mucho porque slo se hacen cambios de contexto (trabajo no til).
El tiempo medio de ejecucin mejora si la mayor parte de los procesos
terminan su siguiente rfaga de CPU en un quantum.
Regla prctica: 80% de las rfagas de CPU deben ser ms cortas que el
quantum de tiempo.
Planicacin por prioridades
Curso 2009/2010
A cada proceso se le asigna una prioridad y el planicador asigna la CPU al
proceso ms prioritario.
Ejemplos: FCFS (orden de llegada) y SJF (duracin siguiente rfaga de
CPU).
Tpicamente se expresa mediante rango de nmeros jos.
No hay consenso sobre si el mayor nmero corresponde a la mayor o a la
menor prioridad.
Las prioridades pueden denirse interna o externamente:
Prioridades internas = f(requisitos de memoria, nmero de archivos
abiertos, relacin entre rfaga promedio E/S y rfaga promedio CPU, etc)
Prioridades externas = f(criterios externos al SO)
Puede ser sin apropiacin o con apropiacin (un proceso expulsa de la CPU
a otro si es ms prioritario).
Problema: bloqueo indenido o inanicin los procesos menos prioritarios
pueden esperar indenidamente.
Solucin: envejecimiento aumentar progresivamente las prioridades de
los procesos que llevan ms tiempo esperando por CPU.
Planicacin mediante colas multinivel
Curso 2009/2010
Consiste en separar los procesos segn su naturaleza/tipo (por ejemplo,
interactivos vs. por lotes).
La cola de procesos preparados se divide en varias colas (niveles) con
algoritmos de planicacin diferentes.
Requiere un algoritmo de planicacin entre colas:
De qu cola se extraen procesos en primer lugar?
Tpicamente con apropiacin y prioridad ja.
Otra posibilidad: repartir el tiempo de CPU entre las colas (80% vs 20%).
Procesos del sistema
Procesos interactivos
Procesos por lotes
prioridad ms alta
prioridad ms baja
Planicacin mediante Colas Multinivel Realimentadas
Curso 2009/2010
Permite mover los procesos de una cola a otra.
Consiste en separar los procesos segn las caractersticas de sus rfagas
de CPU (si uso de CPU es excesivo cola menos prioritaria).
Mecanismo de envejecimiento implcito para evitar el bloqueo indenido.
Parmetros a denir:
Nmero de colas.
Algoritmo de planicacin de cada cola.
Mecanismo para determinar cundo mover un proceso a una cola ms
prioritaria.
Mecanismo para determinar cundo mover un proceso a una cola menos
prioritaria.
Mecanismo para determinar en qu cola se colocar un proceso mientras
espera por la CPU.
Es el algoritmo de planicacin de CPU ms exible ms complejo.
Ejemplo de Planicacin mediante Colas Multinivel Realimentadas
Curso 2009/2010
Quantum = 8
Quantum = 16
FCFS
cola 0
cola 1
cola 2
Se ejecutan los procesos de cola 2 slo si cola 0 y 1 estn vacas.
Procesos de cola 0 desalojan a procesos de cola 1 y 2.
Prioridad a procesos cortos (rfaga 8ms) y semicortos (rfaga 24ms).
Los procesos largos (rfaga > 24ms) usan ciclos de CPU no usados por los
cortos y semicortos.
Evaluacin de los Algoritmos de Planicacin
Curso 2009/2010
Eleccin del criterio:
Conocer los tipos de trabajos a realizar.
Conocer los parmetros modicables.
Denir el objetivo del sistema.
Evaluacin formal:
Evaluacin analtica:
Prestaciones del algoritmo = f(carga, parmetros del sistema).
Difcil de realizar.
Modelacin determinista:
Resultados exactos para una conguracin de trabajos dada.
Difcil de extrapolar.
Modelos de colas:
Permite evaluar las longitudes de las colas.
Evaluacin por simulacin.

Вам также может понравиться