Diferencia entre revisiones de «Estados de los procesos»

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
(ejemplo linux)
Línea 14: Línea 14:
 
                 |          |---------------|          |
 
                 |          |---------------|          |
 
                 |                                    |
 
                 |                                    |
                 |            planificador           \/
+
                 |            planificador           V
 
         |--------------|      retira CPU    |---------------|
 
         |--------------|      retira CPU    |---------------|
 
         |              | -------------------> |              |
 
         |              | -------------------> |              |
Línea 24: Línea 24:
  
 
La transición de activo a preparado y viceversa depende de decisiones tomadas por el '''planificador del sistema operativo''' en base a un cierto criterio. La transición de activo a bloqueado, y de bloqueado a preparado puede inducirlas el programador mediante llamadas al sistema.
 
La transición de activo a preparado y viceversa depende de decisiones tomadas por el '''planificador del sistema operativo''' en base a un cierto criterio. La transición de activo a bloqueado, y de bloqueado a preparado puede inducirlas el programador mediante llamadas al sistema.
 +
 +
Hay tres posibles situaciones en las que se ejecutará el planificador del sistema operativo:
 +
# El proceso que se encuentra en el estado activo hace una llamada al sistema que, por su naturaleza, hace que pase al estado bloqueado (como la llamada READ, por ejemplo). Entonces automáticamente se ejecuta el planificador para que decida qué proceso ocupará el estado activo a continuación.
 +
# Si el proceso que se encuentra en el estado activo excede el tiempo asignado a ese proceso, se ejecuta el planificador que asignará el estado activo a otro proceso.
 +
# También se ejecuta el planificador si el proceso que hasta ese momento se encontraba en estado activo termina de ejecutar su código.
  
 
Además, algunos sistemas operativos disponen de un estado terminado en el que los procesos pasan antes de terminar su ejecución.
 
Además, algunos sistemas operativos disponen de un estado terminado en el que los procesos pasan antes de terminar su ejecución.
  
 
En el caso del núcleo de Linux, existen tres tipos de estados bloqueado y dos estados terminado: http://www.ibm.com/developerworks/linux/library/l-task-killable/
 
En el caso del núcleo de Linux, existen tres tipos de estados bloqueado y dos estados terminado: http://www.ibm.com/developerworks/linux/library/l-task-killable/

Revisión del 22:43 23 feb 2011

Planificador de procesos: Diagrama de estados simplicado

Todo proceso en un sistema operativo presenta un estado que indica la situación de la ejecución en que se encuentra. El número de posibles estados varía de un sistema operativo a otro. No obstante, un proceso de cualquier sistema operativo puede estar, como mínimo, en uno de los siguientes tres estados:

  • Activo: el proceso está empleando la CPU, por tanto, está ejecutandose. Pueden haber tantos procesos activos como procesadores haya disponible. Por tanto, si el sistema dispone de un único procesador, únicamente puede haber un proceso activo a la vez.
  • Preparado: el proceso no está ejecutándose pero es candidato a pasar a estado activo. Es el planificador el que, en base a un criterio de planificación, decide qué proceso selecciona de la lista de procesos preparados para pasar a estado activo.
  • Bloqueado: el proceso está pendiente de un evento externo, tales como una operación de lectura/escritura, la espera de finalización de un proceso hijo, una señal o una operación sobre un semáforo.


                          |---------------|
  pendiente               |               |              recibido
   evento      ---------> |   bloqueado   |-----------    evento
   externo     |          |               |          |    externo
               |          |---------------|          |
               |                                     |
               |             planificador            V
       |--------------|       retira CPU     |---------------|
       |              | -------------------> |               |
       |    activo    |                      |   preparado   |
       |              | <------------------- |               |
       |--------------|                      |---------------|
                            planificador
                             asigna CPU

La transición de activo a preparado y viceversa depende de decisiones tomadas por el planificador del sistema operativo en base a un cierto criterio. La transición de activo a bloqueado, y de bloqueado a preparado puede inducirlas el programador mediante llamadas al sistema.

Hay tres posibles situaciones en las que se ejecutará el planificador del sistema operativo:

  1. El proceso que se encuentra en el estado activo hace una llamada al sistema que, por su naturaleza, hace que pase al estado bloqueado (como la llamada READ, por ejemplo). Entonces automáticamente se ejecuta el planificador para que decida qué proceso ocupará el estado activo a continuación.
  2. Si el proceso que se encuentra en el estado activo excede el tiempo asignado a ese proceso, se ejecuta el planificador que asignará el estado activo a otro proceso.
  3. También se ejecuta el planificador si el proceso que hasta ese momento se encontraba en estado activo termina de ejecutar su código.

Además, algunos sistemas operativos disponen de un estado terminado en el que los procesos pasan antes de terminar su ejecución.

En el caso del núcleo de Linux, existen tres tipos de estados bloqueado y dos estados terminado: http://www.ibm.com/developerworks/linux/library/l-task-killable/