INTERBLOQUEOS

Mapa Mental Interbloqueos

Comienza Ya. Es Gratis
ó regístrate con tu dirección de correo electrónico
INTERBLOQUEOS por Mind Map: INTERBLOQUEOS

1. DETECCION Y RECUPERACION DE UN INTERBLOQUEO

1.1. Cuando se utiliza esta técnica, el sistema no trata de evitar los interbloqueos. En vez de ello, intenta detectarlos cuando ocurran y luego realiza cierta acción para recuperarse después del hecho. En esta sección analizaremos algunas de las formas en que se pueden detectar los interbloqueos, y ciertas maneras en que se puede llevar a cabo una recuperación de los mismos

1.1.1. Recuperacion de un interbloqueo .

1.1.1.1. Recuperacion por medio de apropiacion

1.1.1.1.1. En algunos casos puede ser posible quitar temporalmente un recurso a su propietario actual y otorgarlo a otro proceso. En muchos casos se puede requerir intervención manual, en especial en los sistemas operativos de procesamiento por lotes que se ejecutan en mainframes. Por ejemplo, para quitar una impresora láser a su propietario, el operador puede recolectar todas las hojas ya impresas y colocarlas en una pila. Después se puede suspender el proceso (se marca como no ejecutable). En este punto, la impresora se puede asignar a otro proceso. Cuando ese proceso termina, la pila de hojas impresas se puede colocar de vuelta en la bandeja de salida de la impresora y se puede reiniciar el proceso original.

1.1.1.2. Recuperacion a travéz del retroceso .

1.1.1.2.1. Si los diseñadores de sistemas y operadores de máquinas saben que es probable que haya interbloqueos, pueden hacer que los procesos realicen puntos de comprobación en forma periódica. Realizar puntos de comprobación en un proceso significa que su estado se escribe en un archivo para poder reiniciarlo más tarde. El punto de comprobación no sólo contiene la imagen de la memoria, sino también el estado del recurso; en otras palabras, qué recursos están asignados al proceso en un

1.1.1.3. Recuperación a travéz de la eliminación de procesos

1.1.1.3.1. La forma más cruda y simple de romper un interbloqueo es eliminar uno o más procesos. Una posibilidad es eliminar a uno de los procesos en el ciclo. Con un poco de suerte, los demás procesos podrán continuar. Si esto no ayuda, se puede repetir hasta que se rompa el ciclo

1.1.2. Detección de interbloqueos con un recurso de cada tipo

1.1.2.1. sólo existe un recurso de cada tipo. Dicho sistema podría tener un escáner, un grabador de CD, un trazador (plotter) y una unidad de cinta, pero no más que un recurso de cada clase. En otras palabras, estamos excluyendo los sistemas con dos impresoras por el momento. Más adelante lidiaremos con ellos, usando un método distinto.

1.1.3. Deteccion de interbloqueos con varios recursos de cada tipo

1.1.3.1. Lo que hace el algoritmo es buscar un proceso que se pueda ejecutar hasta completarse. Dicho proceso se caracteriza por tener demandas de recursos que se pueden satisfacer con base en los recursos disponibles actuales. Entonces, el proceso seleccionado se ejecuta hasta que termina, momento en el que devuelve los recursos que contiene a la reserva de recursos disponibles. Después se marca como completado. Si todos los procesos pueden en última instancia ejecutarse hasta completarse, ninguno de ellos está en interbloqueo. Si algunos de ellos nunca pueden terminar, están en interbloqueo. Aunque el algoritmo no es determinístico (debido a que puede ejecutar los procesos en cualquier orden posible), el resultado siempre es el mismo

2. COMO EVITAR INTERBLOQUEOS

2.1. Estados seguros e inseguros .

2.1.1. Se dice que un estado es seguro si hay cierto orden de programación en el que se puede ejecutar cada proceso hasta completarse, incluso aunque todos ellos solicitaran de manera repentina su número máximo de recursos de inmediato un estado inseguro no es un estado en interbloqueo e, la diferencia entre un estado seguro y uno inseguro es que, desde un estado seguro, el sistema puede garantizar que todos los procesos terminarán; desde un estado inseguro, no se puede dar esa garantía..

2.2. El algoritmo del banquero para un solo recurso

2.2.1. Se modela de la forma en que un banquero de una pequeña ciudad podría tratar con un grupo de clientes a los que ha otorgado líneas de crédito. Lo que hace el algoritmo es comprobar si al otorgar la petición se produce un estado inseguro. Si es así, la petición se rechaza. Si al otorgar la petición se produce un estado seguro, se lleva a cabo.

2.3. El algoritmo del banquero para varios recursos

2.3.1. El algoritmo del banquero fue publicado por primera vez por Dijkstra en 1965. Desde entonces, casi todos los libros sobre sistemas operativos lo han descrito con detalle. Se han escrito innumerables artículos sobre varios aspectos de él. Por desgracia, pocos autores han tenido la audacia de recalcar que, aunque en teoría el algoritmo es maravilloso, en la práctica es en esencia inútil, debido a que los procesos raras veces saben de antemano cuáles serán sus máximas necesidades de recursos. Además, el número de procesos no está fijo, sino que varía en forma dinámica a medida que los nuevos usuarios inician y cierran sesión

3. COMO PREVENIR INTERBLOQUEOS

3.1. Cómo atacar la condición de exclusión mutua

3.1.1. Primero vamos a atacar la condición de exclusión mutua. Si ningún recurso se asignara de manera exclusiva a un solo proceso, nunca tendríamos interbloqueos. No obstante, es igual de claro que al permitir que dos procesos escriban en la impresora al mismo tiempo se producirá un caos. Al colocar la salida de la impresora en una cola de impresión, varios procesos pueden generar salida al mismo tiempo. En este modelo, el único proceso que realmente solicita la impresora física es el demonio de impresión. Como el demonio nunca solicita ningún otro recurso, podemos eliminar el interbloqueo para la impresora

3.2. Cómo atacar la condición de contención y espera

3.2.1. La segunda condición establecida por Coffman y colaboradores se ve un poco más prometedora. Si podemos evitar que los procesos que contienen recursos esperen por más recursos, podemos eliminar los interbloqueos. Una forma de lograr esta meta es requerir que todos los procesos soliciten todos sus recursos antes de empezar su ejecución. Si todo está disponible, al proceso se le asignará lo que necesite y podrá ejecutarse hasta completarse. Si uno o más recursos están ocupados, no se asignará nada y el proceso sólo esperará.

3.3. Cómo atacar la condición no apropiativa

3.3.1. Si a un proceso se le ha asignado la impresora y está a la mitad de imprimir su salida, quitarle la impresora a la fuerza debido a que el trazador que necesita no está disponible es algo engañoso como máximo, e imposible en el peor caso. Sin embargo, ciertos recursos se pueden virtualizar para evitar esta situación. Al colocar en una cola de impresión en el disco la salida de la impresora y permitir que sólo el demonio de impresión tenga acceso a la impresora real, se eliminan los interbloqueos que involucran a la impresora, aunque se crea uno para el espacio en disco. No obstante, con los discos grandes es muy improbable quedarse sin espacio.

3.4. Cómo atacar la condición de espera circular

3.4.1. La espera circular se puede eliminar de varias formas. Una de ellas es simplemente tener una regla que diga que un proceso tiene derecho sólo a un recurso en cualquier momento. Si necesita un segundo recurso, debe liberar el primero. Para un proceso que necesita copiar un enorme archivo de una cinta a una impresora, esta restricción es inaceptable.

4. DEFINICION

4.1. El interbloqueo es un problema potencial en cualquier sistema operativo. Ocurre cuando todos los miembros de un conjunto de procesos se bloquean en espera de un evento que sólo otros miembros del conjunto pueden ocasionar. Esta situación hace que todos los procesos esperen para siempre

4.1.1. Coffman y colaboradores (1971) mostraron que deben aplicarse cuatro condiciones para un interbloqueo (de recursos):

4.1.1.1. 1. Condición de exclusión mutua. Cada recurso se asigna en un momento dado a sólo un proceso, o está disponible.

4.1.1.2. 2. Condición de contención y espera. Los procesos que actualmente contienen recursos que se les otorgaron antes pueden solicitar nuevos recursos.

4.1.1.3. 3. Condición no apropiativa. Los recursos otorgados previamente no se pueden quitar a un proceso por la fuerza. Deben ser liberados de manera explícita por el proceso que los contiene.

4.1.1.4. 4. Condición de espera circular. Debe haber una cadena circular de dos o más procesos, cada uno de los cuales espera un recurso contenido por el siguiente miembro de la cadena.

5. RECURSOS

5.1. APROPIATIVOS

5.1.1. Un recurso apropiativo es uno que se puede quitar al proceso que lo posee sin efectos dañinos. La memoria es un ejemplo de un recurso apropiativo.

5.2. NO APROPIATIVOS

5.2.1. un recurso no apropiativo es uno que no se puede quitar a su propietario actual sin hacer que el cómputo falle. Si un proceso ha empezado a quemar un CD-ROM y tratamos de quitarle de manera repentina el grabador de CD y otorgarlo a otro proceso, se obtendrá un CD con basura. Los grabadores de CD no son apropiativos en un momento arbitrario

6. ALGORITMO DE LA AVESTRUZ

6.1. El método más simple es el algoritmo de la avestruz: meta su cabeza en la arena y pretenda que no hay ningún problema.† Las personas reaccionan a esta estrategia de diversas formas. Los matemáticos la encuentran totalmente inaceptable y dicen que los interbloqueos se deben prevenir a toda costa; los ingenieros preguntan con qué frecuencia se espera el problema, con qué frecuencia falla el sistema por otras razones y qué tan grave es un interbloqueo