Introducción
El objetivo de la planificación del procesador es dar un buen
servicio a todos los procesos que existan en un momento dado en el sistema.
En general, se distinguen varios niveles de planificación:
Planificación a largo plazo (planificador de trabajos).
Decide cuál será el próximo trabajo que se va a ejecutar.
Este nivel sólo existe en los sistemas de procesamiento por lotes,
donde la decisión se basa en las necesidades de recursos y su disponibilidad.
En los sistemas de tiempo compartido tiene como única misión
cargar los programas que se desean ejecutar en memoria. Este nivel es el
encargado de crear los procesos.
Planificación a medio plazo (planificador de swapping).
Decide si un proceso que está en ejecución en estado bloqueado
o suspendido debe ser extraído de la memoria temporalmente. Posteriormente,
cuando el sistema se encuentre más descargado, devolverá
dicho proceso a la memoria y al estado de ejecución. Sólo
existe en sistemas de tiempo compartido y en aquellos que tienen gestión
de memoria virtual. Este nivel gestiona los procesos suspendidos en espera
de algún recurso no disponible en el momento de la suspensión.
Planificación a corto plazo (planificación del
procesador). Es el encargado de decidir cómo y cuándo
tendrá acceso al procesador un proceso que está preparado
para utilizarlo. Lleva a cabo las funciones de multiprogramación,
estando siempre residente en memoria y ejecutándose con mucha frecuencia;
por ello debe ser de ejecución muy rápida. En este nivel
es donde se debe dar un buen servicio a los procesos interactivos para
que el usuario no perciba, o lo haga en pequeño grado, que está
compitiendo por el procesador junto con otros usuarios.
Objetivos
Justicia. Debe ser lo más justa posible con todo
tipo de procesos, sin favorecer a unos y perjudicar a otros.
Máxima capacidad de ejecución. Debe dar
un servicio aceptable para que todos los trabajos se realicen lo más
rápidamente posible. Esto se logra disminuyendo el número
de cambios de proceso.
Máximo número de usuarios interactivos.
En los sistemas de tiempo compartido se tratará de que puedan estar
trabajando el mayor número de usuarios simultáneamente.
Predicibilidad. Debe concebirse de tal forma que en todo
momento pueda saberse cómo será su ejecución.
Minimización de la sobrecarga. La computadora
debe tener poca sobrecarga ya que ésta incide directamente sobre
el rendimiento final del sistema: a menor sobrecarga, mayor velocidad de
proceso. Los cambios de contexto deben minimizarse.
Equilibrio en el uso de recursos. Para obtener un buen
rendimiento en el uso de recursos y que éstos estén ocupados
equitativamente el mayor tiempo posible.
Seguridad de las prioridades. Si un proceso tiene mayor
prioridad que otro, éste debe ejecutarse más rápidamente.
Criterios
Utilización del procesador. Mantenerlo ocupado
el mayor tiempo posible.
Productividad. El número de los procesos que terminan
por unidad de tiempo. Es una medida de trabajo que depende de la duración
de los procesos.
Tiempo de retorno. El tiempo para un proceso entre la
entrada y la salida del sistema. Es la suma de los tiempos de espera, ejecución,
etc.
Tiempo de espera. El tiempo que un proceso pasa en la
cola de procesos listos (no en espera de E/S).
Tiempo de respuesta. El tiempo entre la presentación
del proceso al sistema y su primera respuesta.
Tiempo de servicio. Tiempo en que tarda en ejecutarse
un proceso, donde se incluye el tiempo de carga del programa en memoria,
el tiempo de espera en la cola de procesos preparados, el tiempo de ejecución
en el procesador y el tiempo de E/S.
Algoritmos
Las políticas de planificación se agrupan en:
Apropiativas. Son las que producen un cambio de proceso
con cada cambio de contexto, es decir, el proceso que está haciendo
uso del procesador puede ser temporalmente suspendido y permitir que otro
proceso se apropie del procesador. Se utilizan en sistemas operativos con
tiempo compartido y tiempo real.
No apropiativas. Son aquellas en las que un proceso no
abandona nunca el procesador desde su comienzo hasta su fin. Se utilizan
en sistemas de proceso por lotes.
FCFS (Firts come, first served, Primero en llegar primero en ser
servido)
En esta política de planificación,
el procesador ejecuta cada proceso hasta que termina, por tanto, los procesos
que en cola de procesos preparados permanecerán encolados en el
orden en que lleguen hasta que les toque su ejecución. Este método
se conoce también como FIFO (fist input, first output, Primero en
llegar primero en salir).
Se trata de una política muy simple y sencilla
de llevar a la práctica, pero muy pobre en cuanto a su comportamiento.
La cantidad de tiempo de espera de cada proceso
depende del número de procesos que se encuentren en la cola en el
momento de su petición de ejecución y del tiempo que cada
uno de ellos tenga en uso al procesador, y es independiente de las necesidades
del propio proceso.
Sus características son:
- No apropiativa.
- Es justa, aunque los procesos largos hacen esperar mucho a los cortos.
- Predecible.
- El tiempo medio de servicio es muy variable en función del
número de procesos y su duración.
ROUND ROBIN (RR)
Esta política, cuya traducción podría
ser asignación cíclica o planificación en rueda, es
una mejora de la FCFS. Trata de ser más justa en cuanto a la respuesta
tanto de los procesos cortos como de los largos.
Consiste en conceder a cada proceso en ejecución
un determinado período de tiempo q (quantum), transcurrido el cual,
si el proceso no ha terminado, se le devuelve al final de la cola de procesos
preparados concediéndose el procesador al siguiente proceso por
su correspondiente quantum.
Esta interrupción periódica continúa
hasta que el proceso termine su ejecución, formando una rueda de
procesos que serán ejecutados cíclicamente hasta que terminen.
Variando el parámetro q se logra tener diferentes
comportamientos. Si q es mayor que el tiempo que necesita para su ejecución
el proceso más largo, se convertirá en FCFS. Si q se aproxima
a 0, la sobrecarga del sistema será muy grande puesto que la mayor
parte del tiempo se consumiría en cambios de contexto.
Los valores de q varían entre 10 y 100 milisegundos,
siendo recomendable que el 80% de los tiempos de respuesta de los procesos
sean inferiores al quantum.
Sus características son:
- Baja sobrecarga si el cambio de contexto es eficiente y los procesos
siempre están en la memoria principal.
- El tamaño óptimo del quantum depende de:
El tipo de sistema.SJN (Shortest Job Next, siguiente proceso: el más corto)
Las cargas que vaya a soportar el sistema.
El número de procesos en el sistema y su tipo.
Es la política más utilizada para tiempo compartido.
Ofrece un índice de servicio uniforme para todos los procesos.
Es una política apropiativa.
SRT (Shortest Remaining Time, el de tiempo restante más
corto)
Es una mezcla de los dos métodos anteriores
y trata de obtener las ventajas de ambos. Para ello, esta técnica
cambia el proceso que está en ejecución cuando se ejecuta
un proceso (paso del planificador de largo plazo al de corto plazo), con
una exigencia de tiempo de ejecución total menor que el que se está
ejecutando en el procesador. El valor del tiempo de respuesta medio de
los procesos largos mejora con respecto a SJN.
Presenta un excelente índice de servicio
y el tiempo de espera es bastante corto para la mayoría de los procesos.
Consigue una buena eficiencia, ya que logra que la lista de procesos preparados
sea lo más corta posible.
Sus características son:
- Es una variante de SJN para hacerla apropiativa.
- Puede ser injusta, ya que un proceso corto puede echar a uno largo
que esté haciendo uso del procesador y que además esté
terminando.
- Presenta una mayor sobrecarga.
- Excelente tiempo medio de servicio.
- Es muy eficiente.
Prioridad
En esta política se asocia a cada proceso
una prioridad, de manera que el procesador se asigna al proceso de mayor
prioridad.
Las prioridades pueden ser definidas interna o externamente.
En el primer caso, el sistema operativo se basa en una serie de informaciones
medibles para el cálculo y asignación de dichas prioridades
(tiempo necesitado de procesador, necesidad de memoria, etc.).
Su principal problema es el bloqueo o postergación
indefinida, ya que un proceso de baja prioridad puede estar esperando su
turno indefinidamente. Para evitarlo se suele emplear lo que se denomina
envejecimiento de las prioridades, que aumenta gradualmente las prioridades
de los procesos que están en espera de utilizar el procesador.
Cualquier algoritmo basado en esta política
puede ser apropiativo o no apropiativo. En el primer caso, un proceso puede
ser retirado del procesador si aparece otro de mayor prioridad en la cola
de procesos preparados.
HRN (High Response Next, el próximo de más alto
índice de respuesta)
Es una política que trata de corregir las
posibles injusticias de la política SJN con los procesos largos
y las de la política FCFS con los procesos cortos.
Se basa en hacer variable la prioridad de un proceso,
calculándose constantemente por medio de la expresión:
En un principio P valdrá 1 e irá aumentando
paulatinamente a medida que el proceso permanezca en la cola de procesos
preparados (w favorece a los procesos largos), e irá disminuyendo
cuanto más tiempo esté en ejecución (t favorece a
los procesos cortos).
Cuando un proceso que está en ejecución
abandona el procesador, el proceso preparado que tenga mayor prioridad
(que más haya esperado en la cola), será el que se seleccione
para su ejecución.
Sus inconvenientes son:
- Si un usuario ejecuta un proceso corto inmediatamente después
de que un proceso largo haya comenzado a utilizar el procesador, deberá
sufrir una larga espera.
- Es muy costosa de llevara a la práctica, ya que la prioridad
debe calcularse para todos los procesos en espera, cada vez que termine
el proceso que está haciendo uso del procesador.
- Sobrecarga mucho el sistema debido a los cálculos que debe
realizar.
Sus características son:
- No apropiativa.
- Es justa.
- Es costosa de poner en práctica.
- Produce una gran sobrecarga en el sistema.
COLAS MÚLTIPLES
Regresar