1. ESCUELA COLOMBIANA DE CARRERAS INDUSTRIALES
SISTEMAS OPERATIVOS
DECANATURA DE INGENIERÍA
Ciencias de la Computación DOCENTE
e Ingeniería de Sistemas OSCAR W. MENDOZA M.
TALLER INTERBLOQUEO
1. Defina interbloqueo:
El interbloqueo se puede definir como el bloqueo permanente de un conjunto de procesos que compiten por los
recursos del sistema o bien se comunican unos con otros. A diferencia de otros problemas de la gestión
concurrente de procesos, no existe una solución eficiente para el caso general.
2. Describa las cuatro condiciones para el interbloqueo:
• Exclusión mutua: Cada recurso está asignado a un único proceso o está disponible.
• Retención y espera: Los procesos que tienen, en un momento dado, recursos asignados con
anterioridad, pueden solicitar nuevos recursos.
• No apropiación: Los recursos otorgados con anterioridad no pueden ser forzados a dejar un
proceso. El proceso que los posee debe liberarlos en forma explícita.
• Espera circular: Debe existir una cadena circular de dos o más procesos, cada uno de los cuales
espera un recurso poseído por el siguiente miembro de la cadena.
3. Determine una estrategia para la prevención de cada causa del interbloqueo:
• Los métodos indirectos que consisten en impedir la aparición de alguna de las tres condiciones
necesarias para que se dé el interbloqueo.
• Los métodos directos que consisten en evitar la aparición del círculo vicioso de espera.
4. Determine las estrategias para la detección del interbloqueo:
Las estrategias de prevención de interbloqueo son muy conservadoras; resuelven el problema
limitando el acceso a recursos e imponiendo restricciones sobre los procesos. En cambio, las
estrategias de detección de interbloqueo, no limitan el acceso a recursos ni restringen las acciones
del proceso. Con la detección del interbloqueo, se concederán los recursos que los procesos necesiten
siempre que sea posible. Periódicamente, el S. O. Ejecuta un algoritmo que permite detectar la
condición de círculo vicioso de espera.
La detección del interbloqueo es el proceso de determinar si realmente existe un interbloqueo e
identificar los procesos y recursos implicados en él. Una posibilidad detectar un interbloqueo es
monitorear cada cierto tiempo el estado de los recursos. Cada vez que se solicita o se devuelve un
recurso, se actualiza el estado de los recursos y se hace una verificación para observar si existe
algún ciclo.
Este método está basado en suponer que un interbloqueo no se presente y que los recursos del sistema
que han sido asignados, se liberarán en el momento que otro proceso lo requiera.
Algoritmo de detección del interbloqueo: Una comprobación para interbloqueo puede hacerse con
igual o menor frecuencia que cada solicitud de recursos, dependiendo de qué tan probable es que
ocurra un interbloqueo. Comprobar cada solicitud de recursos tiene dos ventajas: Conduce a la
detección temprana y el algoritmo es simple, de manera relativa porque se basa en cambios
crecientes al estado del sistema. Además, las comprobaciones frecuentes consumen un tiempo
considerable de procesador.
5. Determine en detalle la estrategia integrada del interbloqueo de Silberschatz y
Galván:
Esta estrategia consiste en usar distintas estrategias y una estrategia es agrupar los recursos en
clases y cada clase cumple una función específica; esta clase en el orden que se describe abajo así es
que se ejecuta
2. ESCUELA COLOMBIANA DE CARRERAS INDUSTRIALES
SISTEMAS OPERATIVOS
DECANATURA DE INGENIERÍA
Ciencias de la Computación DOCENTE
e Ingeniería de Sistemas OSCAR W. MENDOZA M.
TALLER INTERBLOQUEO
• Espacio intercambiable: Bloques de memoria en almacenamiento secundario para el intercambio
de procesos.
• Recursos de procesos: dispositivos asignables, como unidades de cintas y archivos.
• Memoria principal: asignable a los procesos en páginas o segmentos.
• Recursos internos: como canales de E/S.
6. Describa el problema de la cena de los filósofos y sus diferentes soluciones:
El problema consiste en que hay un plato de espagueti en la mesa y hay 5 filósofos, 5 platos y 5
tenedores; entonces si todos los filósofos están sentados y listos para comer entonces cada filosofo
deberá utilizar los dos tenedores de la izquierda y luego el de la derecha, cuando termine deja los dos
tenedores en la mesa , pero de todos modos si todos se sientas y se rigen por la primera señal de tomar
los tenedores de la izquierda y luego tomar el de la derecha, generara interbloqueo ya que para
ejecutar la segunda señal de tomar el tenedor de la derecha, estos estarán siendo utilizados,
entonces el filósofo tendrá que esperar hasta que sea desocupado. Otra solución es utilizar 5
tenedores más para que cada filósofo pueda comer sin ningún problema. Otra solución es que pasaran
por lo menos 4 filósofos asegurando que por lo menos utilizando semáforos un filósofo tome los dos
tenedores y pueda comer.
7. Los medios para la comunicación entre procesos en UNIX son los Tubos, los
mensajes y la memoria compartida; Describa cada uno de estos medios:
• TUBOS: Es un buffer circular que permite a dos procesos comunicarse según el modelo
productor/consumidor. Entra forma una cola y se ejecuta de modo FIFO.
• MENSAJES: Es un bloque de texto con un tipo asociado. UNIX proporciona las llamadas al
sistema msgsnd y msgrcv para que los procesos puedan enviarse mensajes. Cada proceso tien
e asociada una cola de mensajes, que funciona como un buzón de correos.
• MEMORIA COMPARTIDA: Es una forma muy rápida de comunicación entre procesos que nos
proporciona UNIX, trata de un bloque común de memoria virtual compartido por varios
procesos. Los procesos pueden leer y escribir en la memoria compartida usando las mismas
instrucciones, que la maquina emplea para leer y escribir en otras partes de su espacio de
direcciones virtual.
8. En UNIX los semáforos y las señale se utilizan para provocar acciones en otros
procesos; Describa la forma como lo hace cada uno de ellos:
• Semáforos: Generan operaciones.
• Señal: La señal consiste en enviar una señal a una tabla de procesos para que este se
actualice y seguido de esto ejecute alguna acción