Resumen de procesos
PLANIFICACION DE
PROCESOS
La planificación de procesos se refiere a cómo determina el
sistema operativo al orden en que irá cediendo el uso del procesador a los
procesos que lo vayan solicitando, y a las políticas que empleará para que el
uso que den a dicho tiempo no sea excesivo respecto al uso esperado del
sistema.
TIPOS DE PLANIFICACION
A largo plazo
Decide qué procesos
serán los siguientes en ser iniciados
A 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.
A corto plazo
Decide cómo compartir
momento a momento al equipo entre todos los procesos que requieren de sus
recursos, especialmente el procesador.
OBJETIVOS DE LA PLANIFICACION
·
Equidad: Todos los procesos deben ser
atendidos.
·
Eficacia: El procesador debe estar
ocupado el 100% del tiempo.
·
Tiempo
de respuesta: El
tiempo empleado en dar respuesta a las solicitudes del usuario debe ser el
menor posible.
·
Tiempo
de regreso: Reducir
al mínimo el tiempo de espera de los resultados esperados por los usuarios por
lotes.
·
Rendimiento: Maximizar el número de tareas
que se procesan por cada hora.
ALGORITMOS DE PLANIFICACION
Primero llegado, primero servido (FCFS)
Ronda (Round Robin)
El esquema ronda busca dar una relación
de respuesta buena, tanto para procesos largos como para los cortos.
El proceso más corto a
continuación (SPN, shortest process next)
Cuando no se tiene la posibilidad
de implementar multitarea apropiativa, pero se requiere de un algoritmo más
justo, contando con información por anticipado acerca del tiempo que requieren
los procesos que forman la lista, puede elegirse el más corto de los presentes.
Ronda egoísta (SRR, selfish round
robin)
Este método busca favorecer los
procesos que ya han pasado tiempo ejecutando que a los recién llegados. De
hecho, los nuevos procesos no son programados directamente para su ejecución,
sino que se les forma en la cola de procesos nuevos, y se avanza únicamente con
la cola de procesos aceptados
Retroalimentación multinivel (FB,
multilevel feedback)
La retroalimentación multinivel
basa su operación en más de una cola —pero en este caso, todas ellas tendrán el
mismo tratamiento general, distinguiéndose sólo por su nivel de prioridad
El mecanismo de retroalimentación
multinivel favorece los procesos cortos, dado que terminarán sus tareas sin
haber sido marcados como de prioridades inferiores.
El más penalizado a continuación
(HPRN, highest penalty ratio next)
En un sistema que no cuenta con
multitarea apropiativa, las alternativas presentadas hasta ahora resultan
invariablemente injustas: El uso de FCFS favorece los procesos largos, y el uso
de SPN los cortos. Un intento de llegar a un algoritmo más balanceado es HPRN
Lotería
Bajo el esquema de la lotería,
cada proceso tiene un número determinado de boletos, y cada boleto le
representa una oportunidad de jugar a la lotería. Cada vez que el planificador
tiene que elegir el siguiente proceso a poner en ejecución, elige un número al
azar10, y otorga el siguiente quantum al proceso que tenga el boleto ganador.
El boleto ganador no es retirado, esto es, la probabilidad de que determinado
proceso sea puesto en ejecución no varía entre invocaciones sucesivas del
planificador.
Esquemas híbridos
PLANIFICACION DE HILOS
Cuando varios
procesos tienen múltiples hilos cada uno, tenemos dos niveles de paralelismo
presentes: procesos e hilos. La planificación en tales sistemas difiere en
forma considerable, dependiendo de si hay soporte para hilos a nivel usuario o
para hilos a nivel kernel (o ambos).
Modelos principales de Mapeo
Muchos a uno
Muchos hilos son agrupados en un
sólo proceso. Los hilos verdes entran en este supuesto: para el sistema
operativo, hay un sólo proceso; mientras tiene la ejecución, éste se encarga de
repartir el tiempo entre sus hilos.
Uno a uno
Cada hilo es ejecutado como un
proceso ligero (lightweight process o LWP)
Muchos a muchos
Este mecanismo
permite que hayan hilos de ambos modelos: permite hilos unidos (bound threads),
en que cada hilo corresponde a un (y solo un) LWP, y de hilos no unidos
(unbound threads), de los cuales uno o más estarán mapeados a cada LWP.
PLANIFICACION DE MULTIPROCESADORES
Para trabajar
en multiprocesadores, puede mantenerse una sola lista de procesos e ir
despachándolos a cada uno de los procesadores como unidades de ejecución
equivalentes e idénticas, o pueden mantenerse listas separadas de procesos. A
continuación se presentan algunos argumentos respecto a estos enfoques:
Afinidad
a procesador:
En un entorno multiprocesador, después 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
tendrían que ser invalidados para mantener la coherencia, y muy probablemente
(por localidad de referencia) serían vueltos a cargar al caché del nuevo
procesador.
Balanceo
de cargas:
En un sistema multiprocesador, la situación
ideal es que todos los procesadores estén despachando trabajos a 100% de su
capacidad. Sin embargo, ante una definición tan rígida, la realidad es que
siempre habrá uno o más procesadores con menos de 100% de carga, o uno o más
procesadores con procesos encolados y a la espera, o incluso ambas situaciones.
Colas
de procesos:
Si hubiera una
cola global de procesos listos de la cual el siguiente proceso a ejecutarse
fuera asignándose al siguiente procesador, fuera éste cualquiera de los
disponibles, podría ahorrarse incluso elegir entre una estrategia de migración
por empuje o por jalón —mientras hubiera procesos pendientes, éstos serían
asignados al siguiente procesador que tuviera tiempo disponible.
Procesadores
con soporte a hilos hardware:
se hace
referencia a los hilos en hardware (en inglés, hyperthreading) que forman parte
de ciertos procesadores, ofreciendo al sistema una casi concurrencia adicional.
TIEMPO REAL
El término “sistema en tiempo real” se
refiere a cualquier sistema de procesamiento de información con componentes de
software y hardware que realiza funciones de aplicación en tiempo real y puede
responder a los eventos con limitaciones de tiempo predecibles y específicas.
Tiempo real duro y suave
Los sistemas en que el tiempo máximo es garantizable son
conocidos como de tiempo real duro.
Tiempo real suave es una forma de
caracterizar una tarea o sistema de tiempo real en el que se busca que el
tiempo medio de respuesta sea menor de un tiempo predefinido.
Sistema operativo interrumpible
(prevenible):
Cuando un proceso de usuario hace una llamada
al sistema, o cuando una interrupción corta el flujo de ejecución, hace falta
que el sistema procese completa la rutina que da servicio a dicha solicitud antes
de que continúe operando. Se dice entonces que el sistema operativo no es
prevenible o no es interrumpible.
Inversión de prioridades:
Un efecto colateral de que las estructuras del
núcleo estén protegidas por mecanismos de sincronización es que puede
presentarse la inversión de prioridades. Esto es: Un proceso A de baja
prioridad hace una llamada al sistema, y es interrumpido a la mitad de dicha
llamada. Un proceso B de prioridad tiempo real hace una segunda llamada al
sistema, que requiere de la misma estructura que la que tiene bloqueada el
proceso A.
Comentarios
Publicar un comentario