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

