Académique Documents
Professionnel Documents
Culture Documents
Evitar el bloqueo
• El S.O. necesita conocer con anticipación que recursos requerirá un proceso
durante su tiempo de vida.
• Con esa información, el S.O. puede decidir para cada requerimiento si el proceso
debe esperar o no.
• La decisión se realiza en función de los recursos actualmente disponibles, los
asignados, y los requerimientos y liberaciones futuras de cada proceso.
• Permitir entrar a un estado de bloqueo y luego recuperarse.
Un algoritmo examina el estado del sistema para determinar si ha
ocurrido un bloqueo.
Otro algoritmo maneja la recuperación desde el bloqueo.
• Ignorar el problema.
Ante un bloqueo el sistema sufrirá un deterioro en su perfomance
Eventualmente el sistema se detendrá y necesitará reinicio manual.
Es usado en algunos sistemas operativos.
No apropiación
Alternativa 1:
Si un proceso que está reteniendo algunos recursos, requiere otro recurso
que no se le puede asignar inmediatamente, entonces todos los recursos que
tiene retenidos le son apropiados.
Los recursos apropiados son agregados a la lista de recursos que el proceso
está esperando.
El proceso se reinicia sólo cuando recupera sus viejos recursos junto con los
nuevos que esta requiriendo.
Alternativa 2:
Si un proceso requiere recursos, primero chequear si están disponibles.
Si están, entonces asignarlos.
Si no están, chequear si están asignados a algún otro proceso que esté
esperando recursos adicionales.
Si es así, apropiar los recursos deseados al proceso que está esperando y
asignárselos al proceso que los requiere.
Si los recursos requeridos no están disponibles ni retenidos por otro proceso
en espera, entonces el proceso debe esperar.
Espera circular
Imponer un orden a todos los tipos de recursos del sistema
Cada proceso debe requerir recursos en un orden creciente de
enumeración.
Implementación:
Asignar a cada tipo de recurso un número entero único
Formalmente se define una función F: R → N con
R={R1,R2,...,Rm}
La función F debe ser definida de acuerdo al orden de utilización
normal de los recursos en el sistema.
Protocolo:
Alternativa 1:
Un proceso puede inicialmente requerir cualquier número de instancias de
un tipo de recurso Ri
Después el proceso puede requerir instancias de un recurso Rj si y solo si
F(Rj) > F(Ri)
Si son necesarias varias instancias de un mismo tipo de recurso, debe
emitirse un único requerimiento para todas ellas.
Alternativa 2:
Cuando un proceso requiere una instancia de un recurso tipo Rj, debe
haber liberado todos los recursos de tipo Ri tal que F(Ri) ≥ F(Rj)
Evitando el bloqueo
• Se requiere información adicional acerca de cómo van a ser solicitados los
recursos.
• Con el conocimiento de la secuencia completa de requerimientos y liberaciones
para cada proceso, el sistema, ante cada requerimiento, considera:
Los recursos actualmente disponibles
Los recursos actualmente asignados a cada proceso
Los requerimientos y liberaciones futuras de cada proceso
y decide si el requerimiento puede ser satisfecho, o el proceso debe esperar para
evitar un posible bloqueo en el futuro.
• Los algoritmos para evitar el bloqueo difieren en la cantidad y tipo de
información que requieren.
• El modelo más simple y útil requiere que cada proceso declare el máximo
número de recursos de cada tipo que puede necesitar.
• Con esta información el algoritmo asegura que el sistema nunca entrará en un
estado de bloqueo.
• Un algoritmo para evitar el bloqueo examina dinámicamente el estado de
asignación de recursos para asegurar de que nunca puede hacer una condición
de espera circular.
• El estado de asignación de los recursos está definido por el número de recursos
disponibles y asignados, y las máximas demandas de los procesos.
Estado seguro
• Un sistema está en un estado seguro sólo si existe una secuencia segura.
• Una secuencia de procesos <P1,P2,....,Pn> es segura si por cada Pi, los recursos
que Pi puede aún requerir, pueden ser satisfechos por los recursos actuales
disponibles más los recursos retenidos por todos los Pj con j<i.
• Si la secuencia no existe, entonces se dice que el estado del sistema es inseguro.
• No todos los estados inseguros son bloqueos. Un estado inseguro puede
conducir a un bloqueo.
• Mientras el estado sea seguro, el S.O. puede evitar estados inseguros.
Algoritmo del grafo de asignación de recursos
• Si para cada tipo de recurso existe sólo una instancia, una variante del grafo de
asignación de recursos puede ser usada para la evitación del bloqueo.
• La seguridad del sistema se chequea mediante un algoritmo que detecta ciclos en
el grafo.
Apropiación de recursos
• Se trata de apropiar sucesivamente recursos de los procesos para darlos a otros
procesos hasta romper el ciclo del bloqueo.
• Esto implica resolver tres cuestiones:
Selección de una víctima
Rollback
Inanición