En épocas
pasadas de los sistemas de procesamiento por lotes, con una entrada en forma de
imágenes de tarjetas en una cinta magnética, el algoritmo de planificación era
sencillo: solo había que ejecutar el siguiente trabajo en la cinta.
En los
sistemas de multiusuario de tiempo compartido, que se combinaban con un fondo
de trabajos procesados en lote, el algoritmo era más complejo. En forma
invariable, existían varios usuarios en espera de servicio y podían existir también
otros trabajos para ser procesados en lote. Incluso en los sistemas puros de
tiempo compartido existen con frecuencia los trabajos colaterales, como el
sistema de correo electrónico, que a menudo se ejecuta todo el tiempo para
enviar o recibir correo o noticias.
Cuando
mas de un proceso es ejecutable, el Sistema Operativo debe decidir cual de
ellos debera ejecutarse primero. Hay que tener una planificación de los
procesos que quieren ejecutarse en el sistema.La planificación es una funcion
primordial del Sistema Operativo. La mayoría de los recursos, si no es que
todos, se planifican antes de que se utilicen. La asignación de procesadores
físicos a los procesos hace posible que estos realicen su trabajo, y tal
asignación es un problema complejo manejado por el Sistema Operativo.
Concepto
de Planificación
La planificación hace referencia a un conjunto de políticas y mecanismos
incorporados al sistema operativo que gobiernan el orden en que se ejecutan los
trabajos que deben ser cumplimentados por el sistema informático.
Objetivo
de la Planificación
El objetivo principal de la planificación es optimizar el rendimiento del
sistema y proporcionar un buen servicio a todos los procesos que se encuentren
en él. En general, la planificación trata de cubrir los siguientes objetivos:
- Justicia. La planificación
debe ser lo más justa posible con todos los procesos, sin favorecer a unos
y perjudicar a otros.
- Máxima capacidad de
ejecución. Debe dar un servicio eficiente para que todos los trabajos se
realicen lo más rápidamente posible. Esto se puede lograr disminuyendo el
número de cambios de proceso.
- Máximo número de usuarios
interactivos. En los sistemas de tiempo compartido se tratara de que
puedan estar trabajando el mayor número de usuarios al mismo tiempo.
- Predictibilidad. La planificación
debe realizarse de tal forma que en todo momento pueda saberse como será
su ejecución.
- Minimización de la
sobrecarga. La computadora debe tener poca sobrecarga ya que esta afecta
directamente al rendimiento final del sistema: a menor sobrecarga mayor
velocidad de proceso.
- Equilibrio en el uso de
recursos. Para obtener un mayor rendimiento en el uso de los recursos y
que estos estén ocupados equitativamente el mayor tiempo posible.
- Seguridad de las
prioridades. Si un proceso tiene mayor prioridad que otro, este debe
ejecutarse más rápidamente.
- Evitar la postergación
indefinida. Esto se logra aumentando la prioridad de un proceso mientras
espere por un recurso. La prioridad llegara a ser tan alta que al proceso
le será asignado el recurso que pidió.
Criterios
de planificación
Para realizar los objetivos de la planificación, un mecanismo de planificación
debe considerar lo siguiente:
- La limitación de un proceso
a las operaciones de Entrada / Salida: cuando un proceso consigue la CPU,
?la utiliza solo brevemente antes de generar una petición de Entrada /
Salida?
- La limitación de un proceso
a la CPU: cuando un proceso obtiene la CPU, ?tiende a usarla hasta que
expira su tiempo?
- Si un proceso es por lote
(catch) o interactivo: los usuarios interactivos deben recibir inmediato
servicio para garantizar buenos tiempos de respuesta.
- ?Que urgencia tiene una
respuesta rápida?: por ejemplo, un proceso de tiempo real de un sistema de
control que supervise una refinería de combustible requiere una respuesta
rápida, más rápida que la respuesta requerida por un proceso en lotes
(catch) que deberá entregarse al día siguiente.
- La prioridad de un proceso:
a mayor prioridad mejor tratamiento.
- Frecuentemente un proceso
genera fallos (carencias) de página:
- Probablemente los procesos
que generan pocos fallos de página hayan acumulado sus “conjuntos de
trabajo” en el almacenamiento principal.
- Los procesos que
experimentan gran cantidad de fallos de página aún no han establecido sus
conjuntos de trabajo.
- Un criterio indica
favorecer a los procesos que han establecido sus conjuntos de trabajo.
- Otro criterio indica
favorecer a los procesos con una tasa alta de fallos de página ya que
rápidamente generaran una petición de Entrada / Salida.
- Frecuentemente un proceso ha
sido apropiado por otro de más alta prioridad, lo cual significa lo
siguiente:
- A menudo los procesos
apropiados deben recibir un tratamiento menos favorable.
- Cada vez que el Sistema
Operativo asume la sobrecarga para hacer ejecutar este proceso, el corto
tiempo de ejecución antes de la apropiación no justifica la sobrecarga de
hacer ejecutar al proceso en primer lugar.
- Cuanto tiempo de ejecución real ha recibido el proceso?: un criterio considera que debe ser favorecido un proceso que ha recibido muy poco tiempo de CPU.
Cuanto tiempo adicional va a necesitar el
proceso para terminar?: los tiempos promedio de espera pueden reducirse
priorizando los procesos que requieren de un tiempo de ejecución mínimo para su
terminación, pero pocas veces es posible conocer la cantidad de tiempo
adicional que cada proceso necesita para terminar.
No hay comentarios:
Publicar un comentario