Está en la página 1de 9

TECNOLÓGICO NACIONAL DE MÉXICO

Instituto Tecnológico Superior P’urhépecha

Instituto Tecnológico Superior


P’urhépecha

Alumnos(as): José Ángel Gallardo Trejo (1903009), Angel


Luis Ambrocio Sixtos (19030001)
Grupo: 5 A

Materia: Sistemas operativos

Tema 2: Administración de procesos y del procesador

Actividad 3: Definir el concepto de interbloqueo (deadlock) y


analizar su detección, prevención y recuperación.

Profesora: Mtra. Brenda Liliana Guillén Rodríguez

13/10/2021
Deadlock
El interbloqueo puede definirse formalmente como sigue: Un conjunto de procesos
está en interbloqueo si cada proceso del conjunto está esperando un evento que
sólo otro proceso del conjunto puede causar. Puesto que todos los procesos están
esperando, ninguno de ellos puede causar ninguno de los eventos que podrían
despertar a cualquiera de los demás miembros del conjunto, y todos los procesos
continúan esperando indefinidamente.

Condiciones para el interbloqueo


Coffman (1971) demostró que deben cumplirse cuatro condiciones para que haya
un bloqueo mutuo:

 Condición de exclusión mutua. Cada recurso está asignado únicamente a


un solo proceso o está disponible.
 Condición de retener y esperar. Los procesos que actualmente tienen
recursos que les fueron otorgados previamente pueden solicitar nuevos
recursos.
 Condición de no expropiación. No es posible quitarle por la fuerza a un
proceso los recursos que le fueron otorgados previamente. El proceso que
los tiene debe liberarlos explícitamente.
 Condición de espera circular. Debe haber una cadena circular de dos o más
procesos, cada uno de los cuales está esperando un recurso retenido por el
siguiente miembro de la cadena.

Deben estar presentes estas cuatro condiciones para que ocurra un bloqueo
mutuo. Si una o más de estas condiciones está ausente, no puede haber bloqueo
mutuo.

Ventajas de Deadlock
Aquí están los pros y los contras de usar el método Deadlock

 Este escenario funciona bien para procesos que solo hacen que una acción
estalle
 No se requiere preferencia para Deadlock.
 Un método útil cuando se aplica a recursos cuyo estado se puede guardar y
restaurar fácilmente
 Se puede hacer cumplir mediante comprobaciones de tiempo compiladas.
 No se requiere tiempo electrónico para ejecutarse ya que el diseño del
sistema resuelve el problema

Desventajas del método Deadlock


Aquí, hay desventajas / desventajas de usar el método de interbloqueo

 Retraso en el inicio del proceso


 Los procesos deben ser conscientes de los futuros requisitos de recursos.
 Precede más a menudo de lo necesario
 Rechazo de solicitudes de recursos incrementales
 Pérdidas de preferencia subyacentes.

Características del Deadlock


 El sistema tiene recursos de varios tipos: memoria, archivos, grabadores,
impresoras, etc. Podemos tener más de un ejemplar de un tipo de recurso
(e.g., tres impresoras). Cada uno de los ejemplares pueden satisfacer una
solicitud de un proceso para el recurso.
 Los recursos son compartibles y permiten acceso a muchos procesos (e.g.,
los archivos de sólo lectura) o no compartibles (e.g., un grabador).
 Podemos usar un grafo de asignación de recursos para describir deadlock.
Tenemos procesos (círculos), recursos (rectángulos con un punto para
cada ejemplar), aristas de solicitud y de asignación (cambio
instantáneamente).
 La sincronización de procesos creados por diferentes equipos de
programadores, está a cargo del sistema operativo.

Detección de Deadlock
Las estrategias de prevención del interbloqueo son muy conservadoras;
solucionan el problema del interbloqueo limitando el acceso a los recursos e
imponiendo restricciones a los procesos. En el lado opuesto, las estrategias de
detección del interbloqueo no limitan el acceso a los recursos ni restringen las
acciones de los procesos. Con detección del interbloqueo, se concederán los
recursos que los procesos necesiten siempre que sea posible. Periódicamente, el
sistema operativo ejecuta un algoritmo que permite detectar la condición de círculo
vicioso de espera. Puede emplearse cualquier algoritmo de detección de ciclos en
grafos dirigidos.

El control del interbloqueo puede llevarse a cabo tan frecuentemente como las
solicitudes de recursos o con una frecuencia menor, dependiendo de la
probabilidad de que se produzca el interbloqueo. La comprobación en cada
solicitud de recurso tiene dos ventajas: Conduce a una pronta detección y el
algoritmo es relativamente simple, puesto que está basado en cambios
increméntales del estado del sistema. Por otro lado, tal frecuencia de
comprobaciones consume un tiempo de procesador considerable.

Una vez detectado el interbloqueo, hace falta alguna estrategia de recuperación.


Las técnicas siguientes son posibles enfoques, enumeradas en orden creciente de
sofisticación:

1. Abandonar todos los procesos bloqueados. Esta es, se crea o no, una de las
soluciones más comunes, si no la más común, de las adoptadas en un sistema
operativo.

2. Retroceder cada proceso interbloqueado hasta algún punto de control definido


previamente y volver a ejecutar todos los procesos. Es necesario que haya
disponibles unos mecanismos de retroceso y reinicio en el sistema. El riesgo de
esta solución radica en que puede repetirse el interbloqueo original. Sin embargo,
el no determinismo del procesamiento concurrente asegura, en general, que esto
no va a pasar.

3. Abandonar sucesivamente los procesos bloqueados hasta que deje de haber


interbloqueo. El orden en el que se seleccionan los procesos a abandonar seguirá
un criterio de mínimo coste. Después de abandonar cada proceso, se debe
ejecutar de nuevo el algoritmo de detección para ver si todavía existe interbloqueo.

4. Apropiarse de recursos sucesivamente hasta que deje de haber interbloqueo.


Como en el punto 3, se debe emplear una selección basada en coste y hay que
ejecutar de nuevo el algoritmo de detección después de cada apropiación. Un
proceso que pierde un recurso por apropiación debe retroceder hasta un momento
anterior a la adquisición de ese recurso.

Para los puntos 3 y 4, el criterio de selección podría ser uno de los siguientes,
consistentes en escoger el proceso con:

 La menor cantidad de tiempo de procesador consumido hasta ahora.


 El menor número de líneas de salida producidas hasta ahora.
 El mayor tiempo restante estimado.
 El menor número total de recursos asignados hasta ahora. • La prioridad
más baja.

Algunas de estas cantidades son más fáciles de medir que otras. El tiempo
restante estimado deja lugar a dudas, especialmente. Además, aparte de las
medidas de prioridad, no existe otra indicación del “coste” para el usuario frente al
coste para el sistema en conjunto.

Prevención de Deadlock
Los bloqueos mutuos pueden ser evitados si se sabe cierta información sobre los
procesos antes de la asignación de recursos. Para cada petición de recursos, el
sistema controla si satisfaciendo el pedido entra en un estado inseguro, donde
puede producirse un bloqueo mutuo. De esta forma, el sistema satisface los
pedidos de recursos solamente si se asegura que quedará en un estado seguro.
Para que el sistema sea capaz de decidir si el siguiente estado será seguro o
inseguro, debe saber por adelantado y en cualquier momento el número y tipo de
todos los recursos en existencia, disponibles y requeridos.

Existen varios algoritmos para evitar bloqueos mutuos:


 Algoritmo del banquero, introducido por Dijkstra. Algoritmo de grafo de
asignación de recursos.
 Algoritmo de Seguridad.
 Algoritmo de solicitud de recursos.

Prevención

Los bloqueos mutuos pueden prevenirse asegurando que no suceda alguna de las
condiciones necesarias vistas anteriormente.

 Eliminando la exclusión mutua: ningún proceso puede tener acceso


exclusivo a un recurso. Esto es imposible para procesos que no pueden ser
encolados (puestos en un spool), e incluso con colas también pueden
ocurrir interbloqueos.
 La condición de retención y espera puede ser eliminada haciendo que los
procesos pidan todos los recursos que van a necesitar antes de empezar.
Este conocimiento por adelantado muchas veces es imposible nuevamente.
Otra forma es requerir a los procesos liberar todos sus recursos antes de
pedir todos los recursos que necesitan. Esto también es impráctico en
general.
 La condición de no expropiación puede ser también imposible de eliminar
dado que un proceso debe poder tener un recurso por un cierto tiempo o el
procesamiento puede quedar inconsistente.
 La condición de espera circular es la más fácil de atacar. Se le permite a un
proceso poseer sólo un recurso en un determinado momento, o una
jerarquía puede ser impuesta de modo tal que los ciclos de espera no sean
posibles.

Recuperación de Deadlock
Una vez que se ha detectado el interbloqueo se debe romper para que los
recursos puedan finalizar su ejecución y liberar así los recursos. Para ruptura de la
espera se pueden realizar varias opciones. Las idónea sería suspendiendo
algunos de los procesos bloqueados para tomar sus recursos y reanudar su
ejecución una vez que se hubiera deshecho el interbloqueo. Esta solución solo
puede resultar factible en casos muy particulares; no se podría suspender a un
proceso de escribir de escribir en una impresora para pasarla a otro proceso y
reanudar después la impresión, como tampoco se podría suspender
indefinidamente un proceso de tiempo real. Las dos opciones que se suelen
utilizar son: reiniciar uno o más de los procesos bloqueados y expropiar los
recursos de algunos de los procesos bloqueados.

Para aplicar la primera de las opciones se deben tener en cuenta una serie de
factores con el fin de elegir aquellos procesos cuya reiniciación resulte menos
traumática. Entre los factores a tener en cuenta en cada proceso se tienen:

 La prioridad del proceso.


 El tiempo de procesamiento utilizado y el que le resta.
 El tipoy número de recursos que posee.
 El número de recursos que necesita para finalizar.
 El número de otros procesos que se verían involucrados con su reiniciación

El procedimiento de la segunda opción consiste en ir expropiando recursos de


algunos procesos de forma sucesiva hasta que se consiga salir del interbloqueo.
La elección de los recursos que se expropian se basa en criterios similares a los
expuestos en la reiniciación de los procesos.

En algunos sistemas de tiempo real el interbloqueo puede tener resultados


inaceptables, por lo que no se puede permitir que se presente dicha situación. En
otros sistemas se rechaza el interbloqueo, aunque la situación pudiera ser
aceptable, por el costo en tiempo y medios adicionales que conlleva la
recuperación.

Conclusión
Como conclusión podemos ambos podemos decir que el deadlock asta cierto
punto es, de alguna forma, beneficioso para las computadoras, ya que con esto se
puede evitar que la misma llegue a tener un error fatal a la hora de realizar los
procesos, aunque esto a su vez, también puede llegar a ser molesto, en especial
para los programadores más inexpertos.
Bibliografía
Alarcón, J. M. (28 de abril de 2011). jasoft. Obtenido de jasoft:
https://www.jasoft.org/Blog/post/191;Que-es-un-deadlock-o-interbloqueo

Anonimo. (15 de agosto de 2018). programador clic . Obtenido de programador clic :


https://programmerclick.com/article/29581860766/

Anonimo. (01 de enero de 2020). ebooksonline. Obtenido de ebooksonline:


https://ebooksonline.es/introduccion-a-deadlock-en-el-sistema-operativo/

DELGADO, J. C. (22 de julio de 2018). sistemasoperativos07. Obtenido de sistemasoperativos07:


https://sistemasoperativos07.es.tl/Interbloqueo.htm

También podría gustarte