Interbloqueos

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

1. Recursos

1.1. un recurso puede ser un dispositivo de hardware o pieza de información

1.1.1. Apropiativos y no apropiativos

1.1.1.1. un recurso apropiativo es uno que se puede quitar del proceso que lo posee sin enfecto dañinos. Por otro lado un recurso no apropiativo es uno que no se puede quitar a su propietario actual sin hacer que el computo falle

1.1.1.2. La secuencia de eventos requerida para utilizar un recurso, se proporciona en un formato ebstracto de la siguiente forma:

1.1.1.2.1. 1-Solicitar recurso

1.1.1.2.2. 2-Utilizar Recurso

1.1.1.2.3. 3-Liberar Recurso

1.1.2. Adquisición de Recursos

1.1.2.1. Para cierto tipo de recursos, como los registros de un base de datos, es responsabilidad de los procesos de usuario de administrar su uso, una manera de permitir esto es asociar un semáforo con cada recurso.

2. Introducción de interbloqueos

2.1. Un conjunto de procesos se encuentra en un interbloqueo, si cada proceso en el conjunto está esperando un evento que sólo puede ser ocasionado por otro proceso en el conjunto, cada miembro del conjunto de procesos en interbloqueo esta esperando un recurso que posee un proceso en interbloqueo.

2.1.1. Condiciones paro los interbloqueos de recursos

2.1.1.1. 1-Condición de exclusión mutua: Cada recurso se asigna en un momento dado a sólo un proceso

2.1.1.2. 2-Condición de conteción y espera: Los procesos que actualmente contienen recursos que se les otorgaron pueden solicitar nuevos recursos

2.1.1.3. 3-Condición no apropiativa: Los recursos otorgados previamente no se pueden quitar a un proceso por la fuerza.

2.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.

2.1.2. Modelado de Interbloqueos

2.1.2.1. En general se utilizan cuatro estrategias para lidiar con los interbloqueos

2.1.2.1.1. 1) Ignorar el problema

2.1.2.1.2. 2) Detección y recuperación, dejar que ocurrasn los interbloqueos, detectarlos y tomar acción

2.1.2.1.3. 3) Evitarlos en forma dinámica mediante la asignación ciudadosa de recursos

2.1.2.1.4. 4) Prevención, al evitar estructuralmente una de las cuatro condiciones requeridas

3. Detección y recuperación de un interbloqueo

3.1. Cuando se utiliza la técnica de detección y recuperación, el sistema no trata de evitar los interbloqueos. En vez de ello, intenta detectarlos cuando ocurran y luego realiza cierta acción para recuperarse del hecho.

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

3.1.1.1. Existen muchos algoritmos conocidos para detectar ciclos en gráficos dirigidos, en este caso se vera un algoritmo simple que inspecciona un gráfico y termina al haber encontrado un ciclo, o cuando no existe ninguno, utiliza cierta estructura dinámica de datos, una lista de nodos, asi como lista de arcos, el algoritmo opera al llevar acabo los siguientes pasos segun lo especificado:

3.1.1.1.1. 1-Para cada nodo N en el gráfico, realizar los siguientes cinco pasos con N como el nodo inicial.

3.1.1.1.2. 2- inicializar L con la lista vacía y designar todos los arcos como desmarcados

3.1.1.1.3. 3- Agregar el nodo actual al final de L y comprobar si el nodo ahora, aparece dos veces en L. Si lo hace, el graficos contiene un ciclo y el algoritmo termina

3.1.1.1.4. 4- Del nodo dado, ver si hay arcos salientes desmarcados. De ser así, ir al paso 5; en caso contrario ir al paso 5

3.1.1.1.5. 5- Elegir un arco saliente desmarcado al azar y marcarlo. Después seguirlo hasta el nuevo nodo actual e ir al proceso 3

3.1.1.1.6. 6- Si este nodo es el inicial, el gráfico no contiene ciclos y el algoritmo termina. En caso contrario, ahora hemos llegado a un punto muerto. Eliminarlo y regresar al nodo anterior.

4. Cómo evitar interbloqueos

4.1. El sistema debe de ser capaz de decidir si es seguro otorgar un recurso o si no lo es, y realizar la asignación sólo cuando sea seguro. ¿Existe un algoritmo que puede evitar el interbloqueo y realizar la elección correcta a tiempo?. la repuesta es si, pero solo si hay cierta información disponible de antemano

4.1.1. Trayectoria de recursos

4.1.1.1. Los principales algoritmos para evitar los interbloqueos se basan en el concepto de los estados seguros, suponiendo que se tienen 2 proceso y 2 recursos, el sistema debe de decidir que proceso ejecutar y que recurso asignar, el sistema debe decidir si se le otorga o no, en caso de que se le otorga, el sistema entrará en una región insegura y de interbloqueo, para evitar esto un proceso se debe de suspender hasta que otro proceso solicite un recurso y lo libere

4.1.2. Estados seguros e inseguros

4.1.2.1. Los algoritmos para evitar interbloqueos que estudiaremos utilizan la información. En cualquier instante hay un estdo actual que consisten en E,A,C y R. Se dice que en un estado es seguro si hay cierto orden 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.

5. Cómo prevenir interbloqueos

5.1. Habiendo visto que evitar los interbloqueos es algo en escencia imposible, debido a que se requiere información sobre las peticiones futuras, que no se conocen,¿Cómo evitan los sistemas reales el interbloqueo?, la respuesta es volver a las condiciones establecidad por Coffman

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

5.1.1.1. Sin ningún recurso se asigna de manera exclusiva a un solo proceso, nunca se tendria interbloqueo, sin embargo permirtir que dos procesos escriban en una impreso por ejemplo se producira un caos, al colocar la salida de una impresora en una cola de impresión, varios procesos pueden generar salidas al mismo tiempo.

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

5.1.2.1. Si podemos evitar que los procesos que contienen recursos esperen por más recursos, podemos eliminar los interbloqueos, una forma de lograr esa meta es requerir que todo los procesos soliciten todo sus recursos antes de empezar su ejecución. Si todo esta disponible, al proceso se le asignará lo que necesite y podrá ejecutarse hasta completarse.

5.1.3. Cómo atacar la condicion no apropiativa

5.1.3.1. Si a un proceso se la asignado la impresora y esta a la mitad de imprimir su salida, quitarle la impresora a la fuerza debido a que el tazador que necesita no está disponible es algo engañozo como máximo e imposible en el peor caso. al colocar en una cola de impresion en el disco de salida, y permitir que solo el demonio de impresión tengo acceso en tiempor real, se eliminan los interbloqueos

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

5.1.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. Otra manera de evitar la espera es proporcionar una numeración global de todos los recursos, la regla seria los procesos pueden solicitar recursos cada vez que quieran, pero todas las peticiones se deben realizar en orden numerico.Otra variación es que los recursos se adquieran en secuencia cada vez más estricta, y simplemente insistir en que ningún proceso puede solicitar un recurso menor.

6. Cuestiones extras

6.1. La iniciación es un problema relacionado con los sistemas multitarea, donde un proceso o un hilo de ejecución se le deniega siempre el acceso a un recurso compartido, Sin este recurso, la tarea a ejecutar no puede ser nunca finalizada

6.1.1. Bloqueo de dos fases

6.1.1.1. En la primera fase el proceso trata de bloquear todos los registros que necesita uno a la vez, si tiene exito pasa a la segunda fase, realizando actualizaciones y liberando todo los bloqueos. En ciertas versiones del bloqueo de dos fases, no hay liberación y reincio si se encuentra un registro bloqueado durante la primera fase

6.1.2. Interbloqueos de comunicaciones

6.1.2.1. Los interbloqueos de comunicación no se pueden evitar mediante el ordenamiento de recursos, ni se puede evitar mediante una programación cuidadosa. Por fortuna existen los tiempos de espera, cuando se envia un mensaje y se espera una respuesta se inicia un temporizador, si el temporizador, termina su conteo antes de la repuesta, el emisor asume que se perido el mensaje y lo envia de nuevo.