Documente Academic
Documente Profesional
Documente Cultură
Implementacin:
Cuando un proceso ingresa al sistema, debe declarar el mximo nmero de instancias por recurso que necesitar. Cuando un proceso requiere un conjunto de recursos, el sistema debe determinar si la adjudicacin de dichos recursos deja el sistema en safe state los recursos se asignan. Estructuras de datos necesarias:
Sea N el nmero de procesos en el Sistema, y M el nmero de tipos de recursos. Available: Un vector de longitud M que representa el nmero disponibles de cada tipo. Si Available[ j ]= k significa que hay k instancias disponibles del recurso Rj.
Max: Es una matriz de N x M elementos, que define la demanda mxima de cada proceso. Si Max[ i, j ] = k significa que el proceso Pi requiere a lo ms k instancias del recurso Rj. Allocation: Es una matriz de N x M elementos, que define el nmero de recursos de cada tipo que actualmente han sido adjudicados para cada proceso. Si Allocation [ i, j] = k significa que el proceso Pi tiene actualmente asignadas k instancias del recurso Rj Need: Es una matriz de N x M elementos, que define los recursos restantes que necesitan cada proceso para terminar su tarea. Algoritmo para Safe State: Utilizado para establecer si el sistema tiene un Safe State 1. Sean Work y Finish dos vectores de longitud M y N, respectivamente.Los cuales se inicializan con Work = Available y Finish[ i ] = false, para todos los procesos ( i = 0, 1, , n-1) 2. Encontrar un proceso i, tal que se cumplan las dos condiciones: Finish [ i ] = false Need i = Work Si no existe tal proceso, vaya al paso 4. Work = Work + Allocation 3. Finish [ i ] = True Vaya al paso 2
4. Si Finish [ i ] = True para todos los procesos, el sistema se encuentra en un estado seguro Safe State No hay deadlocks Algoritmo para Resource-Request: Utilizado para establecer si el requerimiento puede satisfacerse 1. Sea Request i un vector para el proceso Pi. Si Request i [ j ] = k significa que el proceso Pi requiere k instancias del recurso j. 2. Si Request i <= Need i, vaya al paso 3. En otro caso, se muestra un error ya que proceso ha excedido su mximo declarado. 3. Si Request i <= Available vaya al paso 4. Caso contrario, Pi debe esperarmpuesto que no hay recursos disponibles. 4. La posible adjudicacin de los recursos de Pi establece cambios en las estructuras de datos que determinan el estado del sistema, as: Available = Available Request i Allocation = Allocatioin + Request i Need i = Need i Request i Si el estado resultante del sistema es Safe State, la transaccin se completa y los recursos se adjunta. Caso contario se revierten los cambios.