Resumen de procesos.

 Planificación de procesos. 

La planificación es la parte del sistema operativo que se encarga de seleccionar a qué proceso se asigna el recurso procesador y durante cuánto tiempo.

Hay tres tipos de planificación:

-       A largo plazo: se encarga de decidir que procesos serán iniciados. Casi en la totalidad de de sistemas de uso interactivo, este tipo de planificación no se efectúa, ya que es el usuario quien indica que proceso iniciar.

-       A mediano plazo: Decide cuales procesos es conveniente bloquear, ya sea por escasez/saturación de algún recurso.

-       A corto plazo: es el encargado de decidir como compartir momento a momento al equipo entre todos los proceso que requieren de sus recursos.

Existen dos tipos de procesos: procesos largos y procesos cortos.

-       Procesos largos: son los que están en una larga ráfaga limitada por CPU.

-       Procesos cortos: los que estén en una ráfaga limitada ya sea por entrada-salida y requieran atención ocasional del procesador,

Por lo general se busca dar tratamiento preferente a los procesos cortos, en particular a los interactivos.

Midiendo la respuesta.

Cada patrón de uso del sistema debe seguir unas políticas de planificación distintas. Para esto se define los tiempos de respuesta según cada proceso y planificación.

Tick: Es una fracción de tiempo durante la cual se puede realizar trabajo útil, esto es, usar el CPU sin interrupción.

Quantum: El tiempo mínimo que se permitirá a un proceso el uso del procesador.

 

Para medir el comportamiento de un sistema determinado según su planificador se tienen en cuenta los siguientes conceptos, para un proceso p  que requiere de un tiempo t de ejecución:

Tiempo de respuesta (T): Cuánto tiempo total es necesario para completar el trabajo pendiente de un proceso p, incluyendo el tiempo que está inactivo esperando ejecución.

Tiempo en espera (E = T − t) También referido como tiempo perdido. Del tiempo de respuesta total, cuánto tiempo p está listo y esperando ejecutar. Desde la óptica de p, se desearía que Ep → 0

Proporción de penalización (P = T t ) Proporción del tiempo de respuesta en relación al tiempo de uso del procesador (en qué proporción fue penalizado el proceso).

 Proporción de respuesta (R = t T ) Inverso de P. Fracción del tiempo de respuesta durante la cual p pudo ejecutarse.

Tiempo núcleo o kernel Tiempo que pasa el sistema en espacio de núcleo, incluyendo entre otras funciones4 el empleado en decidir e implementar la política de planificación y los cambios de contexto.

Tiempo de sistema Tiempo que pasa un proceso en espacio núcleo atendiendo el pedido de un proceso (syscall)

Tiempo de usuario Tiempo que pasa un proceso en modo usuario, es decir, ejecutando las instrucciones que forman parte explícita y directamente del programa.

Tiempo de uso del procesador Tiempo durante el cual el procesador ejecutó instrucciones por cuenta de un proceso (sean en modo usuario o en modo núcleo).

Tiempo desocupado (idle) Tiempo en que la cola de procesos listos está vacía y no puede realizarse ningún trabajo.

 Utilización del CPU Porcentaje del tiempo en que el CPU está realizando trabajo útil. Si bien conceptualmente puede ubicarse dicha utilización entre 0 y 100%, en sistemas reales se ha observado.

 

Algoritmos de planificación.

El planificador a corto plazo es invocado cuando un proceso se encuentra bajo las siguientes circunstancias.

1-      Pasa de estar ejecutando a estar en espera (por ejemplo, por solicitar una operación de E/S, esperar a la sincronización con otro proceso, etcétera).

2-      Pasa de estar ejecutando a estar listo (por ejemplo, al ocurrir la interrupción del temporizador, o de algún evento externo).

3-       Deja de estar en espera a estar listo (por ejemplo, al finalizar la operación de E/S que solicitó).

4-       Finaliza su ejecución, y pasa de ejecutando ha terminado.


Objetivos de la planificación.

Ser justo Debe tratarse de igual manera a todos los procesos que compartan las mismas características,8 y nunca postergar indefinidamente uno de ellos.

Maximizar el rendimiento Dar servicio a la mayor parte de procesos por unidad de tiempo.

Ser predecible Un mismo trabajo debe tomar aproximadamente la misma cantidad de tiempo en completarse independientemente de la carga del sistema.

Minimizar la sobrecarga El tiempo que el algoritmo pierda en burocracia debe mantenerse al mínimo, dado que éste es tiempo de procesamiento útil perdido.

Equilibrar el uso de recursos Favorecer a los procesos que empleen recursos subutilizados, penalizar a los que peleen por un recurso sobre utilizado causando contención en el sistema.

Evitar la postergación indefinida Aumentar la prioridad de los procesos más viejos, para favorecer que alcancen a obtener algún recurso por el cual estén esperando.

Favorecer el uso esperado del sistema maximizar la prioridad de los procesos que sirvan a solicitudes iniciadas por éste.

Dar preferencia a los procesos que podrían causar bloqueo Si un proceso de baja prioridad está empleando un recurso del sistema por el cual más procesos están esperando, favorecer que éste termine de emplearlo más rápido.

Favorecer los procesos con un comportamiento deseable Si un proceso causa muchas demoras (por ejemplo, atraviesa una ráfaga de entrada/salida que le requiere hacer muchas llamadas a sistema o interrupciones), se le puede penalizar porque degrada el rendimiento global del sistema

Degradarse suavemente Si bien el nivel ideal de utilización del procesador es al 100%, es imposible mantenerse siempre a este nivel. Un algoritmo puede buscar responder con la menor penalización a los procesos preexistentes al momento de exceder este umbral.

 

Primero llegado, primero servido (FCFS).

Este es un mecanismo cooperativo: cada proceso se ejecuta en el orden en que fue llegando, y hasta que suelta el control.

El FCFS tiene características claramente inadecuadas para trabajos interactivos, pero, al no necesitar de un hardware de apoyo ( como un temporizador) sigue siendo bastante utilizado.

Ronda (Round Robin).

Este proceso busca dar una respuesta buena, tanto para procesos largos como cortos. Su principal diferencia con FCFS es que la ronda emplea multitarea apropiativa: cada proceso que este en la lista de procesos listos, puede ejecutar al final por un solo quantum (q).

El proceso mas corto a continuación (SPN, shortest process next)

Este se utiliza cuando se requiere de un algoritmo mas justo, el cual cuenta con información anticipada acerca del tiempo que requieren los procesos que forman parte de la lista.

SPN apropiativo (PSPN, preemptive shortest process next)

A pesar de que intuitivamente daría una mayor ganancia combinar las estrategias de SPN con un esquema de multitarea apropiativa, el comportamiento obtenido es muy similar para la amplia mayoría de los procesos.

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.

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.

 

Planificación de hilos.

hay dos clases principales de hilo: los hilos de usuario o hilos verdes, que son completamente gestionados dentro del proceso y sin ayuda del sistema operativo, y los hilos de núcleo o hilos de kernel, que sí son gestionados por el sistema operativo como si fueran procesos. Partiendo de esto, hay tres modelos principales de mapeo:

Muchos a uno Muchos hilos son agrupados en un sólo proceso.

Uno a uno Cada hilo es ejecutado como un proceso ligero.

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.

Comentarios

Entradas populares de este blog

Aplicación para la capa de Transporte