Sie sind auf Seite 1von 33

AGENDA

Semana 07: Bloqueos Mutuos

Principios , condiciones y modelacin de bloqueos


Prevencin, prediccin, deteccin, recuperacin e inanicin de
bloqueos mutuos
Desarrollo de casos

Ing. CIP Elvis Henry Guzman Aquije

Diapositiva N2

Definicin
El bloqueo mutuo (tambin conocido como interbloqueo, traba
mortal, deadlock, abrazo mortal) es el bloqueo permanente o que
monopoliza un conjunto de procesos o hilos de ejecucin en
un sistema concurrente que compiten por recursos del sistema o
bien se comunican entre ellos. A diferencia de otros problemas de
concurrencia de procesos, no existe una solucin general para los
interbloqueos. Todos los interbloqueos surgen de necesidades
contradictorias o que no pueden ser satisfechas, por parte de dos o
ms procesos.
En el siguiente ejemplo, dos procesos compiten por dos recursos que
necesitan para funcionar, que slo pueden ser utilizados por un
proceso a la vez. El primer proceso obtiene el permiso de utilizar uno
de los recursos (adquiere el lock sobre ese recurso). El segundo
proceso toma el lock del otro recurso, y luego intenta utilizar el
recurso ya utilizado por el primer proceso, por lo tanto queda en
espera. Cuando el primer proceso a su vez intenta utilizar el otro
recurso, se produce un interbloqueo, donde los dos procesos esperan
la liberacin del recurso que utiliza el otro proceso.
Ing. CIP Elvis Henry Guzman Aquije

Diapositiva N3

Representacin de Bloqueos Mutuos


El Bloqueo mutuo tambin puede ser representado
usando grafos dirigidos, donde el proceso es representado
por un cuadrado y el recurso, por un crculo. Cuando un
proceso solicita un recurso, una flecha es dirigida del
crculo al cuadrado. Cuando un recurso es asignado a un
proceso, una flecha es dirigida del cuadrado al crculo.
En la figura del ejemplo, se pueden ver dos procesos
diferentes (A y B), cada uno con un recurso diferente
asignado (R1 y R2). En este ejemplo clsico de bloqueo
mutuo, es fcilmente visible la condicin de espera
circular en la que los procesos se encuentran, donde cada
uno solicita un recurso que est asignado a otro proceso
Ing. CIP Elvis Henry Guzman Aquije

Diapositiva N4

Condiciones para Generar Bloqueos (I)


Tambin conocidas como condiciones de
Coffman por su primera descripcin en 1971 en
un artculo escrito por E. G. Coffman. Estas
condiciones deben cumplirse simultneamente
y no son totalmente independientes entre ellas.
Sean los procesos P0, P1, ..., Pn y los
recursos R0, R1, ..., Rm:

Ing. CIP Elvis Henry Guzman Aquije

Diapositiva N5

Condiciones para Generar Bloqueos (II)


Condicin de exclusin mutua: existencia de al menos de un
recurso compartido por los procesos, al cual slo puede acceder uno
simultneamente.
Condicin de retencin y espera: al menos un proceso Pi ha
adquirido un recurso Ri, y lo retiene mientras espera al menos un
recurso Rj que ya ha sido asignado a otro proceso.
Condicin de no expropiacin: los recursos no pueden ser
expropiados por los procesos, es decir, los recursos slo podrn ser
liberados voluntariamente por sus propietarios.
Condicin de espera circular: dado el conjunto de
procesos P0...Pm(subconjunto del total de procesos original),P0 est
esperando un recurso adquirido por P1, que est esperando un
recurso adquirido por P2,... ,que est esperando un recurso adquirido
por Pm, que est esperando un recurso adquirido por P0. Esta
condicin implica la condicin de retencin y espera.
Ing. CIP Elvis Henry Guzman Aquije

Diapositiva N6

Prevencin de Bloqueos mutuos


Los bloqueos mutuos pueden prevenirse asegurando que no suceda alguna de
las condiciones necesarias vistas anteriormente.
Eliminando la exclusin mutua: ningn 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 tambin pueden ocurrir
interbloqueos.
La condicin de posesin 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 tambin es poco prctico en
general.
La condicin de no expropiacin puede ser tambin imposible de eliminar dado
que un proceso debe poder tener un recurso por un cierto tiempo o el
procesamiento puede quedar inconsistente.
La condicin de espera circular es la ms fcil de atacar. Se le permite a un
proceso poseer slo un recurso en un determinado momento, o una jerarqua
puede ser impuesta de modo tal que los ciclos de espera no sean posibles.
Ing. CIP Elvis Henry Guzman Aquije

Diapositiva N7

Inanicin
Un livelock es similar a un deadlock, excepto que el estado de los dos
procesos envueltos en el livelock constantemente cambia con
respecto al otro. Livelock es una forma de inanicin y la definicin
general slo dice que un proceso especfico no est procesando.
En un ejemplo del mundo real, un livelock ocurre por ejemplo cuando
dos personas, al encontrarse en un pasillo angosto avanzando en
sentidos opuestos, y cada una trata de ser amable movindose a un
lado para dejar a la otra persona pasar, pero terminan movindose
de lado a lado sin tener ningn progreso, pues ambos se mueven
hacia el mismo lado, al mismo tiempo.
Livelock es un riesgo con algunos algoritmos que detectan y
recuperan los interbloqueos, pues si ms de uno toma cartas en el
asunto, la deteccin del interbloqueo puede ser disparada
continuamente; pudiendo ser arreglado asegurndose que slo un
proceso (escogido al azar o por prioridad) tome accin.
Ing. CIP Elvis Henry Guzman Aquije

Diapositiva N8

Algoritmos para resolver Bloqueos


Los bloqueos mutuos pueden ser evitados si se sabe cierta
informacin sobre los procesos antes de la asignacin de recursos.
Para cada peticin 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 nmero y tipo de todos los recursos en existencia,
disponibles y requeridos. Existen varios algoritmos para evitar
bloqueos mutuos:
Algoritmo de asignacin de recursos.
Algoritmo del banquero, introducido por Dijkstra.
Algoritmo de solicitud de recursos.

Ing. CIP Elvis Henry Guzman Aquije

Diapositiva N9

Algoritmo de Asignacin de Recursos


El problema de la asignacin de recursos hace referencia a la
asignacin de tareas a empleados, de territorios a vendedores, de
contratos a postores o de trabajos a plantas, etc. En otras palabras, a
la disposicin de algunos recursos (mquinas o personas) para la
realizacin de ciertos productos a 'costo mnimo, siendo una
descripcin apropiada de lo que trata de lograr el modelo de asignacin
es:
La mejor persona o elemento para realizar el trabajo
En su forma ms general, el problema es como sigue: Hay un nmero
de agentes y un nmero de tareas. Cualquier agente puede ser asignado
para desarrollar cualquier tarea, contrayendo algn coste que puede
variar dependiendo del agente y la tarea asignados. Es necesario, para
desarrollar todas las tareas, asignar un solo agente a cada tarea para
que el coste total del asignacin sea minimizado
Ing. CIP Elvis Henry Guzman Aquije

Diapositiva N10

Definicin (II)
Un problema de asignacin es aquel en el que se tiene M
recursos que pueden ser asignados a M aplicaciones, de
tal manera que cada recurso podr ser asignado a una sola
aplicacin en un cierto momento.
Por ejemplo si tenemos 9 individuos con los que se
conformara un equipo de baseball; al estar en el campo, tan
solo uno puede ser el Pitcher, uno el Ctcher, otro ocupara
la primera base y as hasta completar la 9na posicin.
Podemos observar que hay 9 posibilidades de asignacin.
Vindolo de otra forma el numero posible de acomodos o
asignaciones diferentes de 9 personas para formar un
equipo de baseball es 9! o sea 362,880.

Ing. CIP Elvis Henry Guzman Aquije

Diapositiva N11

Definicin (IV)
La asignacin de cada recurso a
cada aplicacin tiene un costo
asociado y el problema consiste
en determinar que uso debe
drsele a cada recurso, de tal
manera que el costo total sea
mnimo. El procedimiento a usar
para la solucin de este tipo de
problemas ser el Mtodo
Hngaro.

Ing. CIP Elvis Henry Guzman Aquije

Diapositiva N12

Suposiciones de un Problema de Asignacin


1.

2.
3.
4.

5.

El nmero de asignados es igual al nmero de


tareas (se denota por n). (esto puede variar).
Cada asignado se asigna exactamente a una
tarea.
Cada tarea debe realizarla exactamente un
asignado.
Existe un costo cij asociado con el asignado i
(i=1,2,,n).
El objetivo es determinar cmo deben hacerse
las asignaciones para minimizar los costos
totales.
Ing. CIP Elvis Henry Guzman Aquije

Diapositiva N13

Algoritmo del Mtodo Hngaro


1.
2.

3.

4.

5.

Seleccionar una fila o columna


A todos los elementos de cada columna o fila (segn seleccin) restar el menor elemento de la columna o fila
(segn seleccin). En la matriz resultante, restar a todos los elementos de cada fila (si se selecciono columna)
o columna si se selecciono fila, el menor elemento de la fila o columna. As se garantiza la obtencin de por lo
menos un cero en cada fila y columna.
Con la matriz resultante, verificar la existencia de una solucin ptima. Para encontrarla se debe asignar un
cero a cada fila (comenzando por las que tengan menor N de ceros), y cancelar los dems ceros de esa fila y
los ceros de la columna en la que se encuentra ese cero. Repetir esta operacin hasta que no queden ceros sin
asignar o cancelar. Si no existe solucin ptima ir al paso 3.
Realizar lo siguiente:

a)
b)
c)
d)

Marcar con un * todas la filas que no contengan ceros asignados.


Marcar todas las columnas que contengan uno o ms ceros cancelados en alguna fila marcada.
Marcar toda fila que tenga un cero asignado en una columna marcada.
Repetir b) y c) hasta que no sea posible marcar ms filas o columnas. e) Poner un trazo (lnea) sobre toda fila no marcada
y sobre toda columna marcada.

Tomar el menor nmero no atravesado por un trazo (lnea) y: Restarlo a todos los elementos de las filas no
atravesadas. Sumarlo a todos los elementos de columnas atravesadas. Volver al paso 2.
Ing. CIP Elvis Henry Guzman Aquije

Diapositiva N14

Ejercicio 1(I)
La compaa de manufactura "Jimnez y Asociados" desea
realizar una jornada de mantenimiento preventivo a sus
tres mquinas principales A, B y C. El tiempo que demanda
realizar el mantenimiento de cada mquina es de 1 da, sin
embargo la jornada de mantenimiento no puede durar ms
de un da, teniendo en cuenta que la compaa cuenta con
tres proveedores de servicios de mantenimiento debe de
asignarse un equipo de mantenimiento a cada mquina
para poder cumplir con la realizacin del mantenimiento
preventivo. Teniendo en cuenta que segn el grado de
especializacin de cada equipo prestador de servicios de
mantenimiento el costo de la tarea vara para cada
mquina en particular, debe de asignarse el equipo
correcto a la mquina indicada con el objetivo de
minimizar el costo total de la jornada. Los costos
asociados se pueden observar en la siguiente tabla:
Ing. CIP Elvis Henry Guzman Aquije

Diapositiva N15

Ejercicio 1(II)
Resuelto por columnas
Paso 1: Encontramos el
menor elemento de cada
columna y restarlo de la
columna respectiva.
En la columna de la Mquina
1, el menor elemento es 6.
En la columna de la Mquina
2, el menor elemento es 4
En la columna de la Mquina
3, el menor elemento es 3.
Ing. CIP Elvis Henry Guzman Aquije

Diapositiva N16

Encontramos el menor elemento de


cada fila en la matriz resultante y
restarlo de la fila respectiva.
- En la fila 1, el menor elemento es 2.
- En la fila 2, el menor elemento es 0.
- En la fila 3, el menor elemento es 0.

Ing. CIP Elvis Henry Guzman Aquije

Diapositiva N17

Paso 2: Hacemos las asignaciones


iniciando por la fila que tenga menos
ceros y tachando los ceros de las fila
y columna donde hicimos la
asignacin.
Solo hicimos dos asignaciones, pero
debimos haber hecho tres, por lo que
no logramos la solucin ptima y
pasamos al paso 3.

Ing. CIP Elvis Henry Guzman Aquije

Diapositiva N18

PASO 3: Marcamos con * las filas 1 y 2 y la columna 3. De acuerdo al algoritmo de Hngaro.

Ing. CIP Elvis Henry Guzman Aquije

Diapositiva N19

Paso 4: El menor elemento de los no atravesados en la matriz es: 2


- Se lo restamos a todos los elementos de las filas no atravesadas.
- Se lo sumamos a todos los elementos de las columnas atravesadas.

Ing. CIP Elvis Henry Guzman Aquije

Diapositiva N20

Hacemos nuevamente las asignaciones empezando por las filas que tengan menos ceros.

El orden en que asignamos es el siguiente:


- Primero asignamos el equipo 2 a la Mquina 3 y tachamos el cero que hay en la columna de la Mquina 3.
- Segundo asignamos el Equipo 1 a la Mquina 1 y tachamos el cero que hay en la columna de la Mquina 1.
- Tercero asignamos el Equipo 3 a la Mquina 1.
Ing. CIP Elvis Henry Guzman Aquije

Diapositiva N21

Por ende la asignacin que representa el menor costo para la jornada de mantenimiento
preventivo determina que:
El Equipo 1 realice el mantenimiento de la Mquina 1 a un costo de 10 soles
El Equipo 2 realice el mantenimiento de la Mquina 3 a un costo de 3 soles
El Equipo 3 realice el mantenimiento de la Mquina 2 a un costo de 4 soles
Por lo que para determinar el costo optimo de la jornada que tendr un costo total de CT=
10+4+3= 17 soles.
MAQUINA 1 MAQUINA 2 MAQUINA 3
EQUIPO MANTENIMIENTO 1
10
9
5
EQUIPO MANTENIMIENTO 2
9
8
3
EQUIPO MANTENIMIENTO 3
6
4
7

Ing. CIP Elvis Henry Guzman Aquije

Diapositiva N22

Ejemplo
1
resuelto
por
filas
3

2
5

6
Ing. CIP Elvis Henry Guzman Aquije

Diapositiva N23

Precisiones
El algoritmo del Mtodo Hngaro fue diseado bsicamente para resolver problemas de
minimizacin. Sin embargo realizando una adecuacin se puede usar tambin para la
maximizacin.
Adecuaciones:
1. Balancear la matriz: debe haber la misma cantidad de filas que de columnas, caso
contrario se deber crear filas o columnas artificiales para lograr el balance.
2. En la primera iteracin o paso se debe buscar el Mayor Valor en filas o columnas segn
la seleccin realizada.
3. Continuar con todos los pasos del Mtodo Hngaro
Ing. CIP Elvis Henry Guzman Aquije

Diapositiva N24

Ejercicio de Maximizacin
Una organizacin de recoleccin de caf cuenta con tres equipos de siembra y cosecha del
mismo (equipos 1, 2, 3). Estos equipos de trabajo se encuentran entrenados para trabajar
en condiciones particulares del proceso, condiciones como lo son el tipo de suelo, las
condiciones del clima y el tipo de grano. La organizacin cuenta con cuatro terrenos
disponibles para efectuar el proceso de siembra y cosecha (terrenos A, B, C, D), estos
terrenos tienen condiciones particulares de suelo, clima y tipo de grano. Cada equipo
cuenta con la capacidad de efectuar el proceso en solo uno de los terrenos disponibles,
salvo el equipo 2, que cuenta con una serie de herramientas tecnolgicas que le permiten
realizar la siembra y cosecha del grano en dos de los terrenos disponibles. Se ha
contratado a un Ingeniero con el objetivo de realizar las asignaciones precisas que
maximicen la cantidad de sacos de caf cosechados en total. El siguiente tabulado muestra
la capacidad (en cientos de sacos) de cosecha de caf de cada uno de los equipos
dependiendo de cada uno de los terrenos.
Ing. CIP Elvis Henry Guzman Aquije

Diapositiva N25

PASO 1: En este problema debemos recordar un concepto


fundamental para la aplicacin del mtodo hngaro, este
concepto nos dice que el nmero de filas debe ser
exactamente igual al nmero de columnas. Por ende, la
accin a realizar debera ser crear un equipo ficticio, el
cual nos deje el tabulado balanceado y a este asignarle
un nmero de sacos cosechados equivalente a cero en
cada uno de los terrenos. Sin embargo el problema nos
indica que uno de los equipos se encuentra en capacidad
de que se le asignen dos terrenos, en este caso
crearemos un equipo 2 alternativo (Equipo 2B) el cual
nos balancear el tabulado y nos har prescindir del
equipo ficticio pensado inicialmente. A este equipo 2B que
crearemos le corresponder la misma capacidad de
cosecha del equipo 2 (en adelante equipo 2A) segn el
terreno, lgicamente.
Ing. CIP Elvis Henry Guzman Aquije

Tablero Inicial

Tablero Balanceado

Diapositiva N26

Paso 2: Una vez balanceado el tabulado


debemos de cuestionarnos acerca del criterio
de optimizacin, pues recordemos que el
mtodo hngaro se encuentra diseado para
ejercicios de minimizacin. En este caso
nuestro objetivo es maximizar, por lo que
tendremos que aplicar un paso adicional. Lo
primero que debemos hacer es ubicar el
mayor valor del tabulado inicial. En este caso
este valor es 15, por lo cual procederemos a
realizar la siguiente operacin con cada uno de
los valores:
Restaremos a 15, el valor de cada una de las
celdas y este valor quedar en cada una de las
celdas correspondientes.

Ing. CIP Elvis Henry Guzman Aquije

Diapositiva N27

A partir de este tabulado ya


podemos aplicar el algoritmo
del mtodo hngaro como se
aplicara en un caso e
minimizacin (normalmente).
PASO 1:
Ahora encontramos el menor
elemento de cada fila y se lo
restamos a todas las celdas de
la fila.

Ing. CIP Elvis Henry Guzman Aquije

Diapositiva N28

Ahora efectuamos este mismo paso, pero


esta vez con las columnas. Elegimos el
menor de los valores de cada columna y se
lo restamos a cada una de las celdas de la
columna correspondiente.

Ing. CIP Elvis Henry Guzman Aquije

Diapositiva N29

Ahora procedemos a cubrir la mayor cantidad de ceros, con la menor cantidad de lneas, si el nmero de lneas que empleemos es igual al
grado de la matriz (en este caso matriz grado 4, 4x4) habremos llegado al final del ejercicio.

Ing. CIP Elvis Henry Guzman Aquije

Diapositiva N30

Dado que el nmero de lneas es igual al grado de la matriz, hemos concluido el algoritmo.
Lo nico que quedar ser asignar a cada equipo el terreno en el que el intercepto es igual
a 0 (cero).

Ing. CIP Elvis Henry Guzman Aquije

Diapositiva N31

Las asignaciones, como es lgico debern iniciarse por el equipo al cual solo corresponda
un terreno, en este caso al Equipo 3 le corresponde el Terreno A. De esta manera al Equipo
1 le corresponde el Terreno D. Mientras tanto el Equipo 2 se encargar de la cosecha en los
terrenos B y C. Segn el tabulado del problema (recordemos que es de maximizacin), la
cantidad de sacos (expresada en cientos de sacos) ser as:

Por lo tanto la cantidad de sacos cosechada ser 13+13+15+12=53


Ing. CIP Elvis Henry Guzman Aquije

Diapositiva N32

Ing. CIP Elvis Henry Guzman Aquije

Diapositiva N33

Das könnte Ihnen auch gefallen