martes, 17 de mayo de 2016

INTERBLOQUEO



Resúmen  de la clase dictada  14 de abril de 2016


1. INTRODUCCIÓN

En los sistemas operativos ha sido un problema desde sus inicios el uso que se le da a sus recursos ya que suele producirse interbloqueos por la anomalía que ocurre durante la ejecución de varios procesos que intentan acceder a un recurso, aunque en la actualidad ya los sistemas operativos al momento de pretender acceder con varios procesos a un recurso este lo almacena en una cola es decir que el primer proceso que llega a ese recurso lo realiza y los demás los suspende hasta que termine el que comenzó y los realiza uno por uno sin bloquear todos los procesos que intenten acceder a ese recurso.


2. OBJETIVO

Conocer  definiciones del por qué se dan los interbloqueos en los sistemas operativos y como evitarlos


3. MARCO TEÓRICO

3.1. INTERBLOQUEOS
Los sistemas computacionales están llenos de recursos que pueden ser utilizados por sólo un proceso a la vez. Algunos ejemplos comunes son las impresoras, las unidades de cinta y las ranuras en los tableros internos del sistema. Cuando dos procesos escriben de manera simultánea en la impresora se producen incoherencias. Si dos procesos utilizan la misma entrada en la tabla del sistema de archivos invariablemente se corrompe el sistema de archivos. En consecuencia, todos los sistemas operativos tienen la habilidad de otorgar (en forma temporal) a un proceso el acceso exclusivo aciertos recursos.
Para muchas aplicaciones, un proceso necesita acceso exclusivo no sólo a un recurso, sino a varios. Por ejemplo, suponga que cada uno de dos procesos quiere grabar un documento digitalizado en un CD. El proceso A pide permiso para utilizar el escáner y se le otorga. El proceso B se programa de manera distinta y solicita primero el grabador de CDs, y también se le otorga. Ahora A pide el grabador de CDs, pero la petición se rechaza hasta que B lo libere. Por desgracia, en vez deliberar el grabador de CD, B pide el escáner. En este punto ambos procesos están bloqueados y permanecerán así para siempre. A esta situación se le conoce como interbloqueo.
Los interbloqueos también pueden ocurrir entre máquinas. Por ejemplo, muchas oficinas tienen una red de área local con muchas computadoras conectadas. A menudo, los dispositivos como escáneres, grabadores de CD, impresoras y unidades de cinta se conectan a la red como recursos compartidos, disponibles para cualquier usuario en cualquier equipo. Si estos dispositivos se pueden reservar de manera remota (es decir, desde el equipo doméstico del usuario), pueden ocurrir los mismos tipos de interbloqueos antes descritos. Las situaciones más complicadas pueden ocasionar interbloqueos que involucren a tres, cuatro o más dispositivos y usuarios.




Figúra 1. Esquema de interbloqueo

3.2. RECURSOS

Una clase principal de interbloqueos involucra a los recursos, por lo que para empezar nuestro estudio veremos lo que son. Los interbloqueos pueden ocurrir cuando a los procesos se les otorga acceso exclusivo a los dispositivos, registros de datos, archivos, etcétera. Para que el análisis sobre los interbloqueos sea lo más general posible, nos referiremos a los objetos otorgados como recursos.
Un recurso puede ser un dispositivo de hardware (por ejemplo, una unidad de cinta) o una pieza de información (como un registro bloqueado en una base de datos). Por lo general, una computadora tendrá muchos recursos que se pueden adquirir. Para algunos recursos puede haber disponibles varias instancias idénticas, como tres unidades de cinta. Cuando hay disponibles varias copias de un recurso, se puede utilizar sólo una de ellas para satisfacer cualquier petición de ese recurso. En resumen, un recurso es cualquier cosa que se debe adquirir, utilizar y liberar con el transcurso del tiempo.




 Figúra 2. Recuros


3.3. PREVENCIÓN DE INTERBLOQUEO

Con la estrategia de prevención se intenta eliminar el problema de raíz, asegurando que nunca se pueden producir interbloqueos. Dado que, como se realizó previamente, es necesario que se cumpla las cuatro condiciones de Coffman  (exclusión mutua, retención y espera, sin expropiación, espera circular) para que se produzca un interbloqueo, bastaría únicamente con asegurar que una de estas condiciones no se puede satisfacer para eliminar los interbloqueos  en  sistema.

3.3.1. EXCLUSION MUTUA
Esta condición establece que para que se produzca el interbloqueo, los recursos implicados en el mismo deben de ser de uso exclusivo. Esta condición es imposible de evitar ya que existen recursos que por definición se presentan como exclusivos, tal es el caso de la impresora, que solo puede ser utilizada por un proceso a la vez.

3.3.2. RETENCIÓN Y ESPERA

Esta condición especifica que para que se presente un interbloqueo tiene que haber procesos que tengas asignados recursos y estén bloqueados en la espera de otro recurso. Una primera estrategia para evitar que esta condición se presente es asegurar que todos los procesos hagan la solicitud de todos los recursos, que necesitaran, desde el principio de su ejecución. Esta estrategia asegura que el proceso no se bloqueara en la espera de algún recurso debido a que puede hacer uso de todos los que necesite desde el principio. Esta estrategia conlleva una tasa muy baja de utilización de recursos debido a que siempre existirán recursos bloqueados, por procesos, en espera de su utilización, así como también retrasa el inicio de los procesos al tener que esperar por la liberación de todos los recursos.

3.3.3. SIN EXPROPIACION
La tercera condición específica que a un proceso no se le pueden expropiar los recursos que ya tiene asignados,  hasta que el mismo los libere voluntariamente.


3.3.4. ESPERA CIRCULAR
La última condición establece la necesidad de que exista una lista circular de dependencias entre procesos, esto es, que un proceso A este esperando un recurso que tiene asignado el proceso B y a su vez el proceso B este esperando un recurso que tiene asignado el proceso A.

3.4. DETECCIÓN DE INTERBLOQUEO:
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 ser presente y que los recursos del sistema que han sido asignados, se liberarán en el momento que otro proceso lo requiera.

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.

3.5. EVITAR INTERBLOQUEOS
En vez de restringir la forma o el orden en que los procesos deben solicitar recursos, antes se debe conocer si es  seguro otorgar dichos recursos. Es decir, si se presentan las condiciones suficientes para un interbloqueo, todavía es posible evitarlos por medio de una restricción en la asignación de los procesos para tratar de buscar estados seguros. Estas restricciones aseguran que al menos una de las condiciones necesarias para el interbloqueo no pueda presentarse y por lo tanto, tampoco el interbloqueo.
Otro método para evitar los interbloqueo consiste en requerir información adicional sobre cómo se solicitará los recursos. Esta información puede ser: 
·         La necesidad máxima de recursos de los procesos que se está ejecutando
·         La asignación actual de recursos a procesos
·         La cantidad actual de instancias libres de cada recurso

Ejemplos de  interbloqueo


Figura 3. Ejemplo de interbloqueo

 




4. CONCLUSIÓN
Los interbloqueos se producen por la ejecución de varios procesos que pretende acceder a un recurso.
Los interbloqueos retrasan datos y procesos solicitados por el sistema operativo a un recurso, es por eso que es necesario saber que para prevenir un interbloqueo es necesario prevenirlo.


5. BIBLIOGRAFÍA
 
Madrigal, I.2010. Interbloqueos. (En Línea). Consultado el 17 de May. 2016. Formato HTML. Disponible en: http://equipoisaiasmauricio.blogspot.com/2010/10/principios-de-interbloqueo-y-acciones.html
Tanenbaum, A. 2009. Sistemas Operativos Modernos. 3 ed. México. D. F. PEARSON EDUCACIÓN. p. 433-434