ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

ALGORITMO DEL BANQUERO


Enviado por   •  23 de Octubre de 2017  •  Apuntes  •  1.802 Palabras (8 Páginas)  •  1.615 Visitas

Página 1 de 8

UNIVERSIDAD NACIONAL  DEL ALTIPLANO[pic 1][pic 2]

FACULTAD DE  INGENIERÍA MECÁNICA ELÉCTRICA, ELECTRÓNICA Y SISTEMAS

ESCUELA  PROFESIONAL DE INGENIERÍA DE SISTEMAS[pic 3]

TRABAJO ENCARGADO:

ALGORITMO DEL BANQUERO

Realizado por:

Leslie Fiorelly Zarate Tijera

Docente:

Ing. Mayenka Fernández Chambi

Semestre: VII   Grupo: B

PUNO-2017

ALGORITMO DEL BANQUERO

  1. Descripción

Este algoritmo recibe el nombre de “banquero”  debido a que su  funcionamiento es similar a la gestión que hacen los bancos con las cuentas de crédito. Un banquero (s.o.) dispone de unos fondos (recursos) y tiene unos clientes (procesos). Cada cliente dispone de un crédito que corresponde al máximo que el banquero le prestará. El cliente irá solicitando fondos de ese crédito conforme los necesite. Si el banquero tuviese fondos suficientes para prestar el máximo a cada cliente, no habría inconvenientes. Sin embargo, esto no es así, los recursos del banquero son limitados, por lo que si todos reclaman todo su crédito no podrá satisfacerlos simultáneamente. Por lo tanto, la solución es que el banquero gestione sus fondos de manera que todos los clientes puedan llegar al máximo en algún momento, aunque no lo hagan todos al mismo tiempo.

El algoritmo fue desarrollado en el proceso de diseño del sistema operativo y descrito originalmente (en holandés) en EWD108. [1]

Cuando un nuevo proceso entra en un sistema, éste debe declarar el número máximo de instancias de cada tipo de recurso que puede reclamar jamás; Es evidente que ese número no podrá ser superior a la cantidad total de recursos en el sistema. Además, cuando un proceso obtiene todos sus recursos solicitados se debe devolver el producto en una cantidad finita de tiempo.

Estado seguro: El estado del sistema es seguro si existe una secuencia de asignaciones y liberaciones de recursos que permita a todos los procesos alcanzar en algún momento sus necesidades máximas de recursos.

  1. Recursos

Para el algoritmo del banquero de trabajo, lo que necesita saber tres cosas:

  • Cantidad de recursos que puede solicitar un proceso [MAX]
  • Cantidad de recursos que  cada proceso tiene asignado actualmente  [ASIGNADO/ALLOCATION]
  • Cantidad de recursos disponibles que tiene el sistema [DISPONIBLE/NEED]

Los recursos pueden ser asignados a un proceso sólo si satisface las siguientes condiciones:

  • Request ≤ max, si no se establece una condición de error mientras el proceso ha cruzado la máxima reclamación hecha por este mismo.
  • Request ≤ available, si no el  proceso tiene que esperar  hasta que los recursos estén disponibles.

  1. Código del algoritmo del banquero en java

 1 package banquero;

 2

 3 import java.util.Scanner;

 4 public class Banquero{

 5     private int need[][],allocate[][],max[][],available[][],np,nr;

 6      

 7     private void input(){

 8      Scanner sc=new Scanner(System.in);

 9      System.out.print(" Escribir numero de procesos y recursos : ");

10      np=sc.nextInt();  //no. de procesos

11      nr=sc.nextInt();  //no.  de recursos

12      need=new int[np][nr];  //Inicializar arrays

13      max=new int[np][nr];

14      allocate=new int[np][nr];

15      available=new int[1][nr];

16      

17      System.out.println("Escriba la matriz  de  ALLOCATION  -->");

18      for(int i=0;i<np;i++)

19           for(int j=0;j<nr;j++)

20          allocate[i][j]=sc.nextInt();  //matriz  de  allocation

21        

22      System.out.println("Escriba la matriz  de MAX -->");

23      for(int i=0;i<np;i++)

24           for(int j=0;j<nr;j++)

25          max[i][j]=sc.nextInt();  //matriz  de max

26        

27         System.out.println("Escriba la matriz  de AVAILABLE  -->");

28         for(int j=0;j<nr;j++)

29          available[0][j]=sc.nextInt();  //matriz de available

30         sc.close();

31     }

32      

33     private int[][] calcular_need(){

34        for(int i=0;i<np;i++)

35          for(int j=0;j<nr;j++)  //calculando la matriz NEED

36           need[i][j]=max[i][j]-allocate[i][j];

37        

38        return need;

39     }

40  

41     private boolean verificar(int i){

...

Descargar como (para miembros actualizados) txt (9 Kb) pdf (384 Kb) docx (136 Kb)
Leer 7 páginas más »
Disponible sólo en Clubensayos.com