Tema 3. Gestión de procesos e hilos

Planificación de CPU, estados de proceso, concurrencia y deadlock

🏷️ Procesos🏷️ Hilos🏷️ Scheduling🏷️ Semáforos 📚 I · Fundamentos del SO

⚙️ Procesos — Concepto y estados
Un proceso es un programa en ejecución. Consta de código, datos, pila y PCB.

PCB (Process Control Block)

Contiene: PID, estado, contador de programa, registros, prioridad, información de memoria y E/S.

Estados de un proceso

  • Nuevo: se está creando.
  • Listo (Ready): esperando CPU.
  • En ejecución (Running): usando la CPU.
  • Bloqueado (Waiting): esperando un evento (E/S, semáforo).
  • Terminado (Exit): ha finalizado.
💡 En Linux: ps aux — procesos activos. top / htop — monitor en tiempo real. kill -9 PID — forzar fin.
📅 Planificación de CPU (Scheduling)
El planificador (scheduler) decide qué proceso usa la CPU:

Algoritmos de planificación

  • FCFS (First Come First Served): por orden de llegada. Simple, no apropiativo.
  • SJF (Shortest Job First): el más corto primero. Óptimo en tiempo medio.
  • Round Robin: quantum de tiempo fijo por proceso. Equitativo; usado en sistemas de tiempo compartido.
  • Prioridades: mayor prioridad primero. Riesgo de inanición.
  • Multilevel Queue: colas separadas por tipo de proceso.
nice y renice ajustan la prioridad en Linux (de -20 a +19).
🧵 Hilos (Threads)
Un hilo es la unidad mínima de ejecución dentro de un proceso. Los hilos del mismo proceso comparten código, datos y recursos, pero tienen su propia pila y registros.

Ventajas de los hilos vs. procesos

  • Creación más rápida (no copia espacio de direcciones).
  • Comunicación más sencilla (memoria compartida).
  • Mejor aprovechamiento en sistemas multinúcleo.

Hilos de usuario vs. hilos de kernel

  • Hilos de usuario (ULT): gestionados por biblioteca; el kernel ve un único hilo.
  • Hilos de kernel (KLT): el kernel los conoce; puede planificarlos independientemente.
🔒 Concurrencia y Deadlock

Condición de carrera (Race Condition)

Cuando varios procesos acceden a datos compartidos y el resultado depende del orden de ejecución. Se evita con exclusión mutua.

Mecanismos de sincronización

  • Mutex: cerrojo binario de exclusión mutua.
  • Semáforo: contador que controla el acceso a recursos compartidos (Dijkstra).
  • Monitor: construcción de alto nivel con exclusión mutua implícita.

Deadlock (Interbloqueo)

Se produce cuando un conjunto de procesos se bloquean mutuamente esperando recursos. Condiciones de Coffman:
  • Exclusión mutua
  • Retención y espera
  • No apropiación
  • Espera circular
⚠️ Para evitar deadlock: prevención (negar condiciones), evasión (algoritmo del banquero), detección y recuperación.

🃏 Conceptos clave — Flashcards

Concepto
PCB
Click para ver definición
Process Control Block: estructura de datos con toda la información de un proceso
Click para volver
Concepto
Round Robin
Click para ver definición
Algoritmo de planificación con quantum de tiempo fijo para cada proceso
Click para volver
Concepto
Deadlock
Click para ver definición
Interbloqueo: conjunto de procesos bloqueados esperando recursos mutuamente
Click para volver
Concepto
Semáforo
Click para ver definición
Variable entera para sincronizar procesos; operaciones wait(P) y signal(V)
Click para volver
Concepto
Hilo (Thread)
Click para ver definición
Unidad mínima de ejecución dentro de un proceso; comparte espacio de memoria
Click para volver
Concepto
Race Condition
Click para ver definición
Situación donde el resultado depende del orden de ejecución de hilos concurrentes
Click para volver

📝 Test de autoevaluación

🎯 Quiz — Tema 3