Sop U-3 Interbloqueos Flashcards
Recurso
elemento utilizado por un solo proceso en un momento determinado.Puede ser un dispositivo de hardware o software
→ Cualquier elemento se debe solicitar, utilizar y liberar.
Imagina una biblioteca:
Biblioteca: Representa el sistema operativo.
Libros: Representan los recursos.
Lectores: Representan los procesos.
¿Cómo funcionan los recursos en la biblioteca?
Un libro por lector: Un libro (recurso) solo puede ser utilizado por un lector (proceso) a la vez. Si un lector quiere leer un libro que otro ya está leyendo, debe esperar.
Solicitar, utilizar y liberar: Para leer un libro (utilizar un recurso), el lector debe solicitarlo al bibliotecario (sistema operativo). Una vez que termina de leer, debe devolver el libro (liberar el recurso).
Tipos de recursos
Apropiativos → recurso que se le quita al proceso que lo tiene sin causar daños.
No apropiativos →recurso que no se lo puede quitar del proceso que lo tiene sin hacer que el cómputo falle
Imagina una fiesta con un pastel:
Pastel: Representa un recurso.
Invitados: Representan los procesos.
Tipos de pastel (recursos):
Pastel de esponja: Representa un recurso apropiativo. Si un invitado está comiendo un pedazo de pastel de esponja y alguien más lo quiere, se lo puede quitar sin que el pastel se dañe. El invitado que lo tenía simplemente tendrá menos pastel.
Pastel con vela: Representa un recurso no apropiativo. Si un invitado está soplando la vela de un trozo de pastel y alguien más intenta quitárselo, el pastel se dañará (el proceso fallará).
Condiciones para un interbloqueo
✓Exclusión mutua:cada recurso está asignado a exactamente un proceso, o está disponible.
✓Posesión y espera:los procesos que tienen recursos previamente otorgados pueden solicitar otros recursos.
✓No apropiativo:los recursos ya otorgados no pueden arrebatarse al proceso que los tiene; éste debe liberarlo de forma limpia y explícita.
✓Espera circular:debe haber una cadena circular de dos o más procesos, cada uno de los cuales está esperando un recurso que está en manos del siguiente miembro de lacadena.
Imagina una fiesta con varios amigos y un solo baño:
Baño: Representa un recurso.
Amigos: Representan los procesos.
Condiciones para que se produzca un interbloqueo (todos los amigos se quedan atascados en el baño):
Exclusión mutua (un baño para uno): Solo un amigo puede usar el baño a la vez.
Posesión y espera (toallas y jabón): Un amigo que está en el baño puede estar esperando una toalla o jabón (otros recursos) antes de salir.
No apropiativo (no se puede sacar a nadie del baño): No se puede sacar a la fuerza a un amigo del baño, debe salir por voluntad propia.
Espera circular (una cadena de espera): Imagina que hay tres amigos: A, B y C. A está esperando que B salga del baño, B está esperando que C salga del baño, y C está esperando que A salga del baño. Se forma un círculo donde nadie puede avanzar.
Modelado de bloqueos irreversibles
Hay dos nodos, los círculos son procesos y los cuadrados son recursos.
Un arco desde un recurso a un proceso quiere decir que el recurso fue solicitado primero por ese proceso y se lo concedió.
Un arco desde un proceso hasta un recurso significa que el proceso está bloqueado esperando ese recurso.
Los grafos de recursos son una herramienta que nos permite ver si una sucesión dada de solicitudes/liberaciones conduce a un bloqueo irreversible
Imagina una fiesta con varios amigos y una sola puerta:
Amigos: Representan los procesos.
Puerta: Representa un recurso.
Flechas: Representan las solicitudes y esperas de los recursos.
¿Cómo funciona el modelo de bloqueos irreversibles en la fiesta?
Diagrama de la fiesta: Imaginemos un diagrama donde cada amigo es un círculo y la puerta es un cuadrado. Una flecha que va de un amigo a la puerta significa que el amigo quiere entrar (solicita el recurso). Una flecha que va de la puerta a un amigo significa que el amigo está esperando para entrar (el proceso está bloqueado).
Bloqueo irreversible: Si todos los amigos están esperando que otro amigo salga de la puerta, se forma un círculo de espera y nadie puede entrar. Esto es un bloqueo irreversible.
Estrategias para enfrentar los bloqueos irreversibles
Ignorar el problema → algoritmo del avestruz.
→ Es preferible que se produzca un interbloqueo esporádicamente y no sobrecargar el sistema para tratar de evitarlo
→ Se debe hacer un análisis para determinar con cuánta frecuencia se produce un interbloqueo.
Detección y recuperación
→Detección: Es posible construir un grafo en donde se representen los procesos en ejecución, los recursos utilizados y los solicitados cada cierto intervalo de tiempo. Si contiene uno o más ciclos quiere decir que hay un interbloqueo.
→ Recuperación: existen 2 formas.
✓Eliminación de procesos: es la forma más eficaz. Se elimina uno o más procesos. Lo mejor es eliminar un proceso que pueda volver a ejecutarse desde el principio sin efectos perjudiciales.
✓Apropiación:se le quita el recurso al proceso temporalmente y se lo asigna a otro proceso. Es de difícil implementación
✓Rollback:Es posible hacer que los procesos pasen por puntos de verificación en forma periódica. En tal punto, el estado del proceso se graba en un archivo que contendrá la imagen como así también el estado de los recursos del proceso. Cuando se detecta un bloqueo irreversible, si se puede recuperar lo hace sinoregresa a un punto previo.
→ Evitar los interbloqueos
oEl sistema debe decidir si es seguro o no otorgar un recurso
oSe debe disponer de cierta información de antemano
oCada proceso debe determinar la cantidad y tipo de recursos que utilizará
oSe puede “evitar” un interbloqueo mediante una asignación cuidadosa de los recursos
Estado seguro → el sistema garantiza que todos los procesos pueden finalizar su ejecución
Estado inseguro → el sistema no puede brindar garantía que todos los procesosfinalizarán su ejecución
→ Prevención: se anula una de las cuatro condiciones necesarias para que haya un bloqueo irreversible.
Exclusión Mutua→ se delega la responsabilidad de la administración y acceso al recurso al sistema operativo a través de procesos daemons
Posesión y espera
→ Los procesos solicitan todos los recursos antes de comenzar su ejecución
→ Si un proceso no puede tener todos los recursos que necesita, debe liberar los que posee actualmente
No apropiativo→ es difícil de anular esta condición
Espera circular
→ Se numeran todos los recursos
→ Los procesos pueden solicitar recursos, siempre que sean en orden creciente
→ Si un proceso solicita un recurso cuya numeración sea menor al recurso que ya posee, debe liberar este recurso
Imagina una autopista con varios carriles:
Carriles: Representan los recursos.
Autos: Representan los procesos.
Bloqueo irreversible: Un atasco en el que ningún auto puede avanzar.
Estrategias para enfrentar el atasco:
Ignorar el problema (avestruz): Esperar a que alguien resuelva el problema por sí solo. Esto puede funcionar si los atascos son poco frecuentes.
Detección y recuperación:
Detección: Observar la autopista para ver si hay algún círculo donde todos los autos estén esperando a otro.
Recuperación:
Eliminar autos: Sacar algunos autos de la autopista (eliminar procesos).
Quitar llaves: Quitar las llaves a un auto temporalmente y dárselas a otro (apropiación).
Volver atrás: Hacer que todos los autos retrocedan a un punto de control anterior (rollback).
Evitar el atasco:
Control de acceso: Un policía controla quién entra y sale de la autopista.
Planificación: Los autos deben decir de antemano cuántos carriles necesitan y en qué orden.
Orden en los carriles: Los carriles están numerados y los autos deben solicitarlos en orden.