Beruflich Dokumente
Kultur Dokumente
En un medio ambiente de multiprogramacin, varios procesos pueden competir por un nmero finito de recursos. Los recursos de un sistema son particionados en varios tipos (espacio de memoria, ciclos de CPU, archivos, dispositivos de E/S), cada uno de los cuales consiste de un nmero de instancias idnticas. Si un proceso requiere una instancia de un tipo de recurso, la asignacin de cualquier instancia del tipo satisface el requerimiento. Cuando un proceso requiere un recurso que no est disponible pasa a un estado de espera. Puede suceder que un proceso en espera nunca pueda cambiar de estado porque el recurso que ha requerido esta retenido por otro proceso en espera, esta situacin es llamada bloqueo mutuo. Los bloqueos mutuos pueden describirse ms precisamente por medio de un grafo de asignacin de recursos. Hay una variedad de situaciones de bloqueo:
un proceso Pi requiere una instancia de un recurso tipo R1 retenida por otro proceso Pj que se encuentra en espera y bloqueado. dos procesos Pi y Pj retienen una instancia de un recurso tipo R1 y R2 respectivamente. Pi requiere una instancia del recurso tipo R2 y Pj una instancia del recurso tipo R1. en un grupo de procesos, cada uno est esperando un evento que puede ser causado solo por otro proceso del grupo.
Evitar el bloqueo
el S.O. necesita conocer con anticipacin que recursos requerir un proceso durante su tiempo de vida. con esa informacin, el S.O. puede decidir para cada requerimiento si el proceso debe esperar o no. la decisin se realiza en funcin de los recursos actualmente disponibles, los actualmente asignados a cada proceso, y los requerimientos y liberaciones futuras de cada proceso.
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.
Retencin y espera
Estos protocolos producen baja utilizacin de los recursos. Puede ocasionar inanicin de algunos procesos. 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 solo cuando recupera sus viejos recursos junto con los nuevos que esta requiriendo. Si un proceso requiere recursos, primero chequear si estn disponibles. Si estn, entonces asignarlos. Si no estn, chequear si estn asignados a algn otro proceso que est esperando recursos adicionales. Si es as, apropiar los recursos deseados al proceso que est esperando y asignrselos al proceso que los requiere. Si los recursos requeridos no esta disponibles ni retenidos por otro proceso en espera, entonces el proceso que requiere debe esperar.
No apropiacin
Alternativa 2:
Protocolo:
Alternativa 1: un proceso puede inicialmente requerir cualquier nmero de instancias de un tipo de recurso Ri despus 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 todos ellos.
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)
para decidir si el requerimiento puede ser satisfecho, o el proceso debe esperar para evitar un posible bloqueo en el futuro. Los algoritmos de evitacin de bloqueo difieren en la cantidad y tipo de informacin que requieren. El modelo ms simple y til requiere que cada proceso declare el mximo nmero de recursos de cada tipo que puede necesitar. Con esta informacin el algoritmo asegura que el sistema nunca entrar en un estado de bloqueo. Un algoritmo de evitacin de bloqueo examina dinmicamente el estado de asignacin de recursos para asegurar de que nunca puede hacer una condicin de espera circular. El estado de asignacin de los recursos est definido por el nmero de recursos disponibles y asignados, y las mximas demandas de los procesos.
Sistemas con nica instancia por cada tipo de recurso Para estos sistemas se puede definir un algoritmo de deteccin de bloqueo que usa una variante del grafo de asignacin de recursos llamado grafo wait-for. Existir un bloqueo en el sistema si el grafo wait-for contiene un ciclo. Para detectar bloqueos el sistema necesita mantener el grafo wait-for e invocar peridicamente un algoritmo que busca ciclos en el grafo. Sistemas con varias instancias por cada tipo de recurso En estos sistemas no es aplicable el esquema del grafo wait-for. Para estos sistemas se emplea un algoritmo similar al algoritmo del banquero.
Terminacin de procesos Hay dos mtodos para eliminar bloqueos abortando procesos:
Abortar todos los procesos bloqueados Abortar un proceso por vez hasta eliminar el ciclo del bloqueo
Apropiacin 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:
Seleccin de una vctima Rollback Inanicin