Los procesos en un sistema operativo generalmente pasan por varios estados:
Nuevo (New): El proceso se crea y se encuentra en este estado inicial. En este punto, el sistema operativo asigna recursos iniciales pero aún no se ha iniciado la ejecución del proceso.
Listo (Ready): El proceso está listo para ejecutarse y espera su turno para obtener tiempo de CPU. Se encuentra en una cola de procesos listos y espera a que el planificador a corto plazo le asigne la CPU.
Ejecución (Running): El proceso está siendo ejecutado en la CPU en este estado. Solo un proceso puede estar en este estado en un momento dado en una CPU monocore. En sistemas multiprocesador o multinúcleo, varios procesos pueden estar en ejecución simultáneamente.
Bloqueado (Blocked o Wait): Si un proceso realiza una operación de entrada/salida (E/S), como leer datos desde un disco o esperar entrada del usuario, pasa a este estado. El proceso no puede continuar su ejecución hasta que se complete la E/S.
Terminado (Terminated): Cuando un proceso ha finalizado su ejecución o ha sido terminado por el sistema operativo, pasa a este estado. Los recursos asignados se liberan y el proceso se elimina del sistema.
Las transiciones entre estos estados suelen seguir un flujo típico:
Un proceso nuevo pasa al estado listo cuando está preparado para la ejecución.
Un proceso listo pasa al estado de ejecución cuando obtiene tiempo de CPU.
Un proceso en ejecución puede pasar al estado bloqueado cuando realiza una operación de E/S.
Un proceso bloqueado vuelve al estado listo una vez que se completa la E/S.
Un proceso en ejecución puede pasar al estado terminado cuando finaliza su tarea.