Page 39 - e-book manrique y montaño
P. 39

1 Introducción
 Cuando tenemos una tarea multiprocesos y tenemos varios procesos que se encuentre en condiciones de ejecutar, se debe escoger
 una entre los diferentes algoritmos que contamos. Estos algoritmos pueden usar sus propiedades, En cada uno de los procesos se le
 asigna una prioridad y los procesos que tienen mayor prioridad ante otros. La prioridad se va modificando a lo largo de todo lo que
 dura, esto sucede para evitar que un proceso de baja prioridad sobrepase a uno de alta prioridad y se ejecute, ya que los de alta
 prioridad monopolizan al procesador.
 1.2.1 Proceso a Corto Plazo
 La planificación a corto plazo se lleva a cabo decenas de veces por segundo (razón por la cual debe ser código muy simple, eficiente y
 rápido); es el encargado de planificar los procesos que están listos para ejecución.
 En algunos textos, al planificador a corto plazo se le llama despachador (dispatcher).
 1.2.2 Mediano Plazo
 Decide cuáles procesos es conveniente bloquear en determinado momento, sea por escasez/saturación de algún recurso (como la
 memoria primaria) o porque están realizando alguna solicitud que no puede satisfacerse momentáneamente; se encarga de tomar
 decisiones respecto a los procesos conforme entran y salen del estado de bloqueado (esto es, típicamente, están a la espera de
 algún evento externo o de la finalización de transferencia de datos con algún dispositivo).
 1.2.3 Largo Plazo
 las decisiones eran tomadas principalmente considerando los requisitos pre-declarados de los procesos y los que el sistema tenía
 libres al terminar algún otro proceso. La planificación a largo plazo puede llevarse a cabo con periodicidad de una vez cada varios
 segundos, minutos e inclusive horas.
 2 Metodología
 Una parte fundamental de la tarea de gestión de procesos        que hace el sistema operativo es
 la  de  la  planificar  la  utilización  de  los  recursos  de   ejecución  por  los  procesos.
 Fundamentalmente, el sistema tiene que aplicar criterios        para decidir (a) qué proceso elige
 para ocupar la CPU, y (b) cuándo aplica el criterio anterior.   Adicionalmente,   si   tenemos
 múltiples CPUs, el sistema debería planificar (c) qué CPU       ocupa un proceso, aunque no nos
 ocuparemos aquí de este tema, asumiendo que el sistema          tiene una única CPU.
 2.1 FCFS (First come,first serve)
 El esquema más simple de planificación es el Primero llegado, primero servido (First come, first serve, FCFS). Este es un mecanismo
 cooperativo, con la mínima lógica posible: Cada proceso se ejecuta en el orden en que fue llegando, y hasta que suelta el control. El
 despachador es muy simple, básicamente una cola FIFO.

                    Figura 1: Algoritmo FCFS
 Fig. 1: se muestra cómo se debe hacer el proceso de FCFS.
 2.2 Round Robin
 El esquema ronda busca dar una relación de respuesta buena tanto para procesos largos como para los cortos. La principal diferencia
 entre la ronda y FCFS es que en este caso sí emplearemos multitarea preventiva: A cada proceso que esté en la lista de procesos
 listos lo atenderemos por un sólo quantum. Si un proceso no ha terminado de ejecutar al final de su quantum, será interrumpido y
 puesto al final de la lista de procesos listos, para que espere a su turno nuevamente.
 Los procesos que nos entreguen los planificadores a mediano o largo plazo se agregarán también al final de esta lista.

                   Figura 2: Algoritmo Round Robin
 Fig. 2: se muestra el proceso a seguir para el algoritmo Round Robin.
 2.3 SJF (Shortest Job First)
 Cuando no tenemos la posibilidad de implementar multitarea preventiva, pero
 requerimos de un algoritmo más justo, y contamos con información por anticipado
 acerca del tiempo que requieren los procesos que forman la lista, podemos elegir el más corto de los presentes.

                                          39
   34   35   36   37   38   39   40   41   42   43   44