Saltar al contenido principal
Processes, IPC (including semaphores), scheduling, memory, I/O, file systems, virtualization, concurrency models, performance profiling, and the hardware-software interface.

Operating Systems

Processes, IPC (including semaphores), scheduling, memory, I/O, file systems, virtualization, concurrency models, performance profiling, and the hardware-software interface.

Banker's Algorithm Visualizer

Safe Sequence (5 processes)

Paso 0 / 0
Speed 100ms
Available —
Work —
Finished 0 / 0
Status Ready
Active
Finished
Waiting / Unsafe
Safe Sequence
—
Request Evaluation
No request in this scenario.
Step Explanation

Select a scenario and press Play to run the safety check.

—
Pseudocode
 

Deadlock

Intermediate (3/5) ~1 hora Cuatro condiciones de Coffman Mutual exclusion, hold and wait No preemption, circular wait Prevención, avoidance, detection Prereqs: Process Management, Memory Management
Quick Reference

bankerSafe

No registry entry found for algorithm id "bankerSafe". If this is a curriculum-only studio, the complexity and quick-reference panel is intentionally omitted.

Deadlock es un bloqueo permanente donde un conjunto de procesos están esperando recursos que están retenidos por otros procesos del mismo conjunto, y ninguno puede progresar.

Cuatro Condiciones de Coffman

Para que ocurra deadlock, las cuatro deben cumplirse simultáneamente:

  1. Mutual Exclusion: el recurso no puede ser compartido.
  2. Hold and Wait: proceso retiene recursos mientras espera otros.
  3. No Preemption: recursos no pueden ser forzadamente quitados.
  4. Circular Wait: existe un ciclo de espera entre procesos.

Si rompes cualquier condición, previenes deadlock.

Ejemplo Clásico

Dos procesos, dos recursos:

  • Proceso A tiene recurso X, espera Y.
  • Proceso B tiene recurso Y, espera X.

Circular wait: A → Y (held por B) → X (held por A). Deadlock.

Estrategias

Prevención

Rompe una de las cuatro condiciones:

  • Eliminar mutual exclusion (solo para recursos shareables).
  • Eliminar hold and wait (pedir todos los recursos upfront).
  • Permitir preemption (forzar release de recursos).
  • Imponer orden de recursos (evitar ciclos).

Avoidance

Deja que los procesos pidan recursos dinámicamente, pero verifica que el estado sea safe antes de conceder.

Safe state: existe un orden de ejecución donde todos los procesos terminan.

Banker’s Algorithm

Algoritmo de avoidance para sistemas con recursos de múltiples tipos:

  1. Proceso solicita recursos.
  2. Si request ≤ need y request ≤ available, simula la concesión.
  3. Verifica si el estado resultante es safe.
  4. Si safe: concede. Si no: proceso espera.

Detection y Recovery

Deja que el deadlock ocurra, luego lo detecta y recupera:

  • Detection: construye Wait-For Graph, busca ciclos (O(n²)).
  • Recovery: aborta procesos o fuerza preemption de recursos.

Comparación

EstrategiaCuándoComplejidadUso
PrevenciónSiempre previeneBajaSistemas simples
AvoidancePreviene si safeAlta (Banker)Sistemas con recursos conocidos
DetectionDetecta luegoO(n²) por cicloSistemas grandes

Aplicaciones

  • Bases de datos — transacciones y locking
  • Sistemas distribuidos — deadlock en mensajes
  • Enseñanza — introduce modelado de recursos

Trayectoria de Práctica

  1. Investiga Banker’s algorithm: traza el ejemplo de 5 procesos y 3 recursos.
  2. Investiga Wait-For Graph: detecta deadlock en O(n²).
  3. ¿Por qué las cuatro condiciones de Coffman son necesarias? Elimina una, resuelve deadlock.
  4. Investiga deadlock en bases de datos: two-phase locking.
  5. Investiga deadlock en sistemas distribuidos: ¿cómo se detecta sin estado global?