Title: Interbloqueo ( deadlock, abrazo mortal)
1Sistemas en tiempo real (STR) Segunda parte
2Acciones atómicas
- Hasta aquí la comunicación entre dos procesos se
expreso como una comunicación simple.
No siempre ocurre así Ej extraccion por cajero
automático
Necesito que todos vean un estado consistente del
sistema Estado valores de las variables en un
momento dado de tiempo
3Acciones atómicas
- Traspaso de fondos de una cuenta bancaria a otra
- Proceso de pedido de transferencia
- Proceso de autenticación de cliente
- Proceso de autenticación de cuenta a la que se
transfiere - Proceso de debito
- Proceso de Acreditación
Acción atómica
4Acciones atómicas
- Una acción es atómica si los procesos que la
realizan no saben de la existencia de ningún otro
proceso activo, y ningún otro proceso activo
tiene constancia de las actividades de los
procesos durante el tiempo en el que están
realizando la acción. - Una acción es atómica si los procesos que la
realizan no se comunican con otros procesos
mientras se está realizando la acción.
5Acciones atómicas
- Una acción es atómica si los procesos que la
realizan no pueden detectar ningún cambio de
estado salvo aquellos realizados por ellos
mismos, y si no revelan sus cambios de estado
hasta que la acción se haya completado. - Las acciones son atómicas si, en lo que respecta
a otros procesos, pueden ser consideradas
indivisibles e instantáneas, de forma que los
efectos sobre el sistema sean como si estuvieran
entrelazadas y no en concurrencia.
6Acciones atómicas de dos fases
- Primer fase
- Petición de recursos
- Segunda fase
- Liberación de recursos
Si se liberan recursos antes que la acción
atómica finalice puede existir problemas con la
recuperación de un fallo
7Control de recursos
- Parte del comportamiento lógico del software de
tiempo real está relacionado con la asignación de
recursos.
8Control de recursos
- Tienen injerencia los procesos competitivos.
- Aunque no se comuniquen entre ellos, pueden
comunicarse para coordinar el acceso a recursos. - Muy pocos recursos admiten el acceso concurrente
de procesos.
9Control de recursos
- Cuando varios procesos que compiten necesiten
recursos el modo de operación es el siguiente - Petición del recurso
- Utilización
- Liberación
10Petición de recursos
- Un recurso se puede solicitar con
- Acceso compartido se puede utilizar
concurrentemente por más de un proceso. - Acceso exclusivo acceso en cada instante a un
único proceso. - Algunos se pueden utilizar e cualquier modo
11Petición de recursos
- Si un proceso pide acceso compartido mientras
otro lo está usando en forma exclusiva ,entonces
debe esperar. - Si se estaba usando en forma compartida puede
seguir.
12Petición de recursos
- Como los procesos pueden bloquearse al solicitar
recursos, no deben pedirlos hasta que lo
necesiten. - Una vez asignados deben liberarse tan pronto como
sea posible, una vez que la acción que se quería
realizar con el recurso haya finalizado
13Interbloqueo ( deadlock, abrazo mortal)
- Dos procesos forman un interbloqueo cuando cada
uno mantiene un recurso mientras que espera el
recurso mantenido por el otro.
type Sem is ... X Sem 1 Y Sem 1
task A task body A is begin ... Wait(X) Wait
(Y) ... end A
task B task body B is begin ... Wait(Y) Wait
(X) ... end B
14Interbloqueo activo
- Dos procesos forman un interbloqueo activo si
cada uno se ejecuta, pero ninguno es capaz de
avanzar.
type Indicador is (Arriba, Abajo) Indicador1
Indicador Arriba
task A task body A is begin ... while
Indicador1 Arriba loop null end loop
... end A
task B task body B is begin ... while
Indicador1 Arriba loop null end loop
... end A
15Inanición
- Varios procesos están intentando continuamente
conseguir acceso exclusivo al mismo recurso. Si
la política con que se asignan no es justa, puede
que un proceso no acceda nunca al recurso.
16Condiciones para el interbloqueo
- Exclusión mutua solo un proceso puede usar un
recurso al mismo tiempo. - Mantenimiento y espera debe haber procesos que
mantengan recursos mientras esperan otros. - No desalojo un recurso solo puede ser liberado
voluntariamente por un proceso - Espera circular debe existir una cadena circular
de procesos, de forma que cada proceso mantenga
recursos que solicita el siguiente proceso.
17Métodos para tratar el interbloqueo
- Prevención de interbloqueo
- Evitar el interbloqueo
- Detección y recuperación del interbloqueo