Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Rina Arauz
Deriva del hecho de que en un sistema multiprogramado los procesos compiten por un conjunto limitado de recursos Se puede, en estas condiciones, producir la situacin siguiente: P0 espera por un recurso asignado a P1, el cual espera por un recurso asignado a P2 que espera por un recurso asignado a P0 Como consecuencia, ningn proceso evoluciona Se dice que estn en abrazo mortal o interbloqueados
Sincronizacin de procesos 2
Se usa
Se devuelve
Sincronizacin de procesos 3
Tipos de recursos
Recursos apropiables (memoria): se pueden tomar del proceso que los posee sin producir daos Recursos no apropiables (impresora): slo pueden ser utilizados por un proceso a la vez Los abrazos mortales pueden darse tanto con recursos hardware (impresora) como software (semforos) Cada recurso puede tener varios ejemplares Un conjunto de procesos se bloquea si cada proceso del conjunto espera un evento que slo puede ser provocado por otro proceso del conjunto
Sincronizacin de procesos 4
Condiciones
Exclusin mutua: los recursos implicados deben ser no compartibles Posesin y espera: deben existir procesos que tienen asignados recursos y estn esperando por otros recursos asignados a otros procesos No apropiacin: los recursos son liberados voluntariamente. No hay requisa Espera circular: P0 espera por P1, P1 por P2, P2 por P3, ..., Pn-1 por Pn y Pn por P0 Si no se producen las cuatro condiciones de forma simultnea, no existe el abrazo mortal
Sincronizacin de procesos 5
Sirven para describir el abrazo mortal Consta de un conjunto de vrtices (V) y un conjunto de flechas (F) Dos tipos de vrtices: Procesos P = {P1, P2, ... Pn} y Recursos R = {R1, R2, ..., Rm} Dos tipos de flechas: De asignacin Rj Pi De peticin Pi Rj
Sincronizacin de procesos 6
Ejemplo
P1 R3
R1 P2
R2
P3
Sincronizacin de procesos 7
Ejemplo
P1
R1
P2
R2
Si en el grafo no existen ciclos se puede demostrar que no existe abrazo mortal, pero si existen ciclos, ste puede aparecer
Sincronizacin de procesos 8
Solucin: eliminar una cualesquiera de las cuatro condiciones necesarias para que ste se produzca Exclusin mutua En general no podremos modificar este aspecto Razn: existen recursos intrnsecamente no compartibles
Sincronizacin de procesos 9
Posesin y espera Mtodos: Los procesos al comienzo de su ejecucin solicitan todos los recursos que van a necesitar Conceder recursos slo a los procesos que no poseen ninguno. Antes de pedir un recurso tiene que liberar los que en este momento posee Problemas: baja utilizacin de los recursos y posible inanicin
Sincronizacin de procesos 10
No apropiacin Mtodo: si un proceso solicita un recurso, y ste no est disponible, nos apropiamos de todos los recursos que posee Problema: existen recursos que no pueden ser asignados y retirados cuando nos de la gana
Sincronizacin de procesos 11
Espera circular Mtodo: asignamos a cada recurso un nmero natural N que lo diferencie del resto Si obligamos a que los procesos soliciten los recursos en orden creciente acorde a sus nmeros, nunca puede producirse el abrazo mortal
Sincronizacin de procesos 12
Mtodos alternativos
Los mtodos que describiremos van a ser ms efectivos, a costa de mantener mayor informacin En funcin de esa informacin, podremos proponer diversos algoritmos para evitar el bloqueo Los algoritmos ms sencillos y efectivos se basan en conocer la cantidad mxima de recursos que va a necesitar cada proceso En funcin de esa cantidad mxima de recursos y del estado actual de asignacin, el algoritmo determinar si las nuevas solicitudes son satisfechas o no, con objeto de evitar los estados inseguros
Sincronizacin de procesos 13
Qu se puede hacer con el abrazo mortal? Preasignacin de recursos Asignacin con restricciones Deteccin y recuperacin Ignorarlo La ltima alternativa es la ms simple y la menos efectiva, pero quizs sea la ms ampliamente utilizada
Sincronizacin de procesos 14
Preasignacin de recursos
Cuando un proceso comienza determina los recursos que va a usar Cuando todos estn disponibles, comienza Utilizado en el sistema OS/360 Inconvenientes: Es necesario conocer a priori los recursos que se van a emplear Puede que algn recurso solicitado no se emplee Se obtiene una baja utilizacin de los mismos
Sincronizacin de procesos 15
El usuario est obligado a establecer a priori qu recursos va a utilizar Al contrario que en el caso anterior, el proceso comienza su ejecucin y se le van asignando recursos dinmicamente Antes de asignar los recursos se comprueba que el sistema permanece en un estado seguro Qu es un estado seguro?
Sincronizacin de procesos 16
Estado seguro
Se dice que un estado es seguro si el sistema puede asignar, en algn orden, recursos a los procesos evitando el abrazo mortal
Proceso P1 P2 P3 Necesidad mxima 9 7 3 Asignados 3 4 1
Si inicialmente tenemos 8 ejemplares del recurso la secuencia <P3, P2, P1> permite la finalizacin de los tres procesos
Sincronizacin de procesos 17
Ejemplos
Caso 1: 1 recurso libre. Estado seguro?
Proceso P1 P2 P3 P4 Proceso P1 P2 P3 P4 Necesidad mxima 10 9 5 3 Asignados 3 4 2 2
Los estados inseguros no siempre conducen a un abrazo mortal Un estado con un abrazo mortal es un estado inseguro Si los estados son seguros el sistema operativo evita los abrazos mortales
Estado inseguro Estado seguro
Abrazo mortal
Sincronizacin de procesos 19
Se denomina as porque puede utilizarse en un banco para asegurar que el banco siempre disponga del suficiente dinero efectivo para satisfacer la necesidad de todos sus clientes Cuando un proceso inicia su sesin, debe declarar la mxima cantidad de recursos que va a necesitar Si esta cantidad es mayor que la cantidad disponible, el proceso no se puede ejecutar A partir de este punto, el sistema asignar los recursos, mantenindose siempre en un estado seguro
Sincronizacin de procesos 20
Disponibles: es un vector de longitud m que indica el nmero de recursos disponibles de cada tipo Si Disponible[i]=k, quiere decir que hay k ejemplares del recurso Ri disponibles Mximo: es una matriz de n x m elementos que define la mxima demanda de recursos de cada proceso Si Mximo[i,j]=k, Entonces el proceso Pi puede requerir hasta un mximo de k ejemplares del recurso Rj
Sincronizacin de procesos 21
Asignados: es una matriz de n x m elementos que define el nmero de ejemplares de cada recurso que estn asignadas en ese momento Si Asignados[i,j]=k quiere decir que el proceso Pi tiene asignados k ejemplares del recurso Rj Necesitados: es una matriz de n x m elementos que indica el nmero de ejemplares necesitados por cada uno de los procesos en un instante determinado Si Necesitados[i,j]=k, entonces el proceso Pi necesita k ejemplares ms del recurso Rj
Sincronizacin de procesos 22
Notacin
Obsrvese que: Necesitados[i,j] = Max[i,j] - Asignados[i,j] Si X e Y son dos vectores de longitud n, entonces X<=Y si y slo si X[i]<=Y[i] para todo i Cada columna de las matrices Necesitados y Asignados representa la situacin de cada uno de los procesos As Necesitadosi indica todas las instancias de cada recurso necesitadas por el proceso Pi
Sincronizacin de procesos 23
Algoritmo de seguridad
Sean DisponiblesAux y Terminado dos vectores de longitudes m y n respectivamente 1. Inicialmente DisponiblesAux=Disponible y Terminado[i]=FALSE para todo i 2. Encontrar un i que cumpla las condiciones: a. Terminado[i]=FALSE b. Necesitadosi<=DisponiblesAux Si no existe tal i, pasar al paso 4. 3. DisponiblesAux=DisponiblesAux+Asignadosi Terminado[i]=TRUE Ir al paso 2 4. Si Terminado[i]=TRUE para todo i, entonces el sistema est en estado seguro
Sincronizacin de procesos 25
Sincronizacin de procesos 26
Ejemplo
S: La secuencia <P1, P3, P4, P2, P0> satisface el criterio o algoritmo de seguridad
Sincronizacin de procesos 27
Ejemplo
Consideremos la peticin: Peticion1=(1, 0, 2) con ello tenemos el siguiente nuevo estado: Proceso Asignados Mximo Disponible Necesitados A B C A B C A B C A B C P0 0 1 0 7 5 3 2 3 0 7 4 3 P1 3 0 2 3 2 2 0 2 0 P2 3 0 2 9 0 2 6 0 0 P3 2 1 1 2 2 2 0 1 1 P4 0 0 2 4 3 3 4 3 1 Estado seguro? S: Secuencia <P1, P3, P4, P0, P2> Qu ocurrira si ahora Peticion4=(3,3,0)? Y con Peticion0=(0,2,0)?
Sincronizacin de procesos 28
Si un sistema no emplea una prevencin de los abrazos mortales puede ocurrir un abrazo. Entonces el sistema debe proporcionar: Un algoritmo para examinar cada estado del sistema Un algoritmo para recuperarse de los abrazos Un algoritmo de deteccin y recuperacin necesita mantener cierta informacin Adems existen ciertas prdidas cuando nos recuperamos de un abrazo (i. e. tiempo que los procesos no se ejecutan)
Sincronizacin de procesos 29
R1 P2
R2 R4 P3 P2 P3
Deteccin general
Como algoritmo de deteccin se puede emplear una variante del algoritmo de seguridad visto anteriormente Estructuras de datos: Disponibles: es un vector de longitud m que indica el nmero de recursos disponibles Asignados: es una matriz de n x m elementos que define el nmero de ejemplares de cada recurso que estn asignadas en ese momento Solicitados: es una matriz de n x m elementos que indica el nmero de ejemplares solicitados por cada proceso
Sincronizacin de procesos 31
Algoritmo
1. Inicialmente DisponiblesAux=Disponible. 2. Para cada proceso si Asignadosi!=0 Terminado[i]=FALSE, en otro caso Terminado[i]=TRUE 3. Encontrar un i que cumpla las condiciones: a. Terminado[i]=FALSE b. Solicitadosi<=DisponiblesAux Si no existe tal i, pasar al paso 5 4. DisponiblesAux=DisponiblesAux+Asignadosi Terminado[i]=TRUE Ir al paso 3 5. Si al terminar tenemos algn proceso con Terminado[i]=FALSE, estos procesos se encontrarn en abrazo mortal
Sincronizacin de procesos 32
Avisar al operador y dejar que decida Terminacin de procesos Abortar todos los proceso implicados Ir abortando procesos uno a uno hasta que eliminemos el abrazo mortal Se abortan aquellos procesos cuya terminacin conlleva menor coste Abortar un proceso no es fcil ->p.e. se pueden producir errores si se est guardando un fichero Apropiacin de recursos
Sincronizacin de procesos 33
Prioridad de los procesos Cunto tiempo se ha ejecutado y cunto le queda para terminar Cuntos y qu tipo de recursos ha usado Cuntos recursos necesita para terminar Cuntos procesos deben ser terminados Tipo de proceso: interactivo o bach
Sincronizacin de procesos 34