Estrategias de Planificación del Procesador
Una vez que el proceso entra al CPU a ejecutarse, el sistema le indica en qué forma va a realizar su ejecución. 1. Planificación No ApropiativaAquella en la cual, una vez que a un proceso le toca su turno de ejecución, ya no puede ser suspendido, ya no se le puede arrebatar la CPU. Los trabajos largos hacen esperar a los trabajos cortos, pero el tratamiento que reciben todos los procesos es más justo. Trabaja en serie, hasta que no termina una operación se ejecuta la siguiente.
Existe una fila de procesos, los procesos se ejecutan ininterrumpidamente. El proceso se adueña de los recursos (CPU, memoria, datos, dispositivos e/s) que le habían sido asignados inicialmente hasta terminar su ejecución. Si entra un proceso de alta prioridad, éste también debe esperar a que termine el proceso en ejecución. Este esquema puede ser peligroso, ya que si el proceso contiene accidental o deliberadamente ciclos infinitos, el resto de los procesos pueden quedar aplazados indefinidamente. Los tiempos de respuesta son más fáciles de predecir.
2. Planificación Apropiativa Es aquella en que existe un reloj que lanza interrupciones periódicas en las cuales el planificador toma el control y se decide si el mismo proceso seguirá ejecutándose o se le da turno a otro proceso. Este mismo reloj puede servir para lanzar procesos manejados por el reloj del sistema (por ejemplo, antivirus programados, analizadores de rendimiento). Al proceso se le puede arrebatar la CPU. Es útil en sistemas en los cuales los procesos de alta prioridad requieren una atención rápida.
Se permite a cada proceso ejecutarse un determinado tiempo. Al proceso se le asignan los recursos que va a utilizar inicialmente. Garantiza tiempos de respuesta aceptables. Trabaja de manera concurrente. Sistema operativo más complejo, se requiere estar checando en todo momento los procesos y sus recursos (PCB).
Algoritmos o Estrategias del turno de ejecución
a) Por prioridad Cada proceso tiene asociada una prioridad y el proceso ejecutable con máxima prioridad es el que tiene permiso de ejecución. Si existen varios procesos de mayor prioridad que otros, pero entre ellos con la misma prioridad, pueden ejecutarse éstos de acuerdo a su orden de llegada u otro algoritmo de planificación. Ventaja: Es flexible al permitir que ciertos procesos se ejecuten primero, e incluso, por más tiempo. Desventajas: Puede provocar aplazamiento indefinido en los procesos de baja prioridad. Provoca que el sistema sea impredecible para los procesos de baja prioridad. Por ejemplo, entran procesos al sistema con las siguientes prioridades:
b) El trabajo más corto primero Se ejecutan primero aquellos trabajos que necesitan menos tiempo de ejecución, y de esta manera se obtiene el mejor tiempo de respuesta promedio para los procesos. Ventaja: Se ejecuta un mayor número de procesos. Desventaja: Es difícil llevar a cabo porque se requiere saber o tener una estimación de cuánto tiempo necesita el proceso para terminar. Por ejemplo, entran procesos al sistema con los siguientes tiempos de ejecución, en la tercer columna se muestra el orden de ejecución de ejecución de los procesos.
c) FIFO (primero en llegar, primero en ejecutarse) Los procesos reciben su turno de ejecución conforme llegan. Ventaja: Es justo y no provoca aplazamiento. Desventajas: No aprovecha ninguna característica de los procesos. Puede no servir para un proceso de tiempo real. Los procesos llegan al sistema y se van formando, en ese orden van pasando a ejecutarse.
d) Round Robin (RR) Los procesos se despachan en FIFO, pero se les otorga una cantidad limitada de tiempo de CPU conocida como quantum o time slice. Los procesos están ordenados en una cola circular. Si un proceso no termina antes que expire su tiempo en CPU, se le quita la CPU y se asigna al siguiente proceso en espera. El proceso que sale del CPU se coloca al final de la fila de procesos Listos. Ventaja: es simple y justo. No provoca aplazamiento indefinido. Los procesos llegan al sistema y se van formando, en ese orden van pasando a ejecutarse el tiempo que asigne el procesador; sale y pasa a ocupar un lugar al final de la fila de procesos.
e) Por política Una forma de asignar el turno de ejecución es por política, en la cual se establece algún reglamento específico que el planificador debe obedecer. Por ejemplo: “Que todos los procesos reciban el mismo tiempo de uso de CPU en cualquier momento”. Entonces, tenemos dos procesos que han pasado a CPU a ejecutarse, recibiendo un total de 20 unidades de tiempo cada uno, en intervalos de 5 unidades.
Cuando el proceso 2 se estaba terminando de ejecutar y completa sus 20 unidades de tiempo, llega el proceso 3 y pasa al procesador. Inmediatamente el CPU le da 20 unidades para ejecutarse, para que se cumpla la política, y después sigue asignando unidades de tiempo de 5.
|