📊 Problemas de Concurrencia y Gestión de Recursos en Sistemas Operativos
En los sistemas operativos, uno de los retos principales es gestionar la concurrencia, es decir, la ejecución simultánea de procesos que compiten por recursos compartidos (CPU, memoria, archivos, etc.). Esta entrada resume los problemas más comunes, las soluciones clásicas y otros conceptos clave como la hiperpaginación y la fragmentación de la memoria.
🔷 Problemas de Concurrencia
✅ Condiciones de carrera
Ocurre cuando dos o más procesos acceden a un recurso compartido sin un control adecuado, y el resultado depende del orden de ejecución.
✅ Inanición o aplazamiento indefinido
Un proceso nunca recibe los recursos que necesita porque otros procesos los acaparan continuamente.
✅ Esperas circulares o interbloqueos (Deadlocks)
Situación en la que varios procesos esperan indefinidamente por recursos ocupados por otros procesos, formando un ciclo.
🔷 Condiciones para el Deadlock
Para que ocurra un deadlock deben cumplirse simultáneamente estas cuatro condiciones:
- No apropiación: un recurso no puede ser arrebatado a un proceso que lo tiene.
- Espera circular: cada proceso espera por un recurso ocupado por otro proceso, formando un ciclo.
- Espera indefinida: los procesos esperan indefinidamente.
- Exclusión mutua: el recurso sólo puede ser usado por un proceso a la vez.
🔷 Algoritmos Clásicos para Evitar Condiciones de Carrera
- Algoritmo de Dekker y de Peterson: para dos procesos, garantizan que sólo uno entra a la sección crítica a la vez.
- Técnicas de semáforos, monitores y algoritmos de exclusión mutua para más procesos.
🔷 Técnicas para Evitar el Deadlock
🔹 Prevención: impide que se cumpla al menos una de las cuatro condiciones.
🔹 Detección y recuperación: detecta el deadlock y toma medidas para resolverlo.
🔹 Evitación: usa algoritmos como el del banquero para asegurar que el sistema siempre esté en un estado seguro.
🖇️ Hiperpaginación (Thrashing)
Cuando la memoria virtual está mal administrada y se usa demasiado intercambio entre memoria principal y secundaria, el sistema pasa más tiempo moviendo páginas que ejecutando procesos.
🔷 ¿Cómo evitarla?
- Incrementar la memoria RAM.
- Reducir la carga del sistema.
- Ajustar los algoritmos de reemplazo de páginas, aplicando el principio de localidad.
🔷 Fragmentación de la Memoria
📍 Fragmentación Interna
Cuando los bloques asignados son más grandes que el tamaño real de los datos. Genera espacios desaprovechados dentro de las particiones.
📍 Fragmentación Externa
Cuando quedan huecos pequeños entre bloques, insuficientes para nuevos procesos. Genera espacios externos dispersos a las particiones.
🌟 Resumen Visual
| 🖋️ Concepto | 📋 Descripción |
|---|---|
| Condiciones de carrera | Procesos compiten sin control por recursos compartidos. |
| Inanición | Un proceso nunca accede a los recursos. |
| Deadlock | Ciclo de procesos esperando mutuamente. |
| Prevención del Deadlock | Algoritmos como el de Dekker, Peterson, o del banquero. |
| Hiperpaginación | Saturación por exceso de intercambio de páginas. |
| Fragmentación interna | Espacios desperdiciados dentro de particiones. |
| Fragmentación externa | Espacios dispersos y demasiado pequeños para ser usados eficientemente. |
🎯 Claves para Administradores de Sistemas
✔ Diseñar mecanismos de sincronización adecuados.
✔ Monitorizar el uso de memoria y CPU.
✔ Implementar políticas de planificación justas y eficientes.
✔ Evitar cargas excesivas en el sistema.


Deja un comentario