Tipos de planificación
A largo plazo: Es el encargado de determinar que proceso sera el siguiente en iniciarse pero este ya no se usa tan frecuentemente ya que el usuario es quien decide que proceso sera el siguiente en iniciarse.A mediano plazo: Es el que se encarga de decidir que procesos es necesario bloquear sea por escasez o saturación de algún recurso del equipo.
A corto plazo: Es el que se encarga de decidir entre los procesos que están listos para ejecutarse y determina cual activar y detiene a los que exceden demasiado el tiempo del procesador.
Tipos de procesos
Procesos largos: Son aquellos han estado listos por mucho tiempo o han estado mucho en ejecución.Procesos cortos: Son aquellos que necesitan atención solo en ocasión que el procesador lo necesite y suelen estar bloqueados a la espera de algún evento.
Midiendo la respuesta
Tiempo de respuesta (T): Es el tiempo necesario para completar un trabajo pendiente de un proceso.
Tiempo de espera (E = T - t): Es el tiempo que un proceso a estado listo y esta esperando para ser ejecutado.
Proporción de penalización (P = T/t): Es una fracción del tiempo en la que un proceso estuvo en espera.
Proporción de respuesta (R = t/T): Es una fracción del tiempo en la que un proceso pudo ejecutarse.
Para conocer el tiempo final también debemos tener en cuenta otros elementos como:
Tiempo núcleo o kernel: Es el tiempo que pasa el sistema en contacto con el núcleo, este tiempo no se
contabiliza cuando se calcula el tiempo del CPU utilizado por un proceso.
Tiempo de sistema: Es el tiempo que pasa un proceso en modo núcleo atendiendo
el pedido de un proceso
Tiempo de usuario: Es el tiempo que pasa un proceso en modo usuario ejecutando las instrucciones que forman parte explícita y directamente
del programa.
Tiempo de uso del procesador: Es el tiempo durante el cual el procesador ejecutó
instrucciones por cuenta de un proceso puede ser en modo usuario o en modo
núcleo.
Tiempo desocupado (idle): Es el tiempo en que la cola de procesos listos está vacía
y no puede realizarse ningún trabajo.
Utilización del CPU: Es un porcentaje del tiempo en que el CPU está realizando un trabajo útil.
Algoritmos de planificación
Para que el planificador a corto plazo sea ejecutado tiene que presentarse unas circunstancias que son:
- Pasar de estar ejecutando un proceso a estar en espera.
- Pasar de estar ejecutando un proceso a estar listo.
- Deja de estar en espera un proceso a estar listo.
- Pasar de estar ejecutando un proceso a estar terminado.
Objetivos de planificación
Ser justo: Debe tratarse de igual manera a todos los procesos que compartan las mismas características sin postergar uno de ellos.
Maximizar el rendimiento: Dar servicio a la mayor parte de procesos por unida de tiempo.
Minimizar la sobrecarga: El tiempo que el algoritmo pierda en burocracia debe ser el mínimo ya que este es tiempo útil perdido.
Equilibrar el uso de recursos: Favorecer a los procesos que empleen recursos subutilizados y penalizar a los que peleen por un recurso sobreutilizado causando contención en el sistema.
Evitar la postergación indefinida: Aumentar la prioridad de los procesos más viejos.
Favorecer el uso esperado del sistema: En un sistema con usuarios interactivos, maximizar la prioridad de los procesos que ayuden a cumplir la orden dada por éste.
Dar preferencia a los procesos que podrían causar bloqueo: Si un proceso de baja prioridad esta utilizando un elemento durante demasiado tiempo se le dará más prioridad para que no retrase los demás.
Favorecer los procesos con un comportamiento deseable: Si un proceso causa muchas demoras sera penalizado por demorar el rendimiento global del sistema.
Primero en llegar, primero en salir
Es un algoritmo de programación del sistema operativo que ejecuta automáticamente aplicaciones y procesos de cola en orden de llegada. Por lo que los primeros procesos en llegar serán los primeros en estar listos, pero no es tan efectivo ya que entre más procesos lleguen después de otro se van retraso más procesos y cada vez se van tardando más por lo que se va creando un retraso en la realización de procesos.
Ronda (Round Robin)
Es un algoritmo de planificación que consiste en asignarle a cada proceso una porción de tiempo equitativa y ordenada tratando a todos los procesos con la misma prioridad dando un tiempo máximo de uso de CPU a cada proceso el cual si se excede es desalojado y retornado al estado de listo para esperar su turno nuevamente.
El proceso más corto a continuación (SPN, shortest process next)
Cuando contamos con información por anticipado acerca del tiempo que requieren los procesos que forman la lista se puede elegir el más corto de los presentes. Aunque es muy difícil saber con anticipación el tiempo de los procesos.
Ronda egoísta (SRR, selfish round robin)
Este método busca favorecer más a los procesos que llevan rato ejecutándose que a los recién llegado y a los nuevos procesos no los programa para su ejecución sino que los pone en una lista de procesos nuevos y solo avanza únicamente en la cola de procesos aceptados.
Retroalimentación multinivel (FB, multilevel feedback)
Este mecanismo no maneja una sino varias colas de procesos listos con diferentes niveles de prioridad el despachador elegirá para su ejecución
al proceso que esté al frente de la cola de mayor prioridad que tenga algún proceso esperando y tras varias ejecuciones lo degrada a la cola de prioridad inmediata.
Esquemas híbridos
Los siete algoritmos pueden clasificarse en dos discriminadores primarios: si están pensados para emplearse en multitarea cooperativa o apropiativa, y si emplean información intrínseca a los procesos evaluados o no lo hacen, esto es, si un proceso es tratado de distinta forma
dependiendo de su historial de ejecución.
Planificación de hilos
Muchos a uno: Muchos hilos son agrupados en un solo proceso cuando hay un sólo proceso mientras este 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 este da la impresión que desperdicia la principal característica de los hilos que es mayor sencillez y rapidez.
Muchos a muchos: Proporciona las principales características
de ambos esquemas en caso de ejecutarse en un sistema que no soporte
más que el modelo uno a muchos el sistema puede caer en éste como modo
degradado.
Los hilos POSIX (pthreads)
Ámbito de contención de proceso: Cuando un proceso consta de varios hilos siguiendo el modelo muchos a
uno, o uno que multiplexa varios hilos no unidos bajo un modelo muchos a
muchos se ejecuta bajo este ámbito.
Ámbito de contención de sistema: Este ámbito es cuando en contraposición cada hilo es visto por el planificador como un proceso independiente;
este es el ámbito en el que se ejecutarían los hilos bajo el modelo uno a
uno, o cada uno de los hilos unidos bajo un modelo muchos a muchos, dado
que los hilos son tratados, para propósitos de planificación.
Tiempo real duro y suave
Cuando un sistema genera periódicamente hasta determinada cantidad de información y la va colocando en un área determinada de memoria compartida, el proceso encargado declarara cuánto tiempo de ejecución le tomará. Los sistemas en que el tiempo máximo es garantizable son conocidos como de tiempo real duro.
Sistema operativo interrumpible (prevenible)
Es un sistema operativo con capacidad para manejar múltiples interrupciones al mismo
tiempo que permite interrumpir las interrupciones lo que significa que el sistema puede
detener cualquier programa que ya se esté ejecutando y esta es una característica de casi
todos los sistemas operativos modernos.
Se da cuando dos tareas de distintos niveles de prioridad comparten un mismo recurso y la tarea de menor prioridad bloquea el recurso antes que la de mayor prioridad quedando bloqueada esta ultima esto hace que queden invertidas de forma efectiva las prioridades relativas entre ambas ya que la tarea que originalmente tenía mayor prioridad queda supeditada a la tarea de menor prioridad por lo que la tarea de mayor prioridad puede no cumplir sus requisitos de tiempo establecidos.
Comentarios
Publicar un comentario