Está en la página 1de 17

Planificación del CPU

1. Conceptos Básicos
2. Ciclos de CPU
3. Criterios de Planificación
4. Algoritmos de Planificación
4.1 Primero en llegar, primero atendido FCFS
4.2 Primero el trabajo más corto SJF
4.3 Prioridades
Conceptos Básicos

La CPU es uno de los principales recursos de la computadora, así que su


correcta planificación resulta crucial en el diseño del sistema operativo.
La multiprogramación permite tener a un proceso en ejecución en todo
momento para maximizar el uso del CPU.
Los procesos se alternan entre ejecución en el CPU – ciclo de CPU – y espera,
normalmente por algún dispositivo de E/S.
La duración de los ciclos de CPU siguen un comportamiento similar al
mostrado en la gráfica correspondiente a la lámina número 5. La gráfica
muestra una tendencia por los procesos a tener ciclos de CPU de duración
cercana a 3 milisegundos.
Estados alternos – Ciclo de CPU y Espera E/S

Ciclos de CPU
Planificador del CPU

Siempre que el CPU queda inactivo, el sistema operativo debe seleccionar a uno
de los procesos de la cola de listos para su ejecución. El proceso de selección
del siguiente proceso a ser ejecutado es llevado a cabo por el planificador de
corto plazo ( o planificador del CPU ).La estrategia de selección del siguiente
proceso en la cola de listos, puede ser primero que entra primero que sale
( FIFO ), por prioridades, lista desordenada y otras
Despachador
El módulo Despachador, da control del CPU al proceso seleccionado por el Planificador de Corto
Plazo Esto involucra: Conmutación de contexto Conmutación a modo usuario Establecer el
contador del programa a la dirección de la siguiente instrucción a ser ejecutada Latencia de
Despacho – Es el tiempo que le toma al despachador detener un proceso e iniciar la ejecución de
otro proceso

Criterios de Planificación
Los diferentes algoritmos de planificación del CPU tienen los siguientes criterios para ser comparados:
Utilización del CPU – Hay que maximizar este parámetro
Rendimiento – Número de procesos que finalizan su ejecución por unidad de tiempo. Es necesario maximizar este
parámetro
Tiempo de Entrega – Tiempo que tarda un proceso en finalizar. Se desea minimizar este parámetro
Tiempo de Espera – Tiempo que tarda un proceso esperando en las colas del sistema. Se desea minimizar este
parámetro
Tiempo de Respuesta – Tiempo que tarda un proceso en responder a una solicitud. Se aplica en sistemas de tiempo
compartido y es deseable minimizar este parámetro
Empezaremos hablando de FCFS o también llamado FIFO (del inglés First In, First
Out). Este algoritmo es muy sencillo y simple, pero también el que menos
rendimiento ofrece, básicamente en este algoritmo el primer proceso que
llega se ejecuta y una vez terminado se ejecuta el siguiente.
https://www.youtube.com/watch?v=0ARnwijRb_A
4.2 Primero el trabajo más corto SJF
Este algoritmo asocia con cada proceso la longitud de su siguiente ráfaga del CPU, cuando la CPU esta disponible
sele asigna el proceso que tiene la ráfaga mas pequeña del CPU, si dos procesos tiene la misma longitud de
ráfaga se emplea el FIFO.
Tiene un mínimo tiempo de espera promedio para un conjunto de elementos.
Existe el apropiativo (expulsivo) y no apropiativo expulsivo.
El SJF se puede comportar de dos formas:

Con Desalojo: Si se incorpora un nuevo proceso a la cola de listos y este tiene un ciclo de CPU menor que el
ciclo de CPU del proceso que se esta ejecutando, entonces dicho proceso es desalojado y el nuevo proceso
toma la CPU.
Sin desalojo: Cuando un proceso toma la CPU, ningún otro proceso podrá apropiarse de ella hasta que el
proceso que la posee termine de ejecutarse.
Planificación por Turno Rotatorio (Round Robin).

Este es uno de los algoritmos más antiguos, sencillos y equitativos en el reparto de la CPU entre los procesos,
muy válido para entornos de tiempo compartido. Cada proceso tiene asignado un intervalo de tiempo de
ejecución, llamado cuantum o cuanto. Si el proceso agota su cuantum de tiempo, se elige a otro proceso para
ocupar la CPU. Si el proceso se bloquea o termina antes de agotar su cuantum también se alterna el uso de la
CPU. El round robin es muy fácil de implementar. Todo lo que necesita el planificador es mantener una lista de
los procesos listos, como se muestra en la figura 6.2.

En esta figura en a) el proceso P7 ocupa la CPU. En b) P7 se bloquea pasando P2 a ocupar la CPU. En c) P2 agota
su cuantum con lo que pasa al final de la lista y P4 ocupa la CPU. La figura 4 representa un ejemplo más largo
de la ocupación de la CPU utilizando el algoritmo round robin.
HRRN (Highest Response Ratio Next).
La programación HRRN (índice de respuesta más alto a continuación) es un algoritmo de programación no
preventivo en el sistema operativo. Es uno de los algoritmos óptimos utilizados para la programación.
Como HRRN es un algoritmo de programación no preventivo, en caso de que haya algún proceso que esté
actualmente en ejecución con la CPU y durante su ejecución, si algún proceso nuevo llega a la memoria con
un tiempo de ráfaga menor que el proceso que se está ejecutando actualmente, entonces en ese tiempo, el
proceso que se está ejecutando actualmente no se pondrá en la cola de espera y completará su ejecución sin
ninguna interrupción.
HRRN es básicamente la modificación de Shortest Job Next (SJN) para reducir el problema de la inanición.
En el algoritmo de programación HRRN, la CPU se asigna al siguiente proceso que tiene la tasa de respuesta
más alta y no al proceso que tiene menos tiempo de ráfaga.

Como puede ver en la ecuación anterior del índice de respuesta, si el tiempo de espera de un proceso aumenta, su
índice de respuesta aumenta, lo que hace que el proceso tan esperado se ejecute a continuación. Entonces, este
algoritmo resuelve el problema de inanición que existe en el algoritmo de programación SJN.
PLANIFICACION DEL CPU
Proceso Tiempo de llegada Tiempo de servicio
1 0 4
2 2 3
3 4 2
4 6 6
5 8 5
6 10 8
Tiempo de retorno promedio con FCFS Tiempo de retorno P1 = 4
Tiempo de retorno P2 = 5
Tiempo de retorno P3 = 5
6
5 Tiempo de retorno P4 = 9
4 Tiempo de retorno P5 = 12
3 Tiempo de retorno P6 = 18
2
Tiempo de retorno promedio = 53/6 = 8.83
1
0 5 10 15 20 25 30

1
2
3
4
5
6
Tiempo de retorno promedio con SPF Tiempo de retorno P1 = 4
Tiempo de retorno P2 = 5
Tiempo de retorno P3 = 5
6
5 Tiempo de retorno P4 = 14
4 Tiempo de retorno P5 = 6
3 Tiempo de retorno P6 = 18
2
Tiempo de retorno promedio = 52/6 = 8.66
1
0 5 10 15 20 25 30

1
2
3
4
5
6
Tiempo de retorno Tiempo esperando el CPU + Tiempo de servicio
promedio con HRRN Tasa de
respuest = Tasa de respuesta
a Tiempo de servicio
6 ((7-10)+8)/8 = 0.625
5 ((7-8)+5)/5 = 0.8
4 ((7-6)+6)/6 = 1.16
3
((7-4)+2/2 = 2.5
2
1
0 5 10 15 20 25 30

1
2
3
4
5
6
Tiempo de retorno Tiempo esperando el CPU + Tiempo de servicio
promedio con HRRN Tasa de
respuest = Tasa de respuesta
a Tiempo de servicio
6 ((9-10)+8)/8 = 0.875
5 ((9-8)+5)/5 = 1.2
4 ((9-6)+6)/6 = 1.5
3
2
1
0 5 10 15 20 25 30

1
2
3
4
5
6
Tiempo de retorno Tiempo esperando el CPU + Tiempo de servicio
promedio con HRRN Tasa de
respuest = Tasa de respuesta
a Tiempo de servicio
6 ((15-10)+8)/8 = 1.625
5 ((15-8)+5)/5 = 2.4
4
3
2
1
0 5 10 15 20 25 30

1
2
3
4
5
6
Tiempo de retorno Tiempo esperando el CPU + Tiempo de servicio Tiempo de retorno P1 = 4
promedio con HRRN Tasa de
respuest = Tiempo de retorno P2 = 5
a Tiempo de servicio
Tiempo de retorno P3 = 5
6
5 Tiempo de retorno P4 = 9
4 Tiempo de retorno P5 = 12
3 Tiempo de retorno P6 = 18
2
Tiempo de retorno promedio = 53/6 = 8.83
1
0 5 10 15 20 25 30

1
2
3
4
5
6

También podría gustarte