Introducción
La interacción de procesos es la mejor forma de hacer un uso eficiente del procesador, cumpliendo los fundamentos de la multiprogramación. Sin embargo, también es la causa de los mayores problemas de bloqueo e interbloqueos del sistema debido a la necesaria relación de los procesos que interactúan con los recursos del sistema.
En esta unidad se abordarán los conceptos de exclusión mutua y sección crítica, para establecer criterios de solución y prevención de la concurrencia, haciendo uso de técnicas en software y hardware.
También se abordarán algunas estrategias para la prevención, detección y predicción del interbloqueo, dejando como apartado final el análisis del problema típico de interbloqueo denominado “La cena de filósofos”.
Propósitos de aprendizaje
Propósito Global
Identificar y reconocer dificultades en la interacción de procesos, para establecer formas diferentes de evitar y solucionar problemas de bloqueos e interbloqueos
Propósitos Específicos
- Identificar las causas más relevantes del problema de exclusión mutua.
- Reconocer algunas técnicas para evitar y solucionar problemas de exclusión mutua.
- Identificar situaciones de concurrencia de procesos y las estrategias para evitar y solucionar problemas relacionados.
- Identificar y argumentar sobre el concepto de sección crítica.
Conceptos de concurrencia
La interacción de procesos, derivada del concepto de multiprogramación, establece la posibilidad de que múltiples procesos se encuentren compartiendo no solo el espacio de direcciones sino también algunos de los recursos y servicios, utilizando herramientas de comunicación, señalización y sincronización de procesos.
En sistemas operativos multitarea es posible que existan varios procesos activos ejecutados de forma concurrente, los cuales se pueden dar a través de tres modelos: modelo de multiprogramación, multiprocesador y multicomputador.
De igual forma, la interacción de procesos de acuerdo con el nivel de conocimiento que un proceso puede tener sobre la existencia de los otros, se pueden clasificar en: competencia, comunicación y compartición. Estos elementos establecen condiciones que permiten la asignación de los recursos y la interacción efectiva de procesos.
Cuando dos procesos compiten por un único recurso, se establece un problema de exclusión mutua, el cual puede ser abordado a través de la técnica de sección crítica.
Requisitos para la exclusión mutua
La exclusión mutua se presenta cuando dos o más procesos compiten por la sección crítica de un recurso, existen algunos requisitos que permiten que la exclusión mutua sea una solución al problema de competencia por el recurso.
Cada proceso que entra en la sección crítica de un recurso tiene un tiempo determinado y finito para hacer uso del mismo.
Existen técnicas para solucionar los problemas de exclusión mutua. Si se determina que los mismos procesos deben coordinarse unos con otros sin ayuda del sistema operativo o del lenguaje de programación se establecen las llamadas, soluciones por software, las cuales son susceptibles a errores y a elevar la carga del sistema.
De otro lado se encuentran los métodos que hacen uso de las instrucciones de máquina, es decir del lenguaje ensamblador y finalmente se encuentran métodos que recurren al sistema operativo, denominados soluciones por hardware.
Semáforos, monitores y paso de mensajes
Dado que las soluciones por software y hardware al problema de concurrencia de procesos son insuficientes, es necesario incorporar otro tipo de soluciones. Entre ellas se encuentran:
- Semáforos: utiliza un sistema de señales que permiten cumplir la exclusión mutua de manera potente y flexible.
- Monitores: facilitan a través de herramientas de sincronización la exclusión mutua.
- Paso de mensajes: proporcionan la sincronización y comunicación de los procesos de manera simlutánea.
Interbloqueo e Inanición
Dos de los problemas más importantes en la programación de procesos concurrentes son el interbloqueo y la inanición. El interbloqueo, llamado también bloqueo mutuo o deadlock, se define como el bloqueo permanente de procesos que requieren los servicios de determinados recursos.
Es decir, cuando todos los procesos aseguran algunos recursos pero quedan a la espera de otros, los cuales han sido asignados a procesos diferentes. Estos a su vez, necesitan los recursos asignados a los primeros procesos. De esta forma, cada proceso asegura algún recurso pero queda en espera de otro.
El problema de inanición, por su parte, suele tener las mismas consecuencias del interbloqueo, pero las causas son diferentes dado que la inanición se define como el bloqueo indefinido debido a la negativa permanente para la utilización de un recurso compartido.
Los problemas de interbloqueo e inanición suelen tener consecuencias diversas dependiendo del tipo de recurso utilizado, sean consumibles o reusables.
Prevención, detección y predicción del interbloqueo
Las soluciones del interbloqueo se presentan a través de tres estrategias: prevención, detección y predicción del mismo.
- Prevención: se logra a partir del diseño del sistema operativo impidiendo que exclusión mutua, retención y espera y no apropiación puedan darse.
- Detección: aquí el interbloqueo puede presentarse, sin embargo el sistema operativo ejecuta periódicamente un algoritmo que crea estrategias de recuperación ante la aparición del círculo vicioso de espera. Las estrategias de recuperación pueden ser abandono, retroceso, abandono controlado o apropiación total de recursos.
- Predicción: se realiza mediante procesos dinámicos que establecen si la petición de un recurso podrá conducir a interbloqueo. Si bien es cierto la predicción es la estrategia más eficiente ante el problema de interbloqueo tiene restricciones en el número de procesos y recursos a gestionar, por la sobrecarga que puede producir en el sistema.
Resumen
Cuando dos o más procesos compiten por la asignación de uno o más recursos, se determinan problemas de bloqueos e interbloqueos, los cuales deben ser evitados ya que se convierten en los principales causantes de la ineficiencia del procesamiento por parte del procesador.
La concurrencia de procesos es una técnica que permite la optimización óptima del procesador. Para ello, es necesario hacer cumplir dos conceptos importantes: sección crítica y exclusión mutua.
Finalmente, si existen varios procesos compitiendo por igual número de recursos se le denominará interbloqueo.
Caso de aprendizaje: la cena de los filósofos
![]() |
En el siguiente caso de aprendizaje se encontrará diferentes situaciones de interbloqueo e inanición. Por favor, al final conteste el cuestionario. |
Bibliografía ()
- Carretero Pérez, J., De Miguel Anasagasti, P., García Carballeira, F., & Pérez Costoya, F. (2001). Sistemas Operativos. Una visión aplicada. Madrid: McGraw-Hill
- Deitel , H. M. (1993). Sistemas Operativos (2nd ed.). Wilmington, Delaware: Addison-Wesley Iberoamericana SA.
- Deitel, H. M. (2004). Operating Systems (3rd ed.). Wilmington, Delawere: Prentice Hall.
- Ruiz Múzquiz, P. (2004). Sistemas Operativos (Vol. 5.0). Creative Commons Attribution-Non comercial-Share A like License.
- Silverschats, A., Galvin, P. B., & Gagne, G. (2005). Operating System oncepts (7th ed.). Danvers: John Wiley & Sons Inc.
- Stallings, W. (1997). Sistemas Operativos (2nd ed.). Madrid: Prentice Hall.
- Tanenbaum, A., & Woodhull, A. S. (2003). Sistemas Operativos: Diseño e implementación (2nd ed.). Mexico: Pearson educación S.A.









