Resumen de procesos.
Planificación de procesos.
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
Publicar un comentario