Saltar a contenido

1.2 Estados y transiciones

Leer el resumen

Un proceso pasa por varios estados a lo largo de su vida. Nace en el estado de inicio, donde el sistema prepara su ficha y le da memoria, pero todavía no compite por la CPU. Cuando el sistema lo admite, pasa a preparado. Está listo para ejecutarse y solo espera su turno. Cuando el planificador le da la CPU, pasa a en ejecución. Con una sola CPU, solo un proceso puede estar aquí a la vez. Si necesita algo que aún no tiene, por ejemplo un dato de un disco, pasa a bloqueado. Y cuando ese dato llega, no vuelve directo a ejecutarse, vuelve a preparado y espera otra vez su turno. Si el planificador decide quitarle la CPU para dársela a otro, el proceso vuelve de ejecución a preparado, aunque no haya terminado. Y al acabar, pasa a terminado, y el sistema libera sus recursos. En clase se usan los tres estados principales: ejecución, preparado y bloqueado, con sus cuatro transiciones. Si los entiendes, entiendes lo que necesitan los algoritmos de la unidad dos.

El estado de un proceso indica en qué situación está. Un proceso no está siempre trabajando: a veces espera su turno, a veces espera algo que todavía no ha llegado, y al final de su vida desaparece del sistema.

Los cinco estados

Estado Qué significa
Inicio (nuevo) El proceso se acaba de crear: el sistema prepara su BCP y le asigna memoria, pero todavía no compite por la CPU
Preparado (listo, en espera o activo) Podría ejecutarse, pero está esperando su turno para usar la CPU
En ejecución El procesador está ejecutando sus instrucciones y tiene concedido tiempo de CPU en ese instante
Bloqueado Está retenido porque le falta algo: datos que no han llegado, un fichero que usa otro proceso, un dispositivo ocupado (por ejemplo, una impresora sin papel)
Terminado El proceso ha acabado (o se ha detenido): el sistema libera sus recursos y deja solo su código de salida

Con una sola CPU, solo un proceso puede estar en ejecución a la vez; los demás están preparados o bloqueados.

Y el tema de clase

En el tema de clase se explican los tres estados principales (ejecución, preparado y bloqueado) y sus cuatro transiciones, que son las que importan para los algoritmos de la unidad 2. El modelo completo añade el inicio y el final de la vida del proceso.

Las seis transiciones

INICIO PREPARADO EN EJECUCIÓN BLOQUEADO TERMINADO 1 2 3 4 5 6

N.º De → a Cuándo ocurre En el tema de clase
1 Inicio → Preparado El sistema admite el proceso: ya está creado y cargado en memoria, y pasa a la cola de preparados
2 Preparado → En ejecución Le toca el turno: el planificador le asigna la CPU Transición 3
3 En ejecución → Preparado El planificador decide que ya ha tenido suficiente tiempo de CPU (se acaba el quantum) o que otro proceso más prioritario debe usarla Transición 2
4 En ejecución → Bloqueado El proceso no puede continuar porque espera datos o un recurso (por ejemplo, una lectura de disco) Transición 1
5 Bloqueado → Preparado Ocurre el evento que estaba esperando (llegan los datos, se libera el recurso) Transición 4
6 En ejecución → Terminado El proceso acaba su ejecución (o se le detiene)

Lo que NO puede pasar

  • Un proceso bloqueado no pasa directamente a ejecución: cuando se desbloquea, vuelve a la cola de preparados y espera su turno como los demás.
  • Solo se bloquea quien se ejecuta: de preparado no se pasa a bloqueado.
  • De terminado no se vuelve a ningún estado: un proceso terminado no se reactiva.
  • Para llegar a terminado hay que estar en ejecución.

Procesos limitados por CPU y por entrada/salida

Según en qué pasen la mayor parte de su vida, los procesos se clasifican en dos tipos:

  • Limitados por CPU (CPU-bound): pasan casi todo el tiempo calculando. Ejemplos: comprimir un vídeo, calcular números primos, entrenar un modelo. Van más rápido con un procesador más rápido o repartiendo el trabajo entre varios núcleos.
  • Limitados por entrada/salida (I/O-bound): pasan casi todo el tiempo bloqueados, esperando al disco, a la red o al usuario. Ejemplos: un editor de texto, un navegador descargando una página, un servidor esperando peticiones. Van más rápido con un disco o una red más rápidos.

Una máquina recreativa con un solo núcleo

Un videojuego antiguo repite tres tareas: leer el mando (E/S), calcular el mundo del juego (CPU) y dibujar la pantalla (E/S). Mientras espera a que el jugador pulse un botón, la tarea de leer el mando está bloqueada y el núcleo se dedica a calcular. Mezclar tareas de CPU y de E/S aprovecha mucho mejor el procesador: es la idea de la concurrencia.

Qué recordar

  • Cinco estados: inicio, preparado, en ejecución, bloqueado y terminado; seis transiciones.
  • Las transiciones 4 y 5 dependen de un evento externo (esperar y recibir); las transiciones 2 y 3 las decide el planificador.
  • Los algoritmos de la unidad 2 deciden qué proceso preparado pasa a ejecución (transición 2) y, si son apropiativos, cuándo se le quita la CPU (transición 3).