p07

3
Sistemas Operativos Pr´ actica 7 Ing. Andr´ es Bustamante [email protected] Ingenier´ ıa de Sistemas Facultad de Ingenier´ ıa Universidad de la Amazonia 2009 1. Objetivo El objetivo de la pr´ actica es que el estudiante aprenda y aplique los conceptos relacionados con interbloqueos de recursos en sistemas operativos. 2. Metodolog´ ıa Por medio de los conceptos vistos en clase y el lenguaje de programaci´ on C/C++ o Java, el estu- diante debe estar en la capacidad de mostrar por medio de un programa la detecci´ on de interbloqueos potenciales utilizando una de las t´ ecnicas m´ as conocidas para tal fin. 3. Marcote´orico En 1965, Dijkstra ide´ o un algoritmo que puede evitar interbloqueos; este algoritmo se conoce como el algoritmo del banquero. Se modela de la forma en que un banquero podr´ ıa tratar con un grupo de clientes a los que ha otorgado l´ ıneas de cr´ edito. Lo que hace el algoritmo es comprobar si al otorgar la petici´ on se produce un estado inseguro. Si es as´ ı, la petici´ on se rechaza. Si al otorgar la petici´ on 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 cu´ antas instancias de cada recurso est´ an asignadas en un momento dado a cada uno de los procesos (cada fila en la matriz pertenece a un proceso). La matriz R muestra cu´ antos recursos sigue necesitando cada proceso para poderse completar. Adem´ as de estas matrices, se requieren los vectores E y A, que mantienen informaci´ on de la cantidad de recursos existentes de cada tipo, y la cantidad de recursos disponibles, respectivamente (Ver figura 1). El algoritmo del banquero se puede describir de la siguiente manera: 1. Buscar una fila en R, cuyas necesidades de recursos no satisfechas sean menores o iguales que A. Si no existe dicha fila, el sistema entrar´ a en interbloqueo. Si se puede escoger m´ as de un proceso, se selecciona uno al azar. 2. Suponer que el proceso seleccionado de la fila 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

Upload: odila-burgos-arce

Post on 27-Dec-2015

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: p07

Sistemas Operativos

Practica 7

Ing. Andres [email protected]

Ingenierıa de SistemasFacultad de Ingenierıa

Universidad de la Amazonia

2009

1. Objetivo

El objetivo de la practica es que el estudiante aprenda y aplique los conceptos relacionados coninterbloqueos de recursos en sistemas operativos.

2. Metodologıa

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 interbloqueospotenciales utilizando una de las tecnicas mas conocidas para tal fin.

3. Marco teorico

En 1965, Dijkstra ideo un algoritmo que puede evitar interbloqueos; este algoritmo se conoce comoel algoritmo del banquero. Se modela de la forma en que un banquero podrıa tratar con un grupo declientes a los que ha otorgado lıneas de credito. Lo que hace el algoritmo es comprobar si al otorgarla peticion se produce un estado inseguro. Si es ası, la peticion se rechaza. Si al otorgar la peticion seproduce un estado seguro, se lleva a cabo.

El algoritmo del banquero se puede encontrar para uno o para varios recursos. El algoritmo paravarios recursos necesita de dos matrices C y R. La matriz C muestra cuantas instancias de cada recursoestan asignadas en un momento dado a cada uno de los procesos (cada fila en la matriz pertenece a unproceso). 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 derecursos existentes de cada tipo, y la cantidad de recursos disponibles, respectivamente (Ver figura 1).

El algoritmo del banquero se puede describir de la siguiente manera:

1. Buscar una fila en R, cuyas necesidades de recursos no satisfechas sean menores o iguales que A.Si no existe dicha fila, 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 fila solicita todos los recursos que necesita (lo que segarantiza que es posible) y termina. Marcar ese proceso como terminado y agregar todos susrecursos al vector A.

1

Page 2: p07

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 cuyocaso el estado inicial era seguro) o hasta que no haya ningun proceso cuyas necesidades de recursosse 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 aun se necesitan,los recursos existentes y los recursos disponibles, respectivamente, permita identificar si el sistema seencuentra 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 valoresseparados por espacios o tabuladores para la misma fila, y por retornos de lınea para lıneas diferentes.Por ejemplo, el archivo C.txt con los datos para C deberıa verse como esto:

3 0 1 10 1 0 01 1 1 01 1 0 10 0 0 0

Mientras que el archivo A.txt deberıa 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, esdecir, anunciando si el estado es seguro o inseguro, como se mostraba en el ejemplo anterior.

2

Page 3: p07

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 quese aprendio con la practica y bibliografıa si es el caso.

2. Archivo del codigo fuente empleado para desarrollar la practica. El codigo fuente debe estardebidamente 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