Sistemas operativos modernos
En Otras palabras, si sumamos todas las instancias del recurso j que se han asignado y a este total le sumamos todas las instancias que están disponibles, el resultado será el número de instancias que existen de esa clase de recursos. El algoritmo para detectar bloqueos irreversibles se basa en la comparación de vectores. Definamos la relación A < B entre dos vectores A y B, para indicar que cada elemento de A es menor o igual que el elemento correspondiente de B. Matemáficamente, A < B s t cumple si y sólo si A¿ < B¡ para \ < i<m . En un principio, decimos que ninguno de los procesos está marcado. A medida que el al goritmo avanza, se irán marcando procesos para indicar que pueden terminar y, por lo tanto, que no han caído en un bloqueo irreversible. Cuando el algoritmo finaliza, todos los procesos que no estén marcados habrán caído en un bloqueo irreversible. Ahora podemos presentar el algoritmo de detección de bloqueos irreversibles: 1. Buscar un proceso no marcado, para el cual la /-ésima fila de R sea menor o igual que A. 2. Si se halla tal proceso, añadir la /-ésima fila de C ai4, marcar el proceso y regresar al paso 1 . 3. Si no existe tal proceso, el algoritmo termina. Cuando el algoritmo termina, se sabe que todos los procesos que no están marcados, si los hay, han caído en un bloqueo irreversible. En el paso 1, el algoritmo busca un proceso que pueda ejecutarse hasta terminar. Lo que disfingue a ese proceso es que sus necesidades de recursos pueden safisfacerse con los que es tán disponibles. Después el proceso seleccionado se ejecuta hasta que termina; en ese momen to devuelve los recursos que tenía al conjunto de recursos disponibles y se marca como terminado. Si al final todos los procesos logran ejecutarse, ninguno de ellos participará en un bloqueo irreversible. Si algunos de ellos nunca pueden ejecutarse, están en bloqueo irre versible. Aunque el algoritmo es no determinista (porque podría ejecutar los procesos en cual quier orden factible), el resultado siempre es el mismo. Consideremos la figura 3-7 como ejemplo de la operación del algoritmo detector de bloqueos irreversibles. Aquí tenemos tres procesos y cuatro clases de recursos, que hemos designado en for ma arbitraria unidades de cinta, graficadores, escáner y unidad de CD-ROM. El proceso 1 tiene un escáner. El proceso 2 tiene dos unidades de cinta y una unidad de CD-ROM. El proceso 3 tie ne un graficador y dos escáneres. Cada proceso necesita más recursos, como muestra la matriz R. Para ejecutar el algoritmo detector de bloqueos irreversibles buscamos un proceso cuyas necesidades de recursos puedan safisfacerse. El primero no puede satisfacerse porque no hay unidades de CD-ROM disponibles. El segundo tampoco porque ningún escáner está desocu pado. Por suerte, el tercero sí puede satisfacerse, así que el proceso 3 se ejecuta y al terminar libera todos sus recursos, lo que da A = (2 2 2 0) # Ahora el proceso 2 puede ejecutarse y devolver sus recursos, lo que da
RkJQdWJsaXNoZXIy MjI4NDcx