---
marp: true
theme: si-ud01
paginate: true
size: 16:9
title: Procesos, hilos y estados
description: Contexto de ejecución, estados y transiciones
---
<!-- _class: lead -->
<div class="presentation-title">Procesos, hilos y estados</div>

## Qué ocurre cuando ejecutas un programa

**Sistemas Informáticos · 1 DAM · UD03**

<!--
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.
-->

---

## 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.

<!--
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.
-->

---

## 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.

<!--
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.
-->

---

## 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.

<!--
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.
-->

---

## Estados de un proceso

![h:390 Estados nuevo, listo, ejecución, bloqueado y terminado con sus causas de transición](img/estados-proceso.svg)

<!--
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.
-->

---

## Ejemplo resuelto: esperar una pulsación

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

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

Otro proceso puede usar CPU durante la espera.

<!--
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.
-->

---

## Ampliación · Bloque de control de proceso

![h:390 El PCB contiene información de control y referencias a memoria y recursos del proceso.](img/bloque-control-proceso.svg)

<!--
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 .
-->

---

## 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.

<!--
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.
-->

---

## Ampliación · Colas y cambio de contexto

![h:390 P1 se bloquea esperando entrada y P2 recibe CPU. Cuando llega el dato, P1 vuelve a preparados.](img/colas-bloqueo-contexto.svg)

<!--
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.
-->

---

## 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é?**

<!--
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.
-->

---

## 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.

<!--
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.
-->
