Está en la página 1de 7

Interbloqueos

Concepto:
Un Interbloqueo supone un bloqueo permanente de un conjunto de procesos que compiten por recursos
o bien se comunican o sincronizan si.
Los procesos de los sistemas no solo son independientes, sino que compiten en el uso exclusivo de
recursos, se comunican y se sincronizan entre si. El sistema operativo debe encargarse de asegurar que
estas interacciones se llevan a cabo aproximadamente proporcionando la exclusin mutua requerida por
las mismas. La necesidad de los algunos procesos pueden entrar en conflicto entre si causando que estos
se bloqueen indefinidamente.
El Interbloqueo surge debido a que produce un conflicto entre las necesidades de los procesos y el
recurso que necesita cada proceso lo posee el otro.
Se caracteriza por la existencia de un conjunto de entidades activas que utilizan un conjunto de recursos
para llevar a cabo su labor.
Tipos de recursos:
1-Recursos reutilizables o consumibles:
Se caracteriza por que el recurso existiendo despus de que un proceso lo use queda disponible para
otros procesos. El recurso es independiente de su utilizacin.
2-Recursos consumibles:
Estos se caracterizan por que dejan de existir una vez que los usa.
3-Recursos compartidos o exclusivos:
Estos recursos no se ven afectados por Interbloqueos ya que los procesos que quieran usarlos pueden
hacerlo inmediatamente sin posibilidad de quedarse bloqueados.
4-Recursos con un nico ejemplar o con mltiples:
Una solicitud de este recurso por parte de un proceso podra satisfacerse con cualquier ejemplar del
mismo.
Deteccin de Interbloqueo:
La deteccin 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 verificacin para observar si existe algn
ciclo.
Este mtodo est basado en suponer que un interbloqueo no ser presente y que los recursos del
sistema que han sido asignados, se liberarn en el momento que otro proceso lo requiera.
Una comprobacin para interbloqueo puede hacerse con igual o menor frecuencia que cada
solicitud de recursos, dependiendo de que tan probable es que ocurra un interbloqueo. Comprobar cada
solicitud de recursos tiene dos ventajas: Conduce a la deteccin temprana y el algoritmo es simple, de
manera relativa porque se basa en cambios crecientes al estado del sistema. Adems, las
comprobaciones frecuentes consumen un tiempo considerable de procesador.
El empleo de algoritmos de deteccin de interbloqueo implica cierto gasto extra durante la ejecucin. As
pues, se presenta de nuevo la cuestin de costeabilidad, tan habitual en los sistemas operativos. Los
algoritmos de deteccin de interbloqueo determinan por lo general si existe una espera circular.
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, todava es posible evitarlos por medio de una restriccin en la asignacin 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 mtodo para evitar los interbloqueo consiste en requerir informacin adicional sobre cmo se
solicitar los recursos. Esta informacin puede ser:
La necesidad mxima de recursos de los procesos que se est ejecutando
La asignacin actual de recursos a procesos
La cantidad actual de instancias libres de cada recurso
En base al orden en que se solicitarn los recursos, se puede tomar la decisin de ejecutar el proceso o si
debe esperar. Por lo tanto, la evitacin del interbloqueo solo anticipa la posibilidad de interbloqueo y
asegura que no exista nunca tal posibilidad.
En los mecanismos para evitar interbloqueos viene relacionado los estados seguros e inseguros de los
procesos en los sistemas operativos.
Los estados seguros e inseguros
Un estado de asignacin de recursos se considera seguro si en l no hay posibilidad de interbloqueo. Para
que un estado sea seguro, es necesario que los procesos formen una secuencia segura. Una secuencia
segura es una ordenacin de los procesos de modo que los recursos que an puede pedir cualquier
proceso pueden ser otorgados con los recursos libres ms los recursos retenidos por los dems procesos.
En base a ello, cuando un proceso realice una solicitud de recursos, el sistema se los conceder slo en el
caso de que la solicitud mantenga al sistema en un estado seguro. Un estado inseguro es aquel en el que
puede presentarse un interbloqueo.
An presentndose las condiciones para un interbloqueo, todava es posible evitarlo mediante una
asignacin cuidadosa de los recursos. Tal vez el algoritmo ms famoso para evitar el interbloqueo sea el
algoritmo del banquero de Dijkstra, cuyo interesante nombre se debe a que un banquero que otorga
prstamos y recibe pagos a partir de una determinada fuente de capital.


Algoritmo Dijkstra
El algoritmo del banquero permite la asignacin de unidades de cinta a los usuarios solamente cuando la
asignacin conduzca a estados seguros, y no a estados inseguros. Un estado seguro es una situacin tal
en la que todos los procesos son capaces de terminar en algn momento. Un estado inseguro es aquel
en el cual puede presentarse un bloqueo mutuo.
Ejemplos de interbloqueo
El Interbloqueo se puede definir como el bloque permanente de un conjunto de procesos que compiten por
los recursos del sistema, todos los interbloqueos suponen necesidades contradictorias de recursos, por
parte de dos o ms procesos.
Un ejemplo clsico de interbloqueo es el interbloqueo de trfico


2.- Ahora se describe una situacin de interbloqueo, en la que intervienen procesos y recursos
informticos, al siguiente grfico se le asigna la siguiente forma:

n Proceso P Proceso Q
Obtener A Obtener B
Obtener B Obtener A
Liberar A Liberar B
Liberar B Liberar A


El que se produzca interbloqueo o no, depende de la dinmica de la ejecucin, por ejemplo; supngase
que p no necesitara ambos recursos en el mismo instante y tuviera la siguiente forma:
Proceso P
Obtener A
Liberar A
Obtener B
Liberar B
Ejemplo Ilustrativo:
Dos procesos compiten por el acceso exclusivo a un archivo D del disco y a una unidad de cinta C.
Guiarse por la tabla 6.4, el interbloqueo se produce si un proceso pide un recurso y retiene otro.
p0p1q0q1p2q2
Esta es la forma para que se produzca un interbloqueo en un sistema multiprogramado.



Estrategias para Resolver Interbloqueos [DEIT93] [STAL95]
Los resultados de la investigacin sobre el bloqueo mutuo han sido satisfactorios en
cuanto a que se han encontrado mtodos limpios y rpidos para manejar la mayora de
los problemas ms comunes. Existen cuatro reas de inters relacionadas con los
interbloqueos que pueden resumirse como prevencin, tcnicas para evitarlos, deteccin
y recuperacin de los mismos.
En la prevencin del interbloqueo interesa ajustar el sistema para eliminar toda
posibilidad de que ocurra un bloqueo mutuo. La prevencin suele funcionar pero sus
mtodos ocasionan, en general, un aprovechamiento pobre de los recursos. No obstante,
estos mtodos se utilizan con frecuencia.
Las tcnicas que tienen como objetivo evitar el interbloqueo imponen condiciones
menos atractivas que en la prevencin, para tratar de obtener un aprovechamiento de
los recursos. No elimina como las tcnicas de prevencin todas las posibilidades de que
se produzca un bloqueo mutuo, pero se esquiva cuanto est a punto de suceder
(algoritmo del banquero de Dijkstra).
Los mtodos de deteccin del interbloqueo se utilizan en sistemas que permiten la
ocurrencia de los mismos, ya sea de manera voluntaria o involuntaria. Su objetivo es
determinar si ha ocurrido un bloqueo mutuo y saber exactamente cules son los
procesos y recursos implicados en l.
Los mtodos de recuperacin estn ntimamente ligados a los de deteccin. Sirven
para eliminar los interbloqueos detectados en un sistema para poder seguir trabajando y
para que los procesos implicados puedan terminar su ejecucin y liberen sus recursos. La
recuperacin es un problema complejo, en el mejor de los casos, los sistemas se
recuperan de un bloqueo mutuo eliminando completamente uno o varios de los procesos
implicados. Despus, se inician de nuevo los procesos eliminados, perdindose la mayor
parte o todo el trabajo previo realizado por el proceso.
Administracin de la Memoria
La parte del sistema operativo que administra la memoria se llama administrador de la memoria. Para ello
existen diferentes esquemas de administracin de memoria desde los ms simples hasta los ms
elaborados entre los cuales se ubican:
Multiprogramacin y uso de la memoria.
La multiprogramacin facilita la programacin de una aplicacin al dividirla en dos o mas procesos. La
mayora de los procesos tardan cierto tiempo en la espera de datos de dispositivos E/S.
Multiprogramacin con particiones fijas
El objetivo en todo esto es tener ms de un proceso en memoria a la vez, solucin posible sera dividir la
memoria en n partes al inicio de una sesin de uso de la mquina, pero an as se obtiene el desperdicio
de particiones grandes con una tarea pequea, la respuesta puede ser tener particiones pequeas
tambin.
Las tareas que van llegando se forman hasta que una particin adecuada est disponible, en cuyo
momento la tarea se carga en esa particin y se ejecuta hasta terminar.
Intercambio
En un sistema por lotes la organizacin de la memoria en particiones fijas es adecuado pero en un
ambiente multiusuario la situacin es distinta con el tiempo compartido, ya que existen ms usuarios de
los que puede albergar la memoria, por lo que es conveniente albergar el exceso de los procesos en
disco., por supuesto para ser ejecutados estos procesos deben ser trasladados a la memoria principal. Al
traslado de procesos de disco a memoria y viceversa se le llama intercambio.
Multiprogramacin con particiones variables.
Mediante un algoritmo de administracin de memoria las particiones variables varan de forma dinmica
durante el uso de la mquina, evitando desperdicio de memoria
Otros mtodos de administracin de memoria que tenemos son:
la administracin de memoria con mapa de bits
la memoria se divide en unidades de asignacin, a cada asignacin le corresponden un bit en el mapa de
bits, un mapa de bits es una forma sencilla para llevar un registro de las palabras de la memoria en una
cantidad fija de memoria.
Memoria Virtual
El mtodo diseado por Fotheringham en 1961 se conoce como Memoria Virtual, la idea es que el
tamao combinado de la pila, programa y datos puede exceder la memoria fsica disponible para ello. El
S.O. mantiene en memoria aquellas partes del programa que se deben permanecer en memoria y el resto
lo deja en disco, las partes entre el disco y la memoria se intercambian de modo que se vayan
necesitando.
Paginacin
El espacio de direcciones de cada proceso se divide en bloques de tamao uniforme llamados pginas,
los cuales se pueden colocar dentro de cualquier pgina marco disponible en memoria. Cuando las tablas
de pginas son muy grandes se puede utilizar un esquema de paginacin de varios niveles para que las
pginas se paginen a s mismas.
Sistemas operativos monoprogramados Vs multiprogramados. Tiempo compartido.
Sistemas monoprogramados son aquellos que slo son capaces de ejecutar una instruccin a la vez ( Ej.
MSDOS).
Sistemas multiprogramados, quizs sea la tcnica ms importante para obtener gran eficiencia en un
sistema informtico, la multiprogramacin es una tcnica que aprovecha los tiempos muertos de la
computadora central, los tiempos muertos en perifricos y los espacios de memoria principal no ocupados
por el proceso, consiste en esencia en cargar en la memoria principal varios procesos.
La multiprogramacin es una tcnica que aprovecha los tiempos muertos de la computadora central, los
tiempos muertos en perifricos y los espacios de memoria principal no ocupados por el proceso, consiste
en esencia en cargar en la memoria principal varios procesos.
Hay tres tipos de multiprogramacin:
Multiprogramacin clsica:
El dispatcher da el turno a un trabajo P1, cuando P1 ha de realizar una operacin de E/S da el turno a P2
hasta que este a su vez realiza otra instruccin de E/S pasndose a ejecutar P3 y as sucesivamente se va
repartiendo el tiempo entre varios trabajos. Cuando P1 acaba la operacin de E/S, el perifrico utilizado
para dicha operacin comunica el hecho a la CPU dndole el dispatcher la vez la prxima ocasin que le
toque el turno.
Tratamiento paralelo:
El tipo de multiprogramacin descrito anteriormente tiene el problema de que un programa con mucha
CPU y poca E/S, puede monopolizar la CPU hasta que termine su ejecucin, esto se evita con el
tratamiento paralelo, con l, a cada uno de los procesos en memoria se le asigna un intervalo de tiempo
fijo denominado quantum, cuando finaliza el quantum de un proceso el dispatcher pasa el control al
siguiente proceso.
Tiempo compartido:
El tipo de multiprogramacin que se acaba de describir sigue teniendo tiempos muertos de CPU, bien
porque un proceso durante su quantum pasa a E/S o bien porque cuando le toca el turno aun est en
una operacin de E/S .
Con el tiempo compartido (time sharing) se produce un cambio de proceso en la CPU por dos razones,
que se agote el quantum del proceso en curso o que el proceso que se est ejecutando en CPU pase a
E/S durante su quantum. Adems, el siguiente programa slo entrar en la CPU cuando le toque el turno
y est listo si no lo perder y pasar al siguiente.

También podría gustarte