Buscar este blog

martes, 26 de octubre de 2010

Principios de Interbloqueo y Acciones a Realizar en Interbloqueo


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 exclusión 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.

-          Entidades: activas que corresponden con los procesos existentes en el sistema. Un SO proporciona threads que representan las entidades activas y son la unidad de ejecución del sistema.
-          Recursos existentes en el sistema: son utilizados por los procesos para llevar a cabo su valor.

Tipos de recursos:

1-Recursos reutilizables o consumibles:
Se caracteriza por que el recurso  existiendo después de que un proceso lo use queda disponible para otros procesos. El recurso es independiente de su utilización.
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 múltiples:
Una solicitud de este recurso por parte de un proceso podría satisfacerse con cualquier ejemplar del mismo.

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. A continuación se analizaran cada una de estas cuatro condiciones para ver  si es posible establecer estrategias que aseguren que no puede cumplirse.

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.

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, asi como también retrasa el inicio de los procesos al tener que esperar por la liberación de todos los recursos.

SIN EXPROPIACION.
 La tercera condición especifica que a un proceso no se le pueden expropiar los recursos que ya tiene asignados,  hasta que el mismo los libere voluntariamente. Para esta condición no existe una alternativa viable debido a que existen recursos que en ningún momento pueden ser retirados a un proceso mientras estén en ejecucion. Al igual que en la exclusión mutua un ejemplo seria la impresora.

La ultima 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.

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 que 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.
El empleo de algoritmos de detección de interbloqueo implica cierto gasto extra durante la ejecución. Así pues, se presenta de nuevo la cuestión de costeabilidad, tan habitual en los sistemas operativos. Los algoritmos de detección 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, 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
En base al orden en que se solicitarán los recursos, se puede tomar la decisión de ejecutar el proceso o si debe esperar. Por lo tanto, la evitación 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 asignación 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 ordenación de los procesos de modo que los recursos que aún puede pedir cualquier proceso pueden ser otorgados con los recursos libres más los recursos retenidos por los demás procesos. En base a ello, cuando un proceso realice una solicitud de recursos, el sistema se los concederá sólo 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.
Aún presentándose las condiciones para un interbloqueo, todavía es posible evitarlo mediante una asignación cuidadosa de los recursos. Tal vez el algoritmo más famoso para evitar el interbloqueo sea el algoritmo del banquero de Dijkstra, cuyo interesante nombre se debe a que un banquero que otorga préstamos y recibe pagos a partir de una determinada fuente de capital.
Algoritmo Dijkstra
El algoritmo del banquero permite la asignación de unidades de cinta a los usuarios solamente cuando la asignación conduzca a estados seguros, y no a estados inseguros. Un estado seguro es una situación tal en la que todos los procesos son capaces de terminar en algún 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 más procesos.
  Un ejemplo clásico de interbloqueo es el interbloqueo de tráfico

2.- Ahora se describe una situación de interbloqueo, en la que intervienen procesos y recursos informáticos, al siguiente gráfico 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 dinámica de la ejecución, por ejemplo; supóngase 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.

8 comentarios:

  1. Me sorprendo de lo bien que trabajamos y estamos muy bien integrados ;)

    ResponderEliminar
  2. Coincido con la información. por lo que estuve investigando y comparando con lo leido esta muy completa, por lo que estuve leyendo decía que el interbloqueo también es llamado bloqueo mutuo. Es todo el comentario... muy completa la información.
    (equipo reginaldo).

    ResponderEliminar
  3. hola chicos ..su información es muy completa ademas esas imagenes sirven para entender mejor el tema..sigan asi!! :D

    ResponderEliminar
  4. creo que esta informacion esta completa i las imagenes dan buen apoyo al entendimiento :P

    ResponderEliminar
  5. la informacion esta muy completa y entendible por las imagenes!!!

    ResponderEliminar
  6. How to get to the Bet365 online casino in India?
    Get your 제왕카지노 deposit amount by clicking the link at the งานออนไลน์ top right of the page. Once you have completed the kadangpintar registration process, you can use it to

    ResponderEliminar
  7. Slot Casino Site - Live Dealer Casino Software - Lucky Club
    Welcome to Lucky Club Casino. We are a casino brand that offers you a choice of slots and other games you won't find luckyclub anywhere else.

    ResponderEliminar
  8. Borgata Hotel Casino & Spa, Atlantic City - MapYRO
    Find reviews and information for Borgata 여수 출장샵 Hotel Casino & Spa in Atlantic 성남 출장마사지 City, 원주 출장샵 NJ. 상주 출장샵 Borgata Hotel Casino & Spa, Hotel & Spa, Hotel 익산 출장안마 & Spa, Casino

    ResponderEliminar