Procesos, hilos y estados

Qué ocurre cuando ejecutas un programa

Sistemas Informáticos · 1 DAM · UD03

Programa y proceso

Programa Proceso
Instrucciones almacenadas Instancia activa con contexto
Un editor en el disco El editor con un documento abierto

El contexto incluye memoria, registros, estado y archivos abiertos.

Hilos de un proceso

Los hilos comparten memoria y recursos del proceso.

Cada hilo conserva su contador de programa, registros y pila.

Ejemplo: un hilo atiende la interfaz y otro realiza un cálculo.

Concurrencia y paralelismo

Un núcleo Varios núcleos
Alternancia entre tareas Posible ejecución simultánea
Concurrencia Paralelismo cuando se asignan recursos

Añadir núcleos no exige inventar nuevos estados.

Estados de un proceso

Estados nuevo, listo, ejecución, bloqueado y terminado con sus causas de transición

Ejemplo resuelto: esperar una pulsación

Un programa lee el teclado y todavía no hay entrada disponible.

Ejecución → Bloqueado → Listo → Ejecución
           espera       llega     selección
           entrada      dato      del planificador

Otro proceso puede usar CPU durante la espera.

Ampliación · Bloque de control de proceso

El PCB contiene información de control y referencias a memoria y recursos del proceso.

Cambio de contexto

  1. Conservar el contexto de quien deja CPU.
  2. Actualizar su estado y cola según la causa.
  3. Seleccionar un proceso listo y recuperar su contexto.

El cambio tiene coste: la CPU dedica trabajo a preparar la alternancia.

Ampliación · Colas y cambio de contexto

P1 se bloquea esperando entrada y P2 recibe CPU. Cuando llega el dato, P1 vuelve a preparados.

Pregunta de comprobación

Un proceso ya recibió el dato que esperaba,
pero otro sigue utilizando CPU.

¿Está bloqueado, listo o en ejecución? ¿Por qué?

Aplicación en los apuntes

3.6: completa estados y explica sus transiciones.

3.7: relaciona programa, procesos e hilos.

Usa los enunciados y productos ya definidos en el bloque 03.

Recupera la aplicación y los servicios de los bloques 01–02. Presenta el objetivo: distinguir programa, proceso e hilo y explicar listo frente a bloqueado. Fuente: 03-procesos-hilos-y-estados.md, apartados 3.1–3.7.

Usa un editor como ejemplo, sin convertir su implementación real en una regla universal. Un mismo programa puede originar varias instancias. Pregunta si cerrar una instancia elimina el programa del disco; se espera que no. Fuente: bloque 03, 3.1.

Introduce la pila como datos de trabajo de la secuencia de ejecución sin profundizar en llamadas de funciones. Explica que memoria compartida necesita coordinación. No atribuir a cada hilo un espacio de direcciones independiente: tener una pila propia no significa disponer de otro espacio de direcciones. Fuente: bloque 03, 3.2 y 3.5.

Aclara que un equipo con varios núcleos también ejecuta tareas concurrentes. La diferencia es progresar en un mismo período frente a ejecutar simultáneamente. No prometer paralelismo por crear dos hilos. Fuente: bloque 03, 3.5.

Delimita primero el modelo: los procesos representados tienen un único hilo. En multihilo, bloquear un hilo no bloquea necesariamente los demás; cada uno puede tener su propio estado. Recorre las flechas con la voz: admisión, selección, fin de turno, espera de E/S, evento completado y finalización. Insiste en que el evento lleva a listo y no directamente a ejecución. Diagrama basado en bloque 03, 3.3–3.4.

Este ejemplo difiere de la lectura de disco evaluable en 3.6. Suponemos una lectura bloqueante sin entrada ya disponible. Llegar la pulsación hace al proceso elegible; no garantiza CPU inmediata. Evita explicar una espera activa como si fuera bloqueo. Fuente: bloque 03, modelo de estados.

Fuente: apuntes 3.3.1. PCB significa Process Control Block. Leer primero PID, estado y contexto guardado. Las flechas indican referencias a memoria y archivos, cuyo contenido está fuera del PCB. En procesos multihilo también se mantiene contexto propio por hilo. Referencia del bloque: https://pages.cs.wisc.edu/~remzi/OSTEP/cpu-intro.pdf .

Recupera el caso de teclado ya presentado: conservar contador/registros del lector, situarlo como bloqueado, seleccionar otro listo y restaurar su contexto. Cuando llegue entrada, el lector pasará a listo; eso no restaura automáticamente su ejecución. Si la causa fuera fin de turno, el saliente volvería a listo. Distingue cambiar de aplicación con el ratón de un cambio de contexto del sistema. El alumnado no necesita ejecutar comandos. Explica que turnos demasiado cortos pueden incrementar sobrecarga. Fuente: bloque 03, 3.4.

Fuente: apuntes 3.4. Leer las filas de arriba abajo. El sistema guarda el contexto de P1 y restaura el de P2. La entrada disponible devuelve a P1 a preparados; todavía falta que el planificador lo seleccione para que ejecute.

Respuesta esperada: listo, porque ya puede ejecutar pero todavía no tiene CPU. Si alguien dice ejecución, vuelve a separar disponibilidad y selección. Esta pregunta es oral, sin nuevo entregable ni identificación evaluable. Fuente: bloque 03, 3.3.

No añadir tarea ni respuesta evaluable al deck. Referir al alumnado al escenario de disco y al esquema de las dos instancias en los apuntes. Comprueba que cada flecha tenga causa y que la diferencia concurrencia/paralelismo se razone. Fuente: bloque 03, actividades 3.6 y 3.7. La planificación de CPU continúa en bloque 04.

Estado de evaluación (19/10/2026): UD03 pendiente de impartir. Dos entregas individuales aprobadas, sin publicar, ejecutar ni calificar: 2.6 (RA7.a/b y RA2.c) y práctica 6.8 (RA2.b), que reúne 3.7, FCFS/RR de 4.8, 5.7 y 6.7. Una nota por práctica con criterios sencillos en los apuntes; fechas pendientes. Los productos de preparación se reutilizan en estas entregas. Trabajar FCFS, SJF, SRTF, RR y prioridades. La nota única no cambia exámenes ni FE.