Diferencia entre revisiones de «Planificador de procesos»

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
(errata en título del ejemplo)
(Ejemplo: errata)
Línea 18: Línea 18:
 
Para la siguiente configuración de procesos:
 
Para la siguiente configuración de procesos:
  
* Proceso P_a: realiza una llamada al sistema bloqueante cada 2 unidades de tiempo, la operación bloqueante se resuelve tras 2 unidades de tiempo.
+
* Proceso Pa: realiza una llamada al sistema bloqueante cada 2 unidades de tiempo, la operación bloqueante se resuelve tras 2 unidades de tiempo.
* Proceso P_b
+
* Proceso Pb
* Suponga que el proceso P_a tiene mayor prioridad que el proceso P_b, por tanto, el planificador debe de dejar paso al proceso P_a siempre que éste esté en estado preparado.
+
* Suponga que el proceso Pa tiene mayor prioridad que el proceso Pb, por tanto, el planificador debe de dejar paso al proceso Pa siempre que éste esté en estado preparado.
  
 
La evolución de la asignación del procesador que realizaría el planificador es la siguiente:
 
La evolución de la asignación del procesador que realizaría el planificador es la siguiente:
Línea 26: Línea 26:
 
[[Archivo:Procesos.jpg]]
 
[[Archivo:Procesos.jpg]]
  
En este ejercicio, podemos decir que el proceso P_a muestra un comportamiento '''interactivo''', ya que bloquea mucho, mientras que el proceso Pb muestra es un proceso '''por lotes''', ya que emplea el procesador hasta que el planificador se lo retira.
+
En este ejercicio, podemos decir que el proceso Pa muestra un comportamiento '''interactivo''', ya que bloquea mucho, mientras que el proceso Pb muestra es un proceso '''por lotes''', ya que emplea el procesador hasta que el planificador se lo retira.

Revisión del 17:01 14 oct 2011

¿Qué es el planificador de procesos?

El planificador de procesos (process scheduler, en inglés) es la parte del sistema operativo que se encarga seleccionar a qué proceso se asigna el recurso procesador y durante cuánto tiempo.

¿Qué funciones tiene el planificador de procesos?

El planificador de procesos tiene como funciones principales:

  • Llevar el control del estado de cada proceso.
  • Decidir qué proceso usará el procesador y durante cuanto tiempo, para ello empleará un cierto criterio en base al cual tomará las decisiones. Si implementa multiprogramación, deberá emplear un criterio que evite que un proceso monopolice el procesador.
  • Asignar el procesador al proceso, restableciendo el contexto de la ejecución del proceso por donde fuere.
  • Retirar el procesador al proceso, salvando el contexto de la ejecución del proceso, para poder restablecerlo posteriormente una vez que vuelva a ser asignado.

El planificador de procesos es software, por tanto, requiere emplear el recurso procesador para ejecutar su código.

Ejemplo

Para la siguiente configuración de procesos:

  • Proceso Pa: realiza una llamada al sistema bloqueante cada 2 unidades de tiempo, la operación bloqueante se resuelve tras 2 unidades de tiempo.
  • Proceso Pb
  • Suponga que el proceso Pa tiene mayor prioridad que el proceso Pb, por tanto, el planificador debe de dejar paso al proceso Pa siempre que éste esté en estado preparado.

La evolución de la asignación del procesador que realizaría el planificador es la siguiente:

Procesos.jpg

En este ejercicio, podemos decir que el proceso Pa muestra un comportamiento interactivo, ya que bloquea mucho, mientras que el proceso Pb muestra es un proceso por lotes, ya que emplea el procesador hasta que el planificador se lo retira.