Vous êtes sur la page 1sur 28

Scheduling

Scheduling
Cuando dos o ms procesos se
encuentran en estado listo, y slo un
CPU est disponible, se hace
necesaria la eleccion de qu proceso
debe correr primero.
Para lograr eso, el scheduler usa un
algoritmo llamado scheduling
algorithm.

Scheduling
Procesos (en background y
foreground) compitiendo por un
mismo recurso es un escenario
bastante comn.
Mientras los CPUs van hacindose
cada vez mas rpidos, la demanda de
recursos por parte de las aplicaciones
tambin crece.

Comportamiento de los
procesos
Los procesos alternan entre rfagas
de procesamiento y
requerimientos de entrada y
salida.
Mientras un proceso esta en
ejecucin, una llamada al sistema
puede usarse para atender una
peticin de lectura o escritura.

Comportamiento de los
procesos
Algunas actividades de entrada y
salida pueden contarse como
rfagas de procesamiento.
Por ejemplo, el copiado de bits en la
memoria de vdeo (para la
actualizacin de la pantalla) se
cuenta como rfaga de
procesamiento porque involucra el
uso exhaustivo del CPU sobre el
proceso.

Comportamiento de los
procesos

Comportamiento de los
procesos
En cambio, la espera para la
impresin de documentos pone a los
procesos en estado bloqueado,
siendo esto un claro requerimiento
de entrada y salida.
As, el comportamiento de los
procesos puede ser de tipo computebound o I/O bound.

Comportamiento de los
procesos
Procesos de tipo compute-bound
tienen extensas rfagas de
procesamiento y cortos
requerimientos de entrada y salida.
Contrario a ellos, procesos I/O bound
tienen largas esperas por
requerimientos de entrada y salida y
pequeas rfagas de procesamiento.

Comportamiento de los
procesos
Entonces, el factor clave para
clasificar procesos es cun larga es la
rfaga de CPU y no cun extensa es
la de entrada y salida.
Recordar que leer un bloque de disco
toma siempre el mismo tiempo, no
importando cunto tome procesar los
datos recibidos.

Comportamiento de los
procesos
Conforme los CPUs van fabricndose
ms y ms rpidos y potentes, los
procesos van tendiendo a ser I/O
bound.
Como consecuencia, la peticin de
uso de disco debe realizarse de la
forma ms rpido posible.

Cundo hacer scheduling


El scheduling es absolutamente
necesario cuando:

Un proceso termina su tiempo de


procesamiento.

Un proceso es bloqueado por un


requerimiento de entrada y salida o
por la accin de un semforo.

Cundo hacer scheduling


El scheduling es normalmente
realizado cuando:

Un proceso nuevo es creado.

Ocurre una interrupcin de entrada y


salida.

Ocurre una interrupcin de ciclo de


reloj.

Cundo hacer scheduling


En el caso de un proceso nuevo, el
mismo padre puede establecer sus
prioridades de ejecucin.
En otro caso, dada una interrupcin
de entrada y salida, es posible asumir
la disponibilidad del recurso, as los
procesos, de estar bloqueados, pasan
a listos.

Cundo hacer scheduling


Finalmente, en una interrupcin de
reloj, se determina o mide cun larga
ha sido la ejecucin de un proceso.
Dependiendo de cmo tratar a estas
interrupciones, los algoritmos de
scheduling pueden ser divididos en
dos categoras: preventivos y no
preventivos.

Cundo hacer scheduling


Un algoritmo no preventivo
selecciona un proceso y deja que
corra hasta que se bloquee o
voluntariamente libere al CPU.
Contrario a ello, un algoritmo
preventivo escoge un proceso y deja
que corra un tiempo mximo
permitido.

Cundo hacer scheduling


En algoritmos preventivos el control
del CPU es tomado por el scheduler,
siendo este el que escoge procesos
para que corran.
Los algoritmos preventivos slo
pueden usarse con interrupciones de
reloj; de otra forma, se debe optar por
algoritmos no preventivos.

Categoras
Diferentes sistemas operativos tienen
distintos objetivos primarios.
Siendo as, existen tres entornos
diferentes para realizar el scheduling:

Batch (por lotes)

Interactivo

Tiempo real

Categoras
En sistemas por lotes, dado que la
respuesta no debe ser inmediata,
suelen usarse algoritmos no
preventivos.
Sin embargo, tambin pueden
emplearse los preventivos, pero
asignando largos perodos de
procesamiento.

Categoras
En sistemas por lotes, dado que la
respuesta no debe ser inmediata,
suelen usarse algoritmos no
preventivos.
Sin embargo, tambin pueden
emplearse los preventivos, pero
asignando largos perodos de
procesamiento.

Categoras
La prevencin es necesaria en
sistemas donde se debe evitar el
acaparamiento de CPU por parte de
un proceso.
Evitar el uso desmedido de CPU por
un proceso es objetivo de los
sistemas interactivos.

Categoras
En sistemas de tiempo real muchas
veces no es necesaria la prevencin,
pues los mismos procesos saben que
deben correr en pequeos intervalos
de tiempo.
A diferencia de los sistemas
interactivos, los de tiempo real slo
ejecutan programas destinados a
promover el control de la aplicacin.

Objetivos
Todos los algoritmos de scheduling
deben cumplir con:

La justa asignacin de CPU.

El cumplimiento de polticas de
asignacin.

El balanceo del sistema,


manteniendo todas sus partes
ocupadas.

Objetivos
En sistemas por lotes:

Maximizar la ejecucin de procesos


en un intervalo de tiempo.

Minimizar el tiempo tomado entre el


inicio y el fin de un proceso.

Mantener el CPU ocupado todo el


tiempo posible.

Objetivos
En sistemas interactivos:

Hacer que el tiempo de respuesta a


requerimientos sea el menor posible.

Asignacin proporcional, cumpliendo


as con las expectativas de los
usuarios.

Objetivos
En sistemas de tiempo real:

Cumplimiento de los plazos, para


evitar la prdida de datos.

Previsibilidad, impidiendo as la
degradacin de la calidad en
sistemas multimedia.

Scheduling en sistemas
batch
Se usan los siguientes algoritmos:

Primero en llegar, primero en ser


atendido.

Trabajo ms corto primero.

Tiempo restante ms corto ser el


siguiente.

Programacin en tres niveles.

Primero en llegar,
primero en ser atendido
Algoritmo de tipo no preventivo.
Los procesos son asignados al CPU en
el orden en que van requirindolo.
Se implementa con un lista
enlazada que guardar el registro de
todos los procesos en estado listo.
Su principal desventaja es el tiempo
de procesamiento que se ve
notablemente desperdiciado.

Scheduling en sistemas
interactivos
Se usan los siguientes algoritmos:

Programacin Round-Robin.

Programacin por prioridades.

Colas mltiples.

Proceso ms corto ser el siguiente.

Programacin garantizada.

Programacin de lotera

Programacin de comparticin justa.

Vous aimerez peut-être aussi