Está en la página 1de 6

Sistemas Operativos

Planificacin de procesos
Melissa Mejia Colorado
Mashiel Merio Mejia
Uniguajira
Facultad de Ingeniera
Programa Ingeniera de Sistemas
VI Semestre
Resumen. La forma en que se reparte el uso de la CPU (Unidad Central de Procesamiento) entre los
procesos, tiene un enorme impacto en el rendimiento de un sistema multiprogramado, por lo que
siempre se ha prestado una gran atencin a las estrategias de planificacin que se implementan para
los mltiples procesos que son mantenidos en la memoria principal y se han elaborado multitud de
conceptos relacionados con ello con la finalidad de maximizar el uso de la CPU. El estudio de estas
estrategias es el objeto de este documento. Se presta tambin atencin a la planificacin en
multiprocesadores y a la planificacin de tiempo real.

Introduccin

Revisin de la literatura

Uno de los objetivos de un SO (Sistemas operativos)


multiprogramado es proporcionar una utilizacin
eficiente de los recursos del proceso, permitiendo a
estos un uso de ellos que evite situaciones de
inanicin. Todo esto es lo que persigue una estrategia
de planificacin adecuada, que determina los criterios
de eleccin del siguiente proceso a usar la CPU.
Determinar la calidad de una estrategia de
planificacin es complejo y presenta diferentes
perspectivas, dependiendo de los intereses de las
aplicaciones, lo que lleva a definir previamente un
conjunto de parmetros de rendimiento. El
rendimiento de una determinada estrategia de
planificacin depender tambin del comportamiento
de los programas, por lo que la eleccin de una u otra
estrategia deber tener en cuenta el tipo de procesos
que ejecuta el sistema. Algunas aplicaciones, como
las de tiempo real, imponen unos requisitos muy
particulares en el uso del procesador, lo que hace
difcil su convivencia con las aplicaciones habituales
en los sistemas de tiempo compartido, conduciendo a
estrategias de planificacin de tiempo real
especficas.

Un programa ser un archivo cuando se encuentre en


el disco rgido y ser un proceso al encontrarse en
memoria, este se puede definir como un programa en
ejecucin o como la unidad de procesamiento
gestionada por el SO. Los procesos llevan a cabo
tareas en el SO, durante su vida, ste har uso de
muchos recursos del sistema como es el caso de la
CPU para ejecutar sus instrucciones.
La planificacin hace referencia a un conjunto de
estrategias y mecanismos incorporados al SO que
gobiernan el orden en que se ejecutan los trabajos que
deben ser completados por el sistema y el momento
en que lo abandona. El planificador es un mdulo del
SO que selecciona el siguiente trabajo y el siguiente
proceso que tomara control. [1]
Se pueden definir mltiples estrategias de
planificacin de procesos: en orden de llegada,
primero la tarea ms breve, por orden de prioridad,
entre otras. Per se usan varias magnitudes para medir
el rendimiento de los algoritmos de planificacin:

El trabajo de planificacin reside en gran parte en una


funcin scheduler del ncleo del SO, pero otras
partes del sistema pueden colaborar en esta tarea,
normalmente modificando los parmetros que utiliza
el scheduler para decidir qu proceso planificar. La
planificacin puede repartirse en tres niveles:

En la llamada al sistema de ejecutar un


programa. Cuando se crea un proceso se
puede decidir alguno de los criterios para su
planificacin, como por ejemplo la prioridad
inicial y el quantum. A esta planificacin se
la denomina de largo plazo.

Otras partes del SO pueden intervenir en la


planificacin, ya sea peridicamente o de
forma indirecta, a este tipo de planificacin
se la denomina de medio plazo.

Mantener ocupado el CPU.

Minimizar el tiempo de respuesta de los


procesos interactivos.

Maximizar el nmero de tareas procesadas


por hora.

Tiempo de retorno: tiempo transcurrido


entre la llegada de un proceso y su
finalizacin.

Tiempo de espera: tiempo que un proceso


permanece en la cola de preparados.

Tiempo de respuesta: tiempo que un proceso


bloqueado tarda en entrar en CPU, desde
que ocurre el evento que lo bloquea.

Minimizar el tiempo medio de espera o de


retorno.

Maximizar la utilizacin de CPU.

Mantener el tiempo de respuesta por debajo


de un valor mximo. [2]

En la llamada al sistema para ejecutar un proceso hay


tres niveles de planificacin. Cuando se crea un
proceso se puede decidir alguno de los criterios para
su planificacin, como la prioridad inicial y el
quantum. A esta planificacin se la denomina de
largo plazo. Otras partes del SO pueden intervenir en
la planificacin, bien peridicamente o de forma
indirecta, a este tipo de planificacin se la denomina
de medio plazo. En la funcin scheduler, cada vez
que un proceso abandona la CPU, toma la decisin de
qu proceso planificar en funcin de la estrategia de
planificacin establecida y del valor de los
parmetros de planificacin. A esta planificacin se la
denomina de corto plazo.

Con la planificacin de procesos se busca:


Garantizar que cada proceso obtenga una
proporcin justa de tiempo de CPU.

Utilizacin de CPU: Porcentaje de tiempo


que la CPU est ocupada.

Con el objetivo de:

En la funcin scheduler. Cada vez que un


proceso abandona la CPU, toma la decisin
de qu proceso planificar en funcin de la
poltica de planificacin establecida. A esta
planificacin se la denomina de corto plazo.

Hay distintos tipos de procesos como aquellos que


por mucho tiempo han estado en listos o en
ejecucin, llamados procesos largos y los que ya sea
2

que estn en una rfaga limitada por entrada-salida y


requieran atencin meramente ocasional del
procesador, o tienden a estar bloqueados esperando a
eventos, llamados procesos cortos. [1]
Podemos considerar que la vida activa de un proceso
es una sucesin de:

Rfagas de CPU, el
instrucciones.

Rfagas de E/S, el proceso utiliza o espera


por la E/S

proceso ejecuta

Segn la utilizacin de los recursos, se observan:

Procesos intensivos en CPU.

Procesos intensivos en E/S. [2]

El tiempo de duracin de un proceso de mide en:


Tick - Quantum Tiempo ncleo o kernel Tiempo
de usuario Tiempo de uso del procesador Tiempo
desocupado Utilizacin del CPU.
Para calcular los recursos que consume un programa
al realizar una tarea se emplean los algoritmos de
planificacin:

FSFC (Primero llegado, primero servido)


Ronda
SPN (Primero el ms corto)
SRR (Ronda egosta)
FB (Retroalimentacin multinivel.
Hbridos
Lotera

Los hilos tambin tienen que ver en la planificacin,


esto depende de cmo son mapeados:

Muchos a uno: Muchos hilos son agrupados


en un slo proceso.

Uno a uno: Cada hilo es ejecutado como un


proceso ligero.

Hay Procesos que requieren garanta de tiempo. Para


poder ejecutarse deben garantizarle x tiempo antes
del tiempo lmite. Estos se conocen como procesos de
tiempo real son aquellos cuya correccin no slo
depende del resultado, sino tambin de si lo producen
antes de un plazo determinado de tiempo. En otras
palabras, el tiempo de finalizacin est acotado. Esta
restriccin implica que, en general, la ejecucin de
una tarea de tiempo real no puede verse afectada por
circunstancias como la carga SO. En un sistema de
propsito general los procesos de tiempo real
conviven con procesos de tiempo compartido o
procesos del propio sistema, por lo que es muy difcil
garantizar siempre el cumplimiento de los plazos.
Sistemas de Tiempo Real Duro: Requiere completar
tareas crticas en una cantidad de tiempo garantizado.
Computacin de Tiempo Real Blando: Requiere
que los procesos crticos reciban prioridad sobre
otros. [2]

Planificacin de procesos
La planificacin de procesos son un conjunto de
estrategias y mecanismos incorporados al SO, a
travs de un mdulo denominado planificador, que
debe decidir cul de los procesos en condiciones de
ser ejecutado conviene ser despachado primero y qu
orden de ejecucin debe seguirse. Esto debe
realizarse sin perder de vista su principal objetivo que
consiste en el mximo aprovechamiento del sistema,
lo que implica proveer un buen servicio a los
procesos existentes en un momento dado.

1.Tipos de planificacin
1.1 Tipos de Procesos
Podemos separar los procesos que estn en ejecucin
y listos en:

Procesos largos: Aquellos que por mucho


tiempo han estado en listas o en ejecucin,
esto es, procesos que estn en una larga
rfaga limitada por CPU.

Procesos cortos: Aquellos que, ya sea que


en estn una rfaga limitada por entradasalida y requieran atencin meramente
ocasional del procesador, o tienden a estar
bloqueados esperando a eventos.

Muchos a muchos: Este mecanismo permite


que existan hilos de ambos modelos. [3]

La planificacin de procesos en un sistema


multiprocesador, una mquina con un conjunto de
procesadores que comparten un mismo espacio de
direcciones de memoria fsica, presenta dos
componentes:

Planificacin temporal, que define la poltica


de planificacin en cada procesador
individual.

Planificacin espacial, que define cmo se


asignan los procesadores a los diferentes
procesos.

1.2 Midiendo respuestas


En vez de emplear unidades temporales formales, es
comn emplear quantum y tick. Esto es en buena
medida porque, si bien en el campo del cmputo las
velocidades de acceso y uso efectivo cambian
constantemente. Adems, al ser ambos parmetros
ajustables, una misma implementacin puede
sobrevivir ajustndose a la evolucin del hardware.

Tick: Una fraccin de segundo durante la


cual se puede realizar trabajo til. Es una
medida caprichosa y arbitraria; en Linux
(versin 2.6.8 en adelante), un tick dura un

milisegundo, en Windows, entre 10 y 15


milisegundos.

Quantum: El tiempo mnimo que se


permitir a un proceso el uso del procesador.
En Windows, dependiendo de la clase de
proceso que se trate, un quantum durar
entre 2 y 12 ticks y en Linux, entre 10 y 200
ticks

Figura: Ronda

Cuando no tenemos la posibilidad de


implementar multitarea preventiva, pero
requerimos de un algoritmo ms justo, y
contamos con informacin por anticipado acerca
del tiempo que requieren los procesos que
forman la lista, podemos elegir el ms corto de
los presentes.

1.3 Algoritmos de planificacin

El proceso ms corto a continuacin (SPN)

Primero llegado, primero servido (FCFS)

El esquema ms simple de planificacin es el


Primero llegado, primero servido (First come,
first serve, FCFS). Este es un mecanismo
cooperativo, con la mnima lgica posible: Cada
proceso se ejecuta en el orden en que fue
llegando, y hasta que suelta el control. El
despachador es muy simple, bsicamente una
cola FIFO.

Figura: SPN

Este mtodo busca favorecer a los procesos que


ya han pasado tiempo ejecutando que a los recin
llegados. De hecho, los nuevos procesos no son
programados directamente para su ejecucin,
sino que se les forma en la cola de procesos
nuevos, y se avanza nicamente con la cola de
procesos aceptados.

Figura: FCFS

Ronda egosta (SRR)

Ronda (Round Robin)

El esquema ronda busca dar una relacin 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 slo 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.
Figura: SRR

Retroalimentacin multinivel (FB)

Este mecanismo maneja no una, sino que varias


colas de procesos listos, con diferentes niveles de
prioridad. El despachador elige para su ejecucin
al proceso que est al frente de la cola de mayor
prioridad que tenga algn proceso esperando y
tras un nmero predeterminado de ejecuciones,
lo degrada a la cola de prioridad inmediata
inferior.
4

En un entorno multiprocesador, despus de que


un proceso se ejecut por cierto tiempo, tendr
parte importante de sus datos copiados en el
cach del procesador en el que fue ejecutado. Si
el despachador decidiera lanzarlo en un
procesador que no compartiera dicho cach,
estos datos tendran que ser invalidados para
mantener la coherencia, y muy probablemente
(por localidad de referencia) seran vueltos a
cargar al cach del nuevo procesador.

Figura: FB

Lotera

Esta planificacin consiste en pasar a ejecucin


algn proceso de la cola listo al azar y darle el
tiempo de ejecutarse hasta que haya terminado.
La idea bsica de esta planificacin consiste en
dar a los procesos boletos (permiten acceso a un
recurso) de lotera para los diversos recursos del
sistema. La CPU cada vez que se hace necesario
tomar una decisin de planificacin, se escoge al
azar un boleto de lotera y el proceso poseedor de
este obtiene el recurso.

Esquemas hbridos

Los esquemas de planificacin utilizan mezclas


de los algoritmos presentados.

1.4 Planificacin de hilos

Uno a uno: Este mecanismo permite a los


hilos aprovechar
las ventajas del
paralelismo, pudiendo ejecutarse cada hilo
en un procesador distinto, y como nica
condicin para su existencia, el sistema
operativo debe poder implementar los LWP
(proceso de peso ligero).
Muchos a uno: Muchos hilos son agrupados
en un slo proceso. Para el sistema
operativo, hay un slo proceso; mientras
tiene la ejecucin, ste se encarga de repartir
el tiempo entre sus hilos.
Muchos a muchos: Este mecanismo
permite que existan hilos de ambos modelos:
Permite la existencia de hilos unidos, en que
cada hilo corresponde a un LWP, y de hilos
no unidos, de los cuales uno o ms estarn
mapeados a cada LWP.

1.5 Planificacin de multiprocesadores


Para trabajar en multiprocesadores, puede mantenerse
una sola lista de procesos e ir despachndolos a cada
uno de los procesadores como unidades de ejecucin
equivalentes e idnticas, o pueden mantenerse listas
separadas de procesos.

Afinidad a procesador

Balanceo de cargas

En un sistema multiprocesador, la situacin ideal


es que todos los procesadores estn despachando
trabajos al 100% de su capacidad. Sin embargo,
ante una definicin tan rgida, la realidad es que
siempre habr uno o ms procesadores con
menos del 100% de carga, o uno o ms
procesadores con procesos encolados y a la
espera, o incluso ambas situaciones.

Colas de procesos: Una o varias?

En esta seccin partimos del supuesto que hay


una cola de procesos listos por cada procesador.
Si, en cambio, hubiera una cola global de
procesos listos de la cual el siguiente proceso a
ejecutarse fuera asignndose al siguiente
procesador, fuera ste cualquiera de los
disponibles, podramos ahorrarnos incluso elegir
entre una estrategia de migracin por empuje o
por jaln, Mientras hubiera procesos pendientes,
stos seran asignados al siguiente procesador
que tuviera tiempo disponible.

1.6 Tiempo real


Todos los esquemas de manejo de tiempo hasta este
momento se han enfocado a repartir el tiempo
disponible entre todos los procesos que requieren
atencin. Sin embargo, los procesos que requieren
garantas de tiempo, es decir, que para poder
ejecutarse deben garantizar el haber tenido
determinado tiempo de proceso antes de un tiempo
lmite. Los procesos con estas caractersticas se
conocen como de tiempo real.

Tiempo real duro y suave

Si un dispositivo genera peridicamente hasta


determinada cantidad de informacin y la va
colocando en un rea determinada de memoria
compartida, el proceso encargado de manejar
dicha informacin declarar al sistema operativo
cunto tiempo de ejecucin le tomar. Si el
sistema operativo puede garantizar que en ese
tiempo le otorgar al proceso en cuestin, el
proceso se ejecuta, y si no, recibe un error por
medio del cual podr alertar al usuario. Los
sistemas en que el tiempo mximo es
garantizable son conocidos como de tiempo real
duro.

Sistema
operativo
(prevenible)

interrumpible

Para que la implementacin de tiempo real suave


sea apta para estos requisitos es necesario
modificar el comportamiento del sistema
operativo. Cuando un proceso de usuario hace
una llamada al sistema, o cuando una
interrupcin corta el flujo de ejecucin, hace
falta que el sistema procese completa la rutina
que da servicio a dicha solicitud antes de que
contine operando. Se dice entonces que el
sistema operativo no es prevenible o no es
interrumpible.

de esta actividad, se han establecido un conjunto de


criterios que deben ser reconocidos a la hora de la
seleccin.

Referencias

La amplia variedad de algoritmos de planificacin


disponibles exige tener mtodos para seleccionar el
ms apropiado. No es fcil determinar cul es el
mejor proceso de planificacin por eso se requiere
una evaluacin de los algoritmos con mtodos
analticos o de simulacin y as decidir el criterio a
utilizar.

Inversin de prioridades

[1] A. Alticoru, 'Planificacin de Procesos',


Es.slideshare.net, 2012. [Online]. Disponible:
http://es.slideshare.net/alticoru/planificacion-deprocesos-13264101?next_slideshow=1.
[Acceso: 22- Nov- 2015]

Un efecto colateral de que las estructuras del


ncleo estn protegidas por mecanismos de
sincronizacin es que puede presentarse la
inversin de prioridades. Esto es:
Un proceso A de baja prioridad hace una
llamada al sistema, y es interrumpido a la mitad
de dicha llamada.

[2] 'Planificacin de procesos y procesadores'.


[Online].
Disponible:
http://www.sc.ehu.es/acwlaroa/SO2/Apuntes/Ca
p3.pdf. [Acceso: 22- Nov- 2015]

Un proceso B de prioridad tiempo real hace una


segunda llamada al sistema, que requiere de la
misma estructura que la que tiene bloqueada A.

[3] G. Wolf, 'Sistemas Operativos Planificacin


de procesos', Sistop.gwolf.org, 2015. [Online].
Disponible:
http://sistop.gwolf.org/html/03_planificacion_de
_procesos.html#undefined. [Acceso: 22- Nov2015].

Conclusiones
La planificacin de procesos es la tarea de escoger un
proceso que espera en la cola de procesos listos y
asignarle la CPU. El proceso de seleccin no es una
tarea sencilla, ya que requiere tener una serie de
conceptos muy claros, y definir muy bien cul es la
funcin que el SO realizar. Para ayudar al desarrollo