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


