Estado del proceso - Process state

En un sistema informático multitarea , los procesos pueden ocupar una variedad de estados . Estos estados distintos pueden no ser reconocidos como tales por el kernel del sistema operativo . Sin embargo, son una abstracción útil para la comprensión de procesos.

Los diversos estados del proceso, que se muestran en un diagrama de estado , con flechas que indican posibles transiciones entre estados; como se puede ver, algunos procesos se almacenan en la memoria principal (amarillo) y otros se almacenan en la memoria secundaria (verde).

Estados del proceso primario

Los siguientes estados de proceso típicos son posibles en sistemas informáticos de todo tipo. En la mayoría de estos estados, los procesos se "almacenan" en la memoria principal .

Creado

Cuando se crea un proceso por primera vez, ocupa el estado " creado " o " nuevo ". En este estado, el proceso espera la admisión al estado "listo". La admisión será aprobada o retrasada por un programador de admisión a largo plazo . Por lo general, en la mayoría de los sistemas informáticos de escritorio , esta admisión se aprobará automáticamente. Sin embargo, para los sistemas operativos en tiempo real, esta admisión puede retrasarse. En un sistema en tiempo real, admitir demasiados procesos en el estado "listo" puede conducir a la sobresaturación y la sobrecontención de los recursos del sistema, lo que lleva a la incapacidad de cumplir con los plazos del proceso.

Listo

Un proceso "listo" o "en espera" se ha cargado en la memoria principal y está esperando su ejecución en una CPU (para que el despachador o el programador a corto plazo cambie el contexto a la CPU). Puede haber muchos procesos "listos" en cualquier punto de la ejecución del sistema; por ejemplo, en un sistema de un solo procesador, solo se puede ejecutar un proceso a la vez, y todos los demás procesos "en ejecución simultánea" estarán esperando ejecución.

Se utiliza una cola lista o una cola de ejecución en la programación de la computadora . Las computadoras modernas son capaces de ejecutar muchos programas o procesos diferentes al mismo tiempo. Sin embargo, la CPU solo puede manejar un proceso a la vez. Los procesos que están listos para la CPU se mantienen en una cola para procesos "listos". Otros procesos que están esperando que ocurra un evento, como cargar información desde un disco duro o esperar en una conexión a Internet, no están en la cola de espera.

Corriendo

Un proceso pasa al estado de ejecución cuando se elige para su ejecución. Las instrucciones del proceso son ejecutadas por una de las CPU (o núcleos) del sistema. Hay como máximo un proceso en ejecución por CPU o núcleo. Un proceso puede ejecutarse en cualquiera de los dos modos, a saber, modo kernel o modo usuario .

Modo kernel

  • Los procesos en modo kernel pueden acceder a ambos: kernel y direcciones de usuario.
  • El modo Kernel permite el acceso sin restricciones al hardware, incluida la ejecución de instrucciones privilegiadas .
  • Varias instrucciones (como instrucciones de E / S e instrucciones de detención) tienen privilegios y solo pueden ejecutarse en modo kernel.
  • Una llamada al sistema desde un programa de usuario conduce a un cambio al modo kernel.

Modo de usuario

  • Los procesos en modo de usuario pueden acceder a sus propias instrucciones y datos, pero no a las instrucciones y datos del kernel (ni a los de otros procesos).
  • Cuando el sistema informático se ejecuta en nombre de una aplicación de usuario, el sistema está en modo de usuario. Sin embargo, cuando una aplicación de usuario solicita un servicio del sistema operativo (a través de una llamada al sistema ), el sistema debe pasar del modo de usuario al modo de kernel para cumplir con la solicitud.
  • El modo de usuario evita varios fallos catastróficos:
    • Hay un espacio de direcciones virtuales aislado para cada proceso en modo de usuario.
    • El modo de usuario asegura la ejecución aislada de cada proceso para que no afecte a otros procesos como tales.
    • No se permite el acceso directo a ningún dispositivo de hardware.

Obstruido

Un proceso pasa a un estado bloqueado cuando no puede continuar sin que ocurra un cambio externo en el estado o un evento. Por ejemplo, un proceso puede bloquear una llamada a un dispositivo de E / S como una impresora, si la impresora no está disponible. Los procesos también se bloquean comúnmente cuando requieren la intervención del usuario o requieren acceso a una sección crítica que debe ejecutarse de forma atómica. Estas secciones críticas están protegidas mediante un objeto de sincronización, como un semáforo o mutex.

Terminado

Un proceso puede ser terminado , ya sea desde el estado "en ejecución" al completar su ejecución o al ser eliminado explícitamente. En cualquiera de estos casos, el proceso pasa al estado "terminado". El programa subyacente ya no se está ejecutando, pero el proceso permanece en la tabla de procesos como un proceso zombi hasta que su proceso padre llama a la wait llamada al sistema para leer su estado de salida , momento en el que el proceso se elimina de la tabla de procesos y finalmente finaliza el proceso. toda la vida. Si el padre no llama wait , esto continúa consumiendo la entrada de la tabla de proceso (concretamente el identificador de proceso o PID) y provoca una pérdida de recursos .

Estados de proceso adicionales

Hay dos estados adicionales disponibles para procesos en sistemas que admiten memoria virtual . En ambos estados, los procesos se "almacenan" en la memoria secundaria (normalmente un disco duro ).

Cambiado y esperando

(También llamado suspendido y en espera ). En los sistemas que admiten la memoria virtual, un proceso puede intercambiarse, es decir, el programador puede quitarlo de la memoria principal y colocarlo en un almacenamiento externo. A partir de aquí, el proceso se puede volver a cambiar al estado de espera.

Cambiado y bloqueado

(También llamado suspendido y bloqueado ). Los procesos que están bloqueados también pueden intercambiarse. En este caso, el proceso se intercambia y se bloquea, y se puede intercambiar nuevamente bajo las mismas circunstancias que un proceso intercambiado y en espera (aunque en este caso, el proceso pasará al estado bloqueado y aún puede estar esperando para que un recurso esté disponible).

Ver también

Referencias

  • Stallings, William (2005). Sistemas operativos: principios internos y de diseño (5ª ed.). Prentice Hall. ISBN   0-13-127837-1 .
En particular, el capítulo 3, sección 3.2, "estados del proceso", incluida la figura 3.9 "transición del estado del proceso con estados de suspensión"