Tema 2: Gestin de la CPU
Yolanda Blanco FernÆndez
[email protected]
Programas vs Procesos
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.
PROGRAMA
SISTEMA OPERATIVO
MEMORIA
Instrucciones
Instrucciones
Datos
Datos
Curso 2009/2010
Concepto de Multiprogramacin
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 simultÆnea de varios programas:
en cada instante slo podrÆ ejecutarse un programa en la CPU, pero
como los restantes estÆn realizando operaciones de E/S sobre los
dispositivos, el usuario tendrÆ la sensacin de que todos estÆn en
ejecucin.
Curso 2009/2010
Gestin de Ejecucin de Programas
El SO crea las estructuras necesarias para gestionar todos los recursos
necesarios durante la ejecucin de los programas cargados en memoria.
Estos datos se reœnen 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 estÆn esperando
para poder usar el procesador (procesos preparados).
Puntero a la cola de descriptores de los procesos que no estÆn usando la
CPU, y que estÆn esperando a que se produzca algœn evento, como la
nalizacin de una operacin de E/S (procesos en espera)).
Puntero a la cola de descriptores de los procesos que no estÆn usando la
CPU por no estar activos pero que, ante una orden de activacin, podran
seguir ejecutÆndose (interrupciones).
Curso 2009/2010
Estado del Proceso
Nuevo: El proceso estÆ siendo creado.
En ejecucin: Se estÆn ejecutando las instrucciones.
En espera: El proceso estÆ esperando a que se produzca un suceso
(n de operacin E/S o recepcin de seæal).
Preparado: El proceso estÆ a la espera de que le asignen a un
procesador.
Terminado: Ha terminado la ejecucin del proceso.
nuevo
admitido
interrupcin
terminado
salida
preparado
en ejecucin
terminacin de
operacinE/S
en espera de suceso
o de operacin E/S
en espera
Curso 2009/2010
Informacin del Proceso
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).
Curso 2009/2010
Prioridades
Mecanismo que permite denir la urgencia con la que debe ejecutarse un
proceso (la prioridad que tiene frente a otros procesos).
Nœmero entero: tpicamente si P rioridad (A) > P rioridad (B) ) A es mÆs
prioritario que B.
Tipos de prioridades:
Asignadas por el SO.
Asignadas por el propietario.
EstÆticas: no pueden ser modicadas durante la ejecucin del proceso.
Nunca en sistemas de tiempo real.
DinÆmicas: Un proceso puede modicar su prioridad para poder atender
adecuadamente a todos los eventos que se produzcan.
Curso 2009/2010
Interrupciones
Seæal 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.
Curso 2009/2010
Cambio de Contexto
Se produce cuando se requiere la atencin de algœn 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.
Llamada al SO
o interrupcin
Salva el
estado del
proceso
Cambio de contexto
Ejecucin
del SO
Repone el
estado del
proceso
Cambio de contexto
Curso 2009/2010
Cambio de Proceso
Proceso A
Proceso B
Llamada al SO
o interrupcin
Salva el
estado del
proceso A
Ejecucin
del SO
Repone el
estado del
proceso B
Salva el
estado del
proceso B
Ejecucin
del SO
Repone el
estado del
proceso A
Curso 2009/2010
Planicacin de Procesos
Multiprogramacin: tener en ejecucin varios procesos al mismo tiempo para
maximizar utilizacin de CPU.
Sistemas de tiempo compartido: conmutar rÆpidamente la CPU entre los
procesos en memoria de forma que los usuarios puedan interactuar con los
programas en ejecucin.
Planicador de CPU: decide cuÆl 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 ) rÆfaga de CPU.
Sucesin de rÆfagas 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.
Curso 2009/2010
Colas de Planicacin
Cola de trabajos: almacena los procesos que entran en el sistema.
Cola de procesos preparados: lista enlazada de los PCBs de los procesos
que estÆn cargados en memoria esperando a ocupar la CPU.
Cola del dispositivo: lista enlazada de PCBs de los procesos que estÆn
esperando para poder acceder al dispositivo.
Curso 2009/2010
Tipos de Planicadores
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 cÆlculos) y procesos limitados por la CPU
(muchos cÆlculos y operaciones E/S esporÆdicas).
Planicador a corto plazo o planicador de CPU:
¿CuÆl 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.
Curso 2009/2010
Criterios para elegir un Algoritmo de Planicacin
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
Eciencia: Nœmero de procesos ejecutados por unidad de tiempo.
tiempo total de CPU
Curso 2009/2010
Algoritmos de Planicacin
FCFS (First-Come, First-Served)
RR (Round-Robin)
SJF (Shortest-Job-First)
Planicadores por prioridades
Planicacin mediante colas multinivel
Planicacin mediante colas multinivel realimentadas
Curso 2009/2010
FCFS: First-Come, First-Served
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 rÆfagas de CPU de los procesos es muy variable.
Produce efecto convoy:
Procesos intensivos en E/S estÆn esperando a que un proceso con
rÆfaga 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 mÆs cortos ejecutarse
primero.
Es un algoritmo colaborativo (sin apropiacin) ) Inapropiado para sistemas
de tiempo compartido.
Curso 2009/2010
SJF: Shortest-Job-First
El algoritmo asocia a cada proceso la duracin de su siguiente rÆfaga de
CPU.
El planicador asigna la CPU al proceso (de la cola de procesos preparados)
que tiene menor rÆfaga de CPU.
En caso de empa
Comentarios de: Tema 2: Gestión de la CPU (0)
No hay comentarios