Está en la página 1de 3

Sistemas Operativos

Pr actica 7
Ing. Andres Bustamante
afbustamanteg@unal.edu.co
Ingeniera de Sistemas
Facultad de Ingeniera
Universidad de la Amazonia
2009
1. Objetivo
El objetivo de la practica es que el estudiante aprenda y aplique los conceptos relacionados con
interbloqueos de recursos en sistemas operativos.
2. Metodologa
Por medio de los conceptos vistos en clase y el lenguaje de programacion C/C++ o Java, el estu-
diante debe estar en la capacidad de mostrar por medio de un programa la deteccion de interbloqueos
potenciales utilizando una de las tecnicas mas conocidas para tal n.
3. Marco teorico
En 1965, Dijkstra ideo un algoritmo que puede evitar interbloqueos; este algoritmo se conoce como
el algoritmo del banquero. Se modela de la forma en que un banquero podra tratar con un grupo de
clientes a los que ha otorgado lneas de credito. Lo que hace el algoritmo es comprobar si al otorgar
la peticion se produce un estado inseguro. Si es as, la peticion se rechaza. Si al otorgar la peticion se
produce un estado seguro, se lleva a cabo.
El algoritmo del banquero se puede encontrar para uno o para varios recursos. El algoritmo para
varios recursos necesita de dos matrices C y R. La matriz C muestra cuantas instancias de cada recurso
estan asignadas en un momento dado a cada uno de los procesos (cada la en la matriz pertenece a un
proceso). La matriz R muestra cuantos recursos sigue necesitando cada proceso para poderse completar.
Ademas de estas matrices, se requieren los vectores E y A, que mantienen informacion de la cantidad de
recursos existentes de cada tipo, y la cantidad de recursos disponibles, respectivamente (Ver gura 1).
El algoritmo del banquero se puede describir de la siguiente manera:
1. Buscar una la en R, cuyas necesidades de recursos no satisfechas sean menores o iguales que A.
Si no existe dicha la, el sistema entrara en interbloqueo. Si se puede escoger mas de un proceso,
se selecciona uno al azar.
2. Suponer que el proceso seleccionado de la la solicita todos los recursos que necesita (lo que se
garantiza que es posible) y termina. Marcar ese proceso como terminado y agregar todos sus
recursos al vector A.
1
Figura 1: Ejemplo del algoritmo del banquero con varios recursos. Fuente: [1]
3. Repetir los pasos anteriores hasta que todos los procesos se marquen como terminados (en cuyo
caso el estado inicial era seguro) o hasta que no haya ning un proceso cuyas necesidades de recursos
se puedan satisfacer (en cuyo caso hay un interbloqueo).
4. Practica
Desarrollar un programa que por medio de cuatro entradas, particularmente las matrices C y R,
y los vectores E y A, representativos de los recursos asignados, los recursos que a un se necesitan,
los recursos existentes y los recursos disponibles, respectivamente, permita identicar si el sistema se
encuentra en un estado inseguro, es decir, ante un potencial interbloqueo.
Las entradas deben ser archivos de texto plano independientes para C, R, E y A con valores
separados por espacios o tabuladores para la misma la, y por retornos de lnea para lneas diferentes.
Por ejemplo, el archivo C.txt con los datos para C debera verse como esto:
3 0 1 1
0 1 0 0
1 1 1 0
1 1 0 1
0 0 0 0
Mientras que el archivo A.txt debera verse como:
1 0 2 0
Ejemplo de ejecucion del programa:
$ banquero C.txt R.txt E.txt A.txt
El sistema se encuentra en estado INSEGURO
La salida debe ser un mensaje por pantalla indicando el resultado de la ejecucion del algoritmo, es
decir, anunciando si el estado es seguro o inseguro, como se mostraba en el ejemplo anterior.
2
5. Entregables
Se debera entregar en el correo electronico del profesor:
1. Informe del trabajo realizado durante la practica. El informe debe incluir conclusiones de lo que
se aprendio con la practica y bibliografa si es el caso.
2. Archivo del codigo fuente empleado para desarrollar la practica. El codigo fuente debe estar
debidamente documentado.
NOTA: Recordar las reglas para la entrega de practicas establecidas previamente.
Referencias
[1] A. S. Tanembaum. Sistemas Operativos Modernos, 3a Edicion. Prentice Hall, 2009.
3

También podría gustarte