Sistemas operativos modernos
3.4.2 Detección de bloqueos irreversibles con múltiples recursos de cada tipo Si hay varias copias de algunos de los recursos, se requiere un enfoque distinto para detectar bloqueos irreversibles. A continuación presentamos un algoritmo basado en matrices para de tectar bloqueos irreversibles entre n procesos, Pj a P„. Sea m el número de clases de recursos, con El recursos de la clase 1 , £2 recursos de la clase 2 y, en general, £, recursos de la clase / (1 < i<m) . E es el vector de recursos existentes y da el total de instancias de cada recurso existente. Por ejemplo, si la clase 1 corresponde a unidades de cinta, E ^ - 2 implica que el sis tema tiene dos unidades de cinta. En cualquier instante dado, algunos de los recursos están asignados y no están disponibles. Sea A el vector de recursos disponibles, donde A¿ da el número de instancias del recurso i que están disponibles en la actualidad (es decir, no están asignadas). Si nuestras dos unidades de cinta ya están asignadas, A-^ será 0 . Ahora necesitamos dos arreglos: C, la matriz de asignación actual, y R, la matriz de so licitudes. La í-ésima fila de C nos dice cuántas instancias de cada recurso tiene en la actuali dad P,. Así, Cy es el número de instancias del recurso j que están en manos del proceso i. Igualmente, R¡j es el número de instancias del recurso j que quiere Estas cuatro estructuras de datos se muestran en la figura 3-6. Recursos en existencia Recursos disponibles C ( E „ E . E 3 .......E . ) Matriz de asignación actual C 11 C l 3 ■■ ■ C 21 C 22 * ^ 2 3 ■ C n 1 C n 2 C n 3 ■■ La fila n es la asignación actual para el proceso n (A^.Ag.A 3 ,..„ a j Matriz de solicitudes R 1 I R,2 *^13 Rlm R 2 1 R 2 2 *^23 R2m Rn1 RnS ■■■ ^nm La fila 2 es lo que necesita el proceso 2 Figura 3-6. Las cuatro estructuras de datos que necesita el algoritmo para detectar bloqueos irreversibles. En estas cuatro estructuras de datos se cumple una invariante importante. En particular, cualquier recurso está asignado o está disponible. Esta observación implica que 2 c , + A- = E ¡ Í= 1
RkJQdWJsaXNoZXIy MjI4NDcx