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)

Con el orden de llegada, lo que viene primero se maneja primero; la siguiente solicitud en línea se ejecutará una vez que se complete antes.



 

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

Entradas populares de este blog

Solucionando problemas caminos y circuitos mediante grafos.

Solución de ejercicios de Relaciones