stringtranslate.com

Estado del proceso

En un sistema informático multitarea , los procesos pueden ocupar una variedad de estados . Es posible que el núcleo del sistema operativo no reconozca estos distintos estados como tales . Sin embargo, son una abstracción útil para la comprensión de los procesos.

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

Estados del proceso primario

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

Creado

Cuando un proceso se crea 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 . Normalmente, 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 provocar una sobresaturación y una contención excesiva de los recursos del sistema, lo que provocará la incapacidad de cumplir con los plazos de los procesos.

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, sólo se puede ejecutar un proceso a la vez y todos los demás procesos "que se ejecutan simultáneamente" estarán esperando. ejecución.

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

Correr

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, es decir, modo kernel o modo usuario . [1] [2]

Modo kernel

Modo de usuario

Obstruido

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

Finalizado

Un proceso puede terminarse , ya sea desde el estado "en ejecución", completando su ejecución o matándolo explícitamente. En cualquiera de estos casos, el proceso pasa al estado "terminado". El programa subyacente ya no se ejecuta, pero el proceso permanece en la tabla de procesos como un proceso zombie 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 la ejecución del proceso. vida. Si el padre no llama wait, esto continúa consumiendo la entrada de la tabla de procesos (concretamente el identificador de proceso o PID) y provoca una fuga 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 ).

Intercambiado y esperando

(También llamado suspendido y en espera ). En sistemas que admiten memoria virtual, el programador puede intercambiar un proceso, es decir, eliminarlo de la memoria principal y colocarlo en un almacenamiento externo. Desde aquí, el proceso puede volver al estado de espera.

Intercambiado 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 volver a iniciar en las mismas circunstancias que un proceso intercambiado y en espera (aunque en este caso, el proceso pasará al estado bloqueado y es posible que aún esté esperando). para que un recurso esté disponible).

Ver también

Referencias

  1. ^ Abraham Silberschatz; Peter Baer Galvin; Greg Gagne (29 de julio de 2008). Conceptos del sistema operativo. ISBN 978-0470128725.
  2. ^ Maurice J. Bach (1986). El diseño del sistema operativo UNIX . Prentice-Hall, Inc. Upper Saddle River, Nueva Jersey, EE. UU. ©1986. ISBN 0-13-201799-7.
En particular, el capítulo 3, sección 3.2, "estados de proceso", incluida la figura 3.9 "transición de estado de proceso con estados de suspensión"