Está en la página 1de 23

PLANIFICADOR DE LA CPU

— La ejecución de un proceso consta de ciclos de ejecución en la


CPU, la ejecución comienza con una ráfaga de CPU seguida de
una ráfaga de E/S, etc; hasta realizar la llamada al sistema para
terminar la ejecución del proceso.
— Cuando la CPU queda inactiva el PCP debe seleccionar un
proceso de la cola de procesos listos para su ejecución y el
Despachador es quién asigna la CPU a dicho proceso.
— Planificación apropiativa: es necesario tomar decisiones sobre
planificación de la CPU en las siguientes circunstancias:
1. Cuando un proceso cambia del estado de ejecución al estado de
espera.
2. Cuando un proceso cambia del estado de ejecución al estado de
preparado. (interrupción)
3. Cuando un proceso cambia del estado de espera al estado de
preparado.
4. Cuando un proceso termina.
PLANIFICADOR DE LA CPU
— En las situaciones 1 y 4 lo único que se debe hacer es seleccionar un
nuevo proceso para que pase a la CPU.
— En este caso la planificación es sin desalojo o cooperativa,
(Windows 3.x)
— Sin embargo si el proceso es desalojado a la fuerza se habla de una
planificación apropiativa. (Windows 95, MAC OS)
— En las situaciones 2 y 3 puede o no planificarse un nuevo proceso.
— Revisar pag 140, libro de Silberstchatz problemas que surgen en la
aplicación de la planificación apropiativa.
— Despachador: módulo que proporciona el control de la CPU a los
procesos seleccionados por el PCP, debe ser rápido.
— Cambio de contexto
— Cambio al modo usuario
— Salto a la posición correcta del programa para reiniciarlo.
— El tiempo que tarda en detener un proceso e iniciar otro se conoce
como: latencia de despacho.
PLANIFICADOR DE LA CPU
— Criterios de Planificación: son características que se deben
tomar en cuenta a la hora de planificar.
— Utilización de la CPU: se mide en porcentaje de 0 a 100% depende
si el computador está ligeramente cargado 40% o intensamente
cargado 90%
— Tasa de Procesamiento: es el número de procesos que se
completan por unidad de tiempo (por segundo)
— Tiempo de ejecución: es el intervalo que va desde el instante que
se ordena la ejecución de un proceso hasta el instante en que se
completa; es la suma de los periodos que el proceso tarda en esperar
para cargarse en la memoria, esperar en la cola de procesos listos,
ejecutarse en la CPU y realizar las operaciones de E/S.
— Tiempo de espera: es la suma de los tiempos que el proceso espera
en la cola de procesos listos.
— Tiempo de respuesta: es el tiempo que el proceso tarda en
empezar a responder
Algoritmo FCFS
— First come – First served; se asigna la CPU al proceso que primero lo solicite o al
que está primero en la cola.
— Cuando la CPU queda libre, se asigna el proceso que esté al principio de la cola
y ese proceso que pasa a ejecutarse se elimina de la cola.
— El tiempo medio de espera es largo.
— El FCFS es cooperativo, una vez que la CPU ha sido asignada a un proceso,
dicho proceso conserva la CPU hasta que la libera.

Proceso TR CPU
P1 22
P2 7
P3 3

P1 P2 P3
0 22 29 32
TEP= (0+22+29)/3 =17 ms
Algoritmo SJF
— Shortest job first; este algoritmo asigna a la CPU el proceso
con la ráfaga de CPU más corta.
— Si existen dos o más procesos con la ráfaga de CPU iguales
se aplica FIFO entre ellos.
— Se reduce el tiempo de espera medio
Proceso TR CPU
P1 5
P2 10
P3 3
P4 6

P3 P1 P4 P2
0 3 8 14 24
TEP= (3+14+0+8)/4 =6.25 ms
Algoritmo SJF
— La planificación SJF se usa frecuentemente como mecanismo de
planificación a largo plazo pero eso no implica que no se pueda utilizar
como mecanismo de planificación a corto plazo.
— Es complicado implementar en el nivel de la planificación de la CPU, ya
que es muy difícil conocer la duración de la siguiente ráfaga de CPU y
un método para implementar sería predecir su valor.
— Puede ser cooperativo y apropiativo
— Si utilizamos un algoritmo apropiativo; en el caso que llegue a la cola de
listos un proceso que tiene menor tiempo de CPU que lo que le falta por
ejecutarse al proceso que actualmente se encuentra en la CPU, entonces
se detendrá el proceso en ejecución para dar paso al proceso que llega a
la cola (interrupción).
— Si utilizamos un algoritmo cooperativo o sin desalojo, el sistema dejará
que el proceso actualmente en la CPU termine de ejecutarse para luego
planificar el que llegó a la cola.
— La Planificación SJF apropiativa también se denomina Planificación
con selección del proceso con tiempo restante más corto.
Algoritmo SJF apropiativo
Proceso Tiempo de TR CPU (ms)
llegada (ms)
P1 0 6
P2 2 3
P3 4 5
P4 5 8

P1 P2 P1 P3 P4
0 2 5 9 14 22
TEP= (5-2-0)+(2-2)+(9-4)+(14-5)/4 = 4,25 ms

TEjeP= (9-0)+(5-2)+(14-4)+(22-5)/4 = 9,75 ms


Algoritmo SJF apropiativo
Proceso Tiempo de TR CPU (ms)
llegada (ms)
P1 0 6
P2 2 3
P3 4 5
P4 5 8

O E/S (ms de Duración


ejecución) (ms)
4 2
2 1

TEP= ?
TEjeP=?
Algoritmo SJF apropiativo
Proceso Tiempo de TR CPU O E/S (ms Duración
llegada (ms) de
(ms) ejecución)

P1 3 2 1 3
P2 9 5
P3 0 6 4 6
P4 8 8
P5 2 3 2 5
P6 6 4 2 4

TEP= ?
TEjeP=?
Algoritmo SJF apropiativo
Proceso Tiempo TR CPU O E/S Duración
de (ms) (ms de
llegada ejecució
(ms) n)
P1 7 5
P2 3 3 2 3
P3 0 8 5 4
P4 11 4 2 5
P5 4 1
P6 14 6 3 2
P7 6 4
P8 15 5

TEP= ?
TEjeP=?
Algoritmo por Prioridades
— El algoritmo SJF es un algoritmo de prioridades, porque asigna una prioridad al
proceso con ráfaga de CPU más corta.
— A cada proceso se le asigna una prioridad y pasará a la CPU a ejecutarse el
proceso con la prioridad más alta.
— Los procesos que tengan la misma prioridad se planifican como FCFS
— Los números bajos serán prioridad alta los números altos serán prioridad baja.
(0 - 10)
Proceso TR CPU Prioridad
P1 4 3
P2 3 1
P3 7 2
P4 5 4

P2 P3 P1 P4
0 3 10 14 19
TEP= (10+0+3+14)/4 =6.75 ms
Algoritmo Prioridades apropiativo
— Puede ser Cooperativo o Apropiativo
— Si utilizamos un algoritmo apropiativo, en el caso que un proceso
llegue a la cola de listos y su prioridad es mayor que la del proceso
que actualmente se encuentra ejecutándose, entonces se expulsará
al proceso que se encuentra en la CPU para dar el control al proceso
con mayor prioridad
— Si utilizamos un algoritmo cooperativo, simplemente el proceso que
llega se pondrá en la cola y esperará su planificación.
— El problema que surge en este tipo de algoritmo es el bloqueo
indefinido o muerte por inanición, esto sucede cuando un
proceso de baja prioridad puede quedar indefinidamente
esperando que se le asigne la CPU.
— Una solución a este problema es el envejecimiento, consiste en
aumentar gradualmente la prioridad de los procesos que estén
esperando en el sistema durante mucho tiempo
Algoritmo por prioridades
apropiativo
Proceso Tiempo R. CPU Priorida O E/S Duració
de (ms) d (ms) n (ms)
Llegada
(ms)
P1 4 4 1 2 5
3 3
P2 0 8 3
P3 16 4 1 2 4
P4 2 5 2 1 4
P5 8 7 2 3 2
P6 5 6 1 2 4
P7 9 3 1

TEP= ?
TEjeP=?
Algoritmo por prioridades
apropiativo
Proceso Tiempo R. CPU Priorida O E/S Duració
de (ms) d (ms) n (ms)
Llegada
(ms)
P1 5 4 1
P2 16 3 2
P3 3 8 3 2 4
4 3
P4 7 5 1
P5 0 6 2
P6 9 5 3 2 3
P7 2 7 1 3 2
P8 10 6 1
P9 12 9 2 3 5
TEP= ?
TEjeP=?
Algoritmo por Turno Circular
(Round Robin)
— Diseñado para los Sistemas de Tiempo Compartido
— Se añade la técnica de desalojo para que los procesos conmuten entre
ellos.
— La Cola de procesos listos se trata como una cola circular y la
planificación de los mismos es en forma de FCFS
— Se define un tiempo de ejecución del proceso denominado (quantum).
— Generalmente el quantum se encuentra comprendido entre 10 y 100 ms
— Puede ocurrir dos cosas:
— Que la ráfaga de CPU del proceso sea mas pequeña que el quantum
definido, en este caso el proceso liberará voluntariamente la CPU.
— Si la ráfaga de CPU del proceso es mayor al quantum definido, el
proceso se ejecutará hasta el temporizador definido y luego se
producirá una interrupción para que se produzca el cambio de contexto
y el proceso que sale de la CPU se coloca al final de la Cola de Listos
— El TEP en este algoritmo por lo general es largo
— Ningún proceso puede ejecutarse más de un quantum a la vez a no ser
que sea el único proceso de la cola de listos.
— Que pasa si el quantum es muy grande ? O es muy pequeño?
Algoritmo por Turno Circular
Proceso Tiempo R. CPU Quantu O E/S Duració
de (ms) m (ms) n (ms)
Llegada
(ms)
P1 3 8 1 3
6 2
P2 0 5
P3 7 6
3
P4 2 6 2 4
P5 5 4 2 5
P6 11 7
P7 24 4

TEP= ?
TEjeP=?
Algoritmo Colas de Múltiples
Niveles
— Divide la Cola de procesos listos en varias colas distintas y
los procesos se asignan a esta cola dependiendo de alguna
propiedad del proceso como: el tamaño de memoria, la
prioridad del proceso o el tipo de proceso.
— Cada cola tiene su propio algoritmo de planificación.
— Entre colas existe apropiación, es decir la cola denominada
de primer plano tiene mayor prioridad que las colas de
segundo plano respectivamente.

Procesos del Sistema

Procesos Interactivos
Apropiación Prioridad
Procesos Multimedia entre colas
entre colas
Procesos por lotes

Procesos de usuario
Algoritmo Colas de Múltiples
Niveles
Procesos T. CPU Quantum Prioridad T. llegada T. Proceso

P1 6 6 P. interactivo

P2 7 20 P. usuario

P3 4 3 2 P. sistema

P4 10 0 P. usuario

P5 6 2 9 P. en lotes

P6 3 3 30 P. sistema

P7 2 8 P.interactivo

P8 8 1 10 P. en lotes

P9 4 38 P.usuario

P10 1 3 13 P. sistema

Cola0 RR p. sistema
Cola1 SJF p. interactivo
Cola2 Prioridades p. lotes
Cola3 FCFS p. usuario
Algoritmo Colas de Múltiples
Niveles
Procesos R. CPU (ms) Quantum Prioridad T. llegada O E/S D E/S T. Proceso
(ms) (ms)

P9 3 5 2 10 P. Sistema
P11 2 9 P. Sistema
P5 5 2 6 4 10 P. Multimedia
P6 6 0 3 7 P. Interactivos
P1 6 33 2 8 P. Sistema
P8 4 2 29 P. Lotes
P3 7 3 6 8 P. Sistema
P2 5 17 1 6 P. Interactivos
P7 4 1 14 2 8 P. Multimedia
3 4

P10 1 36 P. Interactivos
P4 4 1 27 2 7 P. Multimedia
P12 6 15 P. Lotes

Cola0 SJF p. sistema


Cola1 Prioridades p. multimedia
Cola2 RR p. interactivos
Cola3 FCFS p. lotes
Algoritmo Colas de Múltiples
Niveles
Proceso Tiempo de R. CPU Prioridad Quantum O E/S (ms) Duración Tipo de Proceso
Llegada (ms) (ms) (ms) (ms)

P1 40 2 1 8 Sistema

P2 26 5 Interactivo

P3 5 10 2 4 6 5 8 10 Sistema

P4 23 4 Sistema

P5 7 5 1 3 4 10 4 8 Sistema

P6 0 7 2 Interactivo

P7 24 3 Lotes

P8 10 4 2 1 2 5 7 Multimedia

P9 2 8 3 Multimedia

P10 16 5 2 3 Lotes

P11 30 4 1 2 6 Multimedia

Cola0 SJF p. sistema


Cola1 Prioridades p. multimedia
TEP= ?
Cola2 RR p. interactivos
TEjeP=?
Cola3 FCFS p. lotes
Algoritmo por prioridades
apropiativo
Proceso T.llegada Prioridad O E/S Duración Ráfaga CPU Regla Envejecimiento

P1 14 9 5 5 10

P2 3 2 1-3 5-6 5

P3 25 1 3

P4 10 3 2 3 4

P5 0 3 5 5 6 Si P > 7 entonces
P6 16 2 3 5 6 aumentar la prioridad
cada 5 ms en 1
P7 8 1 2 10 3

P8 1 2 3-5 7-5 8

P9 32 5 5

P10 6 1 2-5 8-5 7

P11 19 2 1 6 5

TEP= ?
TEjeP=?
GRACIAS
M.Sc. Ing. Hernán Leonardo Torres Carrión
hlorres@unl.edu.ec
Docente CIS-UNL

También podría gustarte