Sistemas Operativos - El Algoritmo del Banquero en JAVA

"Hola este es una aporte personal para el laboratorio de la materia Sistemas Operativos"

PREÁMBULO

El Algoritmo del banquero, en sistemas operativos es una forma de evitar el interbloqueo en la planificación de recursos. Requiere conocer con anticipación los recursos que serán utilizados por todos los procesos. Esto último generalmente no puede ser satisfecho en la práctica. El algoritmo mantiene al sistema en un estado seguro. Un sistema se encuentra en un estado seguro si existe un orden en que pueden concederse las peticiones de recursos a todos los procesos, previniendo el interbloqueo.

Los procesos piden recursos, y son complacidos siempre y cuando el sistema se mantenga en un estado seguro después de la concesión. De lo contrario, el proceso es suspendido hasta que otro proceso libere recursos suficientes.

El algoritmo del banquero usa una tabla de recursos para saber cuántos recursos tiene de todo tipo. También requiere que los procesos informen del máximo de recursos que va a usar de cada tipo. Cuando un proceso pide un recurso, el algoritmo verifica si asignándole ese recurso todavía le queda otros del mismo tipo para que alguno de los procesos en el sistema todavía se le pueda dar hasta su máximo. Si la respuesta es afirmativa, el sistema se dice que está en 'estado seguro' y se otorga el recurso. Si la respuesta es negativa, se dice que el sistema está en estado inseguro y se hace esperar a ese proceso.
Conclusiones:

La cantidad de recursos debe ser fija
El número de procesos debe ser fijo
Necesitamos saber de antemano las necesidades de los procesos

La estrategia de negar la asignación de recursos, denominada algoritmo del banquero, fue propuesta por primera vez por Dijkstra, que usó este nombre por la analogía de este problema con el de un banco cuando los clientes quieren obtener dinero prestado. Los clientes serían los procesos y el dinero a prestar, los recursos. Si se enuncia de esta manera, el banco tiene una reserva limitada de dinero para prestar y un conjunto de clientes con líneas de crédito. Un cliente puede elegir pedir dinero a cargo de la línea de crédito en un instante dado y no hay garantía de que el cliente realice ninguna reposición hasta después de sacar la cantidad máxima. El banquero puede rechazar un préstamo a un cliente si hay riesgo de que el banco no tenga fondos suficientes para hacer préstamos futuros que los clientes finalmente repondrán.

Algoritmo de comprobación de estado seguro (algoritmo del banquero)
booleano seguro (estado S) {
int disponible_actual [m];
proceso resto [< número de procesos >];
disponible_actual = disponible;
resto = {todos los procesos};
posible = true;
while (posible) {
encontrar un PK en resto tal que
demanda [k, *] – asignación [k, *] < = disponible_actual;
if (encontrado) /*-- simular ejecución de P */ {
disponible_actual = dispible_actual + asignación [k, *];
resto = resto – {PK}; }
else
posible = falso; }
seguro (resto = = null);
}

Aquí podrás descargar el algoritmo en java, necesitas utilizar NetBeans o la JVM mediante la compilación javac en tu consola.

Envía un correo ok! escribe a paratacio@yahoo.com y te lo envío.

[Postdata: "Si deseas obtener el algoritmo de la cena de los filósofos, el barbero dormilón, puedes escribir al correo anterior"]

Comentarios

  1. Para descargar el archivo clic derecho sobre el enlace -> Guardar destino como.

    ResponderEliminar
  2. hola, disculpa pero no puede descargar el archivo.

    ResponderEliminar
  3. yo tampoco me gustaria que me ayudaras proporcionando el codigo

    ResponderEliminar

Publicar un comentario

Por favor un comentario de interés o en su defecto una pregunta en cuestión.

Entradas populares de este blog

LA INGENIERIA DE REQUERIMIENTOS

Mind Map About Information & Analysis´ Sistems - Mapa Mental Sobre la Importancia de los SI en la actualidad