Articulo de referencia

Estado del proceso

En un sistema informático multitarea , los procesos pueden ocupar diversos estados . Es posible que el núcleo del sistema operativo no reconozca estos estados como tales . Sin e...

En un sistema informático multitarea , los procesos pueden ocupar diversos estados . Es posible que el núcleo del sistema operativo no reconozca estos estados como tales . Sin embargo, constituyen una abstracción útil para comprender los procesos.

Los distintos estados del proceso, mostrados en un diagrama de estados , con flechas que indican las posibles transiciones entre estados, como se puede observar, se almacenan en la memoria principal (amarillo) y en la memoria secundaria (verde).

Estados del proceso primario

Los siguientes estados típicos de proceso 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, este se encuentra en el estado " creado " o " nuevo ". En este estado, el proceso espera ser admitido al estado "listo". La admisión será aprobada o retrasada por un planificador de admisión a largo plazo . Normalmente, en la mayoría de los sistemas informáticos de escritorio , esta admisión se aprueba automáticamente. Sin embargo, en los sistemas operativos en tiempo real , esta admisión puede retrasarse. En un sistema en tiempo real, admitir demasiados procesos al estado "listo" puede provocar una sobresaturación y una contención excesiva de los recursos del sistema, lo que impide cumplir con los plazos de los procesos.

Listo

Un proceso "listo" o "en espera" se ha cargado en la memoria principal y está a la espera de ser ejecutado en la CPU (para que el despachador o planificador a corto plazo lo transfiera a la CPU). Puede haber muchos procesos "listos" en cualquier momento de la ejecución del sistema; por ejemplo, en un sistema de un solo procesador, solo un proceso puede estar ejecutándose a la vez, y todos los demás procesos que se ejecutan simultáneamente estarán esperando su ejecución.

En la planificación de procesos informáticos se utiliza una cola de procesos listos o en ejecución . Los ordenadores modernos pueden ejecutar varios programas o procesos simultáneamente. Sin embargo, la CPU solo puede procesar un proceso a la vez. Los procesos que están listos para ser procesados ​​por la CPU se mantienen en una cola de procesos "listos". Otros procesos que esperan a que ocurra un evento, como la carga de información desde un disco duro o la espera de una conexión a internet, no se encuentran en la cola de procesos listos.

Correr

Un proceso pasa al estado de ejecución cuando se selecciona 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: modo kernel o modo usuario . [ 1 ] [ 2 ]

Modo kernel

  • Los procesos en modo kernel pueden acceder tanto a las direcciones del kernel como a las de usuario.
  • El modo kernel permite el acceso sin restricciones al hardware, incluida la ejecución de instrucciones privilegiadas .
  • Diversas instrucciones (como las instrucciones de E/S y las instrucciones de detención) son privilegiadas y solo pueden ejecutarse en modo kernel.
  • Una llamada al sistema desde un programa de usuario conlleva un cambio al modo kernel.

Modo de usuario

  • Los procesos en modo 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, se encuentra en modo usuario. Sin embargo, cuando una aplicación de usuario solicita un servicio al sistema operativo (mediante una llamada al sistema ), este debe pasar del modo usuario al modo kernel para atender la solicitud.
  • El modo de usuario evita varios fallos catastróficos (por ejemplo, un fallo del sistema ) mediante:
    • Proporcionar un espacio de direcciones virtuales aislado para cada proceso en modo de usuario,
    • Garantizar la ejecución aislada de los procesos para que no se afecten entre sí.
    • Impedir el acceso directo a cualquier dispositivo de hardware.

Obstruido

Un proceso pasa a un estado bloqueado cuando no puede continuar sin que se produzca un cambio de estado o un evento externo. Por ejemplo, un proceso puede bloquearse al intentar acceder a un dispositivo de entrada/salida, como una impresora, si esta no está disponible. Los procesos también suelen bloquearse cuando requieren la entrada del usuario o el 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 ser terminado , ya sea desde el estado "en ejecución" al completar su ejecución o al ser terminado 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 zombie hasta que su proceso padre llama a la waitllamada al sistema para leer su estado de salida , momento en el que el proceso se elimina de la tabla de procesos, finalizando así su ciclo de vida. Si el padre no llama a wait, esto continúa consumiendo la entrada de la tabla de procesos (concretamente el identificador de proceso o PID) y causa una fuga de recursos .

Estados de proceso adicionales

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

Intercambiado y en espera

(También llamado estado suspendido y en espera ). En sistemas que admiten memoria virtual, un proceso puede ser intercambiado, es decir, retirado de la memoria principal y colocado en almacenamiento externo por el planificador. Desde allí, el proceso puede volver al estado de espera.

Intercambiado y bloqueado

(También llamados suspendidos y bloqueados ). Los procesos bloqueados también pueden ser intercambiados. En este caso, el proceso es intercambiado y bloqueado, y puede volver a ser intercambiado en las mismas circunstancias que un proceso intercambiado y en espera (aunque en este caso, el proceso pasará al estado bloqueado y puede seguir esperando a que un recurso esté disponible).

Véase también

Referencias

  1. Abraham Silberschatz; Peter Baer Galvin; Greg Gagne (29 de julio de 2008). Conceptos de sistemas operativos . ISBN 978-0470128725.
  2. Maurice J. Bach (1986). El diseño del sistema operativo UNIX . Prentice-Hall, Inc. Upper Saddle River, NJ, EE. UU. ©1986. ISBN 0-13-201799-7.
  • 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", incluyendo la figura 3.9 "transición de estado del proceso con estados de suspensión".