Estado del proceso

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

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

Estados de 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 o de 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, en los sistemas operativos de tiempo real , esta admisión puede retrasarse. En un sistema de 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 conduce a una incapacidad para cumplir con los plazos de los procesos.

Listo

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

En la programación informática se utiliza una cola de procesos listos o una cola de ejecución . Las computadoras modernas pueden 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 una conexión a Internet, no están en la cola de procesos listos.

Correr

Un proceso pasa al estado de ejecución cuando se lo 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

  • Los procesos en modo kernel pueden acceder tanto a direcciones de kernel como 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) son privilegiadas y solo se pueden ejecutar en modo kernel.
  • Una llamada al sistema desde un programa de usuario provoca 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 núcleo (o 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 núcleo para cumplir con la solicitud.
  • El modo de usuario evita varios fallos catastróficos:
    • Hay un espacio de dirección virtual 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 tal.
    • 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 se produzca un cambio de estado externo o un evento. Por ejemplo, un proceso puede bloquearse ante 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 intervención del usuario o cuando necesitan acceder a una sección crítica que debe ejecutarse de forma atómica. Dichas 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" 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 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 del sistema para leer su estado de salida , momento en el que el proceso se elimina de la tabla de procesos, terminando finalmente la vida útil del proceso. 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 provoca una pérdida de recursos .

Estados de proceso adicionales

Hay dos estados adicionales disponibles para los 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 cambiar un proceso, es decir, quitarlo 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 ser intercambiados. En este caso, el proceso es intercambiado y bloqueado, y puede ser intercambiado nuevamente 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 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 de diseño e internos (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”.
Obtenido de "https://es.wikipedia.org/w/index.php?title=Estado_del_proceso&oldid=1194039582"