Los estados de un proceso son los siguientes:
- Nuevo (Crear): en este paso, el proceso está a punto de crearse pero aún no se ha creado, es el programa que está presente en la memoria secundaria el que será recogido por el sistema operativo para crear el proceso.
- Listo – Nuevo -> Listo para funcionar. Después de la creación de un proceso, el proceso entra en estado listo, es decir, el proceso se carga en la memoria principal. El proceso aquí está listo para ejecutarse y está esperando obtener el tiempo de CPU para su ejecución. Los procesos que están listos para ser ejecutados por la CPU se mantienen en una cola de procesos listos.
- Ejecutar: la CPU elige el proceso para su ejecución y cualquiera de los núcleos de CPU disponibles ejecuta las instrucciones dentro del proceso.
- Bloqueado o en espera: cada vez que el proceso solicita acceso a E/S o necesita información del usuario o necesita acceso a una región crítica (cuyo bloqueo ya se adquirió), ingresa al estado bloqueado o en espera. El proceso continúa esperando en la memoria principal y no requiere CPU. Una vez que se completa la operación de E/S, el proceso pasa al estado listo.
- Terminado o completado: el proceso se cancela y la PCB se elimina.
- Preparado para suspensión: se dice que el proceso que inicialmente estaba en estado preparado pero que se sacó de la memoria principal (consulte el tema Memoria virtual) y el programador lo colocó en un almacenamiento externo está en estado preparado para suspensión. El proceso volverá al estado listo cada vez que el proceso se vuelva a llevar a la memoria principal.
- Suspensión en espera o suspensión bloqueada: similar a la suspensión lista, pero utiliza el proceso que estaba realizando la operación de E/S y la falta de memoria principal hizo que se trasladaran a la memoria secundaria. Cuando termine el trabajo, puede pasar a suspender listo.
Procesos enlazados a CPU y E/S: si el proceso es intensivo en términos de operaciones de CPU, se denomina proceso enlazado a CPU. De manera similar, si el proceso es intensivo en términos de operaciones de E/S, entonces se denomina proceso vinculado de E/S. Tipos de programadores:
- Rendimiento a largo plazo: toma una decisión sobre cuántos procesos se deben realizar para permanecer en el estado listo, esto decide el grado de multiprogramación. Una vez que se toma una decisión, dura mucho tiempo, por lo que se denomina programador a largo plazo.
- Corto plazo: tiempo de cambio de contexto: el programador a corto plazo decidirá qué proceso se ejecutará a continuación y luego llamará al despachador. Un despachador es un software que mueve el proceso de listo para ejecutarse y viceversa. En otras palabras, es un cambio de contexto.
- Plazo medio – Tiempo de intercambio – La decisión de suspensión la toma el programador a medio plazo. El programador a mediano plazo se usa para el intercambio que mueve el proceso de la memoria principal a la secundaria y viceversa.
Multiprogramación – Tenemos muchos procesos listos para ejecutar. Hay dos tipos de multiprogramación:
- Preemption: el proceso se elimina a la fuerza de la CPU. La preferencia también se denomina tiempo compartido o multitarea.
- No preferencia: los procesos no se eliminan hasta que completan la ejecución.
Grado de multiprogramación: el número de procesos que pueden residir en el estado listo como máximo decide el grado de multiprogramación, por ejemplo, si el grado de programación = 100, esto significa que 100 procesos pueden residir en el estado listo como máximo.
Publicación traducida automáticamente
Artículo escrito por Aniket_Dusey y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA