UNET Logo

Universidad Nacional Experimental Del Táchira
Decanato De Docencia
Dpto. Ingeniería en Informática

Gestión de procesos

Código 0435607T

Contenido

  • Introducción
  • Gestión de procesos:
    • Por lotes
    • Interactivos
    • Tiempo real
    • Multiprocesador
  • Planificador y despachador de procesos.

Introducción

  • Planificador de procesos: es la sección del sistema operativo encargado de ordenar la secuencia en que los procesos del serán ejecutados, con el fin de optimizar el uso de los recursos del sistema.
  • Algoritmo de planificación: es el método como el planificador organiza los procesos para ser ejecutados.

Introducción

  • En sistemas de un solo proceso el planificador sólo tenía que ejecutar la siguiente instrucción.
  • En los sistemas multiproceso es necesario aprovechar el hardware al máximo.
  • La ejecución de un proceso consiste en una alternancia entre ráfagas de CPU y ráfagas de E/S. Optimizar esto, es responsabilidad del planificador.

Introducción

  • ¿Los procesos interactivos de usuario deberían tener prioridad sobre los procesos de segundo plano del sistema? Depende de la situación.
  • El planificador debe hacer uso eficiente de la CPU. La conmutación de procesos también tiene un costo computacional.

Introducción

Comportamiento de un proceso

Introducción

Cuando planificar procesos:

  • En la creación de procesos.
  • Cuando un proceso termina.
  • Durante el bloqueo de E/S de un proceso.
  • Cuando ocurre una interrupción de E/S.

Categoría de planificadores

  • No apropiativo: Selecciona un proceso para ejecutarlo. Permite su ejecución hasta que el mismo se bloquee (esperando E/S) o hasta que termine.
  • Apropiativo: Selecciona un proceso para ejecutarlo. Permite su ejecución por un espacio de tiempo fijo y luego lo saca del CPU para asignarlo a otro proceso.

Criterios de un planificador

  • Maximizar:
    • Uso del CPU.
    • Rendimiento.
  • Minimizar:
    • Tiempos de ejecución.
    • Tiempo de respuesta.
    • Tiempo de espera.

Desapachador

  • Es el módulo que proporciona control al CPU de los procesos seleccionados por el planificador a corto plazo.
  • Esto impica:
    • Realiza un cambio de contexto.
    • Cambio al modo de usuario (sin privilegios).
    • Salto a la posición n correcta del programa para continuar su ejecución.
  • El despachador debe ser muy rápido, pues se invoca cada que vez que se conmuta un proceso.
  • El tiempo perdido por este proceso se llama latencia de despacho.

Despachador

El Despachador, también conocido como Scheduler asigna cuales aplicaciones deben ser ejecutadas en el procesador

Tipos de planificadores

Procesamiento por lotes

  • Primero en entrar, primero en ser atendido (FCFS)
  • Trabajo mas corto primero (SJF)
  • Menor tiempo restante a continuación (SRTN)

Tipos de planificadores

Sistemas interactivos:

  • Turno circular (Round Robin).
  • Planificación por prioridad
  • Colas multinivel.
  • Colas multinivel con retroalimentación.
  • Planificación garantizada

Planificación en tiempo real.

Planificación en sistemas multiprocesador.

Procesamiento por lotes

FIFO - FCFS

  • Es el más simple de los algoritmos de planificación, simplemente ejecuta los procesos a medida que solicitan acceso al CPU. (mediante una FIFO).
  • Cuando se coloca un proceso en la cola de preparados su PCB se coloca al final de la cola, cuando el CPU está libre el planificador coloca el proceso ubicado al principio de la cola, pasa a ejecutarse y es eliminado de la cola.

Uno de los problemas de este algoritmo es el efecto Convoy, el cual ocurre cuando un proceso espera mucho tiempo, debido a un proceso utilizando el CPU por mucho tiempo.

FIFO - FCFS

ProcesosLlegadaTiempo CPU (ms)
P106
P243
P364
P471
ProcesoOperaciónTotal
P100
P26 - 42
P39 - 63
P413 - 76
Tiempo de espera promedio: 2.75

012 345 6
78 91011 1213

Procesamiento por lotes

Primer Proceso mas corto (SJF)

Asigna a la CPU el siguiente proceso con menor tiempo trabajo, en caso de existir varios procesos con el mismo valor aplica FCFS. Sin embargo, es costoso realizar el calculo del tiempo restante para cada proceso y a veces es díficil de predecir/conocer el valor real.

Solo funciona si TODOS los procesos llegan al mismo tiempo

Procesamiento por lotes

Menor tiempo restante (SPN)

Es una versión apropiativa de SJF. Selecciona el trabajo con el menor tiempo de procesamiento restante. Es necesario conocer el tiempo de ejecución.

SJF/SPN

ProcesosLlegadaTiempo CPU (ms)
P107
P224
P341
P454
ProcesoOperaciónTotal
P17 - 7 - 00
P212 - 4 - 26
P38 - 4 - 13
P416 - 4 - 57
Tiempo de espera promedio: 4

012 345 67
8 91011 121314 15

Sistemas interactivos

Round Robin (Algoritmo por turnos)

Asigna un espacio de tiempo a cada proceso (cuanto o quantum) para ejecutarse, si el proceso: termina, acaba el cuanto, se bloquea por acceso a E/S. El S.O. hace un cambio de contexto y lo coloca (si aún debe seguir ejecútandose) al final de la cola.

  • El cuanto o quantum suele estar entre los 10ms y 100ms.
  • Como el cambio de contexto es costosa, se debe evitar:
    • Cuanto muy bajo: sobrecarga del sistema.
    • Cuanto muy alto: se comporta como un FCFS/FIFO

Round Robin (Algoritmo por turnos)

Con un quantum de 3:

ProcesosLlegadaTiempo CPU (ms)
P107
P224
P341
P454
ProcesoOperaciónTotal
P115 - 7 - 08
P214 - 4 - 28
P310 - 4 - 15
P416 - 4 - 57
Tiempo de espera promedio: 7

012 345 67
8 91011 121314 15

Round Robin (Algoritmo por turnos)

Algoritmo de Round Robin

Sistemas interactivos

Por prioridades

Cada proceso tiene asociado una prioridad, entonces al momento de quedar la CPU libre, se le asigna el proceso con la prioridad mas alta. Sin embargo, hay que tener cuidado, pues los procesos con baja prioridad pueden no ser ejecutados debido a la llegada de procesos con prioridad superior, esto se resuelve aplicando la técnica de envejecimiento.

Generalmente los números de menor valor son los de mayor prioridad, pero no existe un estándar para declarar esto como una afirmación para todos los S.O.

Por prioridades

Pro.Lleg.Tiempo CPU (ms)Prioridad
P1073
P2241
P3413
P4542
Pro.OperaciónTotal
P115 - 7 - 08
P26 - 4 - 20
P316 - 4 - 111
P410 - 4 - 51
Tiempo de espera promedio: 5

012 345 67
8 91011 121314 15

Sistemas interactivos

Colas multinivel

  • Cada proceso es clasificado en grupos, por ejemplo: de primer o segundo plano,de usuario o del sistema, de usuarios locales o remotos, tamaño de memoria, prioridad, entre otros.
  • La cola de procesos preparados se divide en varias colas distintas, una para agrupación realizada.
  • Cada una de las cola posee su propio algoritmo de planificación para cada proceso dentro de ella.
  • A nivel de colas, se planifican de acuerdo a una prioridad (pero puede existir inanición) o se asigna cierta porción de tiempo a cada uno.

Ejemplo de cola multinivel

-->
Sistema
-->
-->
Interactivos
-->
-->
Por lotes
-->
-->
Usuario
-->

Colas multinivel con retroalimentación

  • Un proceso puede moverse de una cola a otra.
  • Definido por los siguientes parámetros:
    • Número de colas.
    • Algoritmos de planificación para cada cola.
    • Método para determinar cuando mover un proceso a una cola de mayor prioridad.
    • Método usado para ver cuando mover un proceso a una cola de menor prioridad.
    • Método usado para determinar en qué cola ingresará un proceso cuando necesite servicio.

Ejemplo de cola multinivel con retroalimentación

-->
quantum = 8
-->
-->
quatum = 16
-->
-->
FCFS

Sistemas interactivos

Planificación garantizada

  • Garantiza una porción igual de CPU a los usuarios del sistema.
  • Si hay n usuarios, le corresponderá porción de 1/n de CPU a cada uno de ellos.
  • Otra forma es agrupar los usuarios y asignarles a cada uno de esos grupos una porción de CPU en función de cierta prioridad.

Sistemas interactivos

Planificación garantizada

  • Ventajas: equitativa para cada usuario pero penaliza los usuarios que ejecutan muchos procesos. El tiempo compartido del CPU es asignado por el administrador.
  • Desventajas: Es equitativo para el usuario pero no para el CPU o los procesos. Un usuario puede tener mucho CPU asignado y no lo usará nunca. Un usuario puede necesitar mas CPU del asignado y tampoco lo podrá conseguir.

Sistemas interactivos

Tiempo real

  • Son sistemas que deben reaccionar en instantes de tiempo muy corto.
  • Se dividen en:
    • Tiempo real duro: la respuesta debe ser en un tiempo estricto que se debe cumplir.
    • Tiempo real suave: se tolera un poco de retraso en el tiempo de respuesta.
  • Se dividen los programas en varios procesos con comportamiento predecible.

Sistemas interactivos

Tiempo real

  • Se dice que un sistema de tiempo real es planificable si hay m eventos periódicos y el evento i ocurre con el periodo Pi y requiere Ci segundos de tiempo de la CPU para manejar cada evento , tal que:
Formula de tiempo real

Planificación en sistemas multiprocesador

  • La idea es compartir la carga de todos los procesadores, para que todos trabajen a un ritmo similar.
  • Multiprocesamiento asimetrico: un núcleo se suele encargar de realizar la planificación, procesamiento de las E/S y actividades del sistema operativo.
  • Multiprocesamiento simetrico (SMP): cada procesador se autoplanifica: existe una cola de procesos preparados en común o cada uno tiene su propia cola, existe seguridad para no tomar el mismo proceso al mismo tiempo.

Planificación en sistemas multiprocesador

  • Existe un proceso que se encarga de chequear cada cierto tiempo la carga de cada procesador y balancea la carga del mismo.
  • Hoy en día la mayoría de los dispositivos son multiprocesador, por ello vienen con sistemas operativos con este tipo de planificación.
procesador procesador Diseño de un procesador con 8 núcleos.

Planificador

Fuente: Julia Evans

Implementaciones

Windows

Según el libro Windows Internals, Part 1: Covering Windows Server 2008 R2 and Windows 7 (2012), Windows utiliza un sistema de colas multinivel basado en prioridades donde existen varias colas.

Siempre un proceso de la cola de la mayor prioridad se encuentra en ejecución, con la limitación de que ciertos hilos de prioridad alta pueden ser ejecutados en el procesador que se les permita o prefieran ejecutarse, un fenómeno llamado Afinidad del procesador.

macOS

Utiliza una colas de retroalimentación con 4 prioridades: normal, sistema, kernel y tiempo real.

Linux

CFS - Complete Fair Schedule

Desde la versión 2.6.23 utiliza una variante cola justa (utilizada en los paquetes de red). Es un algoritmo similar al Round Robin donde al momento que un proceso regresa a la cola, ésta se coloca en una posición en base al tiempo que duró en el procesador.

¿Preguntas?