Regresar
UNIDAD 3. PLANIFICACIÓN DEL PROCESADOR

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.
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.
SJN (Shortest Job Next, siguiente proceso: el más corto)
    Es una política de planificación no apropiativa que trata de cubrir los mismos objetivos que la RR.
    Toma de la cola de procesos preparados el que necesite menos tiempo de ejecución para realizar su trabajo. Para ello debe saber el tiempo de procesador que necesitan cada proceso. Esto es posible a través de diversos métodos como pueden ser la información suministrada por el propio usuario, por el propio programa, basándose en la historia anterior (heurística), etc.
    El tiempo de servicio en esta política es bueno para los procesos cortos, saliendo perjudicados los procesos largos.
 Sus características son:
- No apropiativa.
- El tiempo de espera aumenta de acuerdo con la longitud de los procesos, pero el tiempo medio de espera con respecto a otras políticas es óptimo.
- Es poco predecible.
- No es justa con los procesos largos.
- Buen tiempo de servicio.
- Resulta difícil de poner en práctica por los datos que necesita para realizarse la planificación.

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:

P = (w + t) / t
Donde
P es la prioridad del proceso.
w es el tiempo de espera en la cola de procesos preparados.
t es el tiempo de ejecución del proceso.

    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