fbpx
Wikipedia

Algoritmo del banquero

El Algoritmo del banquero, en sistemas operativos es una forma de evitar el interbloqueo, propuesta por primera vez por Edsger Dijkstra. Es un acercamiento teórico para evitar los interbloqueos 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.

Este algoritmo usualmente es explicado usando la analogía con el funcionamiento de un banco. Los clientes representan a los procesos, que tienen un crédito límite, y el dinero representa a los recursos. El banquero es el sistema operativo.

El banco confía en que no tendrá que permitir a todos sus clientes la utilización de todo su crédito a la vez. El banco también asume que si un cliente maximiza su crédito será capaz de terminar sus negocios y devolver el dinero a la entidad, permitiendo servir a otros clientes.

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. El algoritmo del banquero funciona encontrando estados de este tipo.

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.

En términos más formales, un sistema se encuentra en un estado seguro si existe una secuencia segura. Una secuencia segura es una sucesión de procesos, ,..., , donde para un proceso , el pedido de recursos puede ser satisfecho con los recursos disponibles sumados los recursos que están siendo utilizados por , donde j < i. Si no hay suficientes recursos para el proceso , debe esperar hasta que algún proceso termine su ejecución y libere sus recursos. Entonces podrá tomar los recursos necesarios, utilizarlos y terminar su ejecución. Al suceder esto, el proceso i+1 puede tomar los recursos que necesite, y así sucesivamente. Si una secuencia de este tipo no existe, el sistema se dice que está en un estado inseguro, aunque esto no implica que esté bloqueado.

Así, el uso de este tipo de algoritmo permite impedir el interbloqueo, pero supone una serie de restricciones:

  • Se debe conocer la máxima demanda de recursos por anticipado.
  • Los procesos deben ser independientes, es decir que puedan ser ejecutados en cualquier orden. Por lo tanto su ejecución no debe estar forzada por condiciones de sincronización.
  • Debe haber un número fijo de recursos a utilizar y un número fijo de procesos.
  • Los procesos no pueden finalizar mientras retengan recursos.

Estructuras y complejidad

Se deben utilizar cuatro estructuras de datos para implementar el algoritmo del banquero. Estas codifican el estado del sistema de asignación de recursos. Sea n, el número de procesos del sistema, m el número de tipos de recursos. Se necesita:

  • Recursos (Available, disponible): Un vector de longitud m que mantiene la cantidad total de recursos, de cada tipo, que pueden ser utilizados por los procesos. De esta forma, Recursos[i] = k significa que hay una cantidad total k de recursos tipo   disponibles.
  • Demanda (Max): Esta matriz,  , guarda las cantidades máximas de recursos de cada tipo que pueden ser demandadas por cada proceso. Si Max[i][j]=k, el proceso i, puede solicitar, como máximo k instancias del recurso j.
  • Asignación (allocation): En esta matriz, n x m, número de recursos de cada tipo actualmente asignados a cada proceso. Asignación[i][j] = k significa que el proceso i tiene asignado k unidades del recurso j.
  • Necesidad (need): Una matriz, n x m, que indica la necesidad restante de recursos de cada proceso. Si Necesidad[i][j] = k, entonces el proceso i puede necesitar k instancias del tipo de recurso j. Observe que Necesidad[i][j] = Max[i][j] - Asignación[i][j].

En términos de complejidad, el algoritmo del banquero es de orden O(n2 × m), donde n es el número de procesos y m la cantidad de recursos.

Algoritmo de comprobación de estado seguro

Es un algoritmo que determina si el sistema está en un estado seguro y sin que haya que molestar a un recurso .

Algoritmo de asignación de recursos

Este algoritmo determina si un pedido de recursos puede ser satisfecho de forma segura. Es ejecutado por el sistema cada vez que llega una petición de recursos por parte de un proceso.

Software

  • Simulación - Solución en C++ (en español)

Ejemplos

  • (en inglés), a partir de la transparencia 81.

Bibliografía

  • Silberschatz, Abraham (2006). Sistemas Operativos. McGrawHill. pp. 229-230. ISBN 0-471-69466-5. 
  •   Datos: Q386678

algoritmo, banquero, sistemas, operativos, forma, evitar, interbloqueo, propuesta, primera, edsger, dijkstra, acercamiento, teórico, para, evitar, interbloqueos, planificación, recursos, requiere, conocer, anticipación, recursos, serán, utilizados, todos, proc. El Algoritmo del banquero en sistemas operativos es una forma de evitar el interbloqueo propuesta por primera vez por Edsger Dijkstra Es un acercamiento teorico para evitar los interbloqueos en la planificacion de recursos Requiere conocer con anticipacion los recursos que seran utilizados por todos los procesos Esto ultimo generalmente no puede ser satisfecho en la practica Este algoritmo usualmente es explicado usando la analogia con el funcionamiento de un banco Los clientes representan a los procesos que tienen un credito limite y el dinero representa a los recursos El banquero es el sistema operativo El banco confia en que no tendra que permitir a todos sus clientes la utilizacion de todo su credito a la vez El banco tambien asume que si un cliente maximiza su credito sera capaz de terminar sus negocios y devolver el dinero a la entidad permitiendo servir a otros clientes 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 El algoritmo del banquero funciona encontrando estados de este tipo Los procesos piden recursos y son complacidos siempre y cuando el sistema se mantenga en un estado seguro despues de la concesion De lo contrario el proceso es suspendido hasta que otro proceso libere recursos suficientes En terminos mas formales un sistema se encuentra en un estado seguro si existe una secuencia segura Una secuencia segura es una sucesion de procesos lt P 1 displaystyle lt P 1 P n gt displaystyle P n gt donde para un proceso P i displaystyle P i el pedido de recursos puede ser satisfecho con los recursos disponibles sumados los recursos que estan siendo utilizados por P j displaystyle P j donde j lt i Si no hay suficientes recursos para el proceso P i displaystyle P i debe esperar hasta que algun proceso P j displaystyle P j termine su ejecucion y libere sus recursos Entonces podra P i displaystyle P i tomar los recursos necesarios utilizarlos y terminar su ejecucion Al suceder esto el proceso P displaystyle P i 1 puede tomar los recursos que necesite y asi sucesivamente Si una secuencia de este tipo no existe el sistema se dice que esta en un estado inseguro aunque esto no implica que este bloqueado Asi el uso de este tipo de algoritmo permite impedir el interbloqueo pero supone una serie de restricciones Se debe conocer la maxima demanda de recursos por anticipado Los procesos deben ser independientes es decir que puedan ser ejecutados en cualquier orden Por lo tanto su ejecucion no debe estar forzada por condiciones de sincronizacion Debe haber un numero fijo de recursos a utilizar y un numero fijo de procesos Los procesos no pueden finalizar mientras retengan recursos Indice 1 Estructuras y complejidad 2 Algoritmo de comprobacion de estado seguro 3 Algoritmo de asignacion de recursos 4 Software 5 Ejemplos 6 BibliografiaEstructuras y complejidad EditarSe deben utilizar cuatro estructuras de datos para implementar el algoritmo del banquero Estas codifican el estado del sistema de asignacion de recursos Sea n el numero de procesos del sistema m el numero de tipos de recursos Se necesita Recursos Available disponible Un vector de longitud m que mantiene la cantidad total de recursos de cada tipo que pueden ser utilizados por los procesos De esta forma Recursos i k significa que hay una cantidad total k de recursos tipo R i displaystyle R i disponibles Demanda Max Esta matriz n m displaystyle n times m guarda las cantidades maximas de recursos de cada tipo que pueden ser demandadas por cada proceso Si Max i j k el proceso i puede solicitar como maximo k instancias del recurso j Asignacion allocation En esta matriz n x m numero de recursos de cada tipo actualmente asignados a cada proceso Asignacion i j k significa que el proceso i tiene asignado k unidades del recurso j Necesidad need Una matriz n x m que indica la necesidad restante de recursos de cada proceso Si Necesidad i j k entonces el proceso i puede necesitar k instancias del tipo de recurso j Observe que Necesidad i j Max i j Asignacion i j En terminos de complejidad el algoritmo del banquero es de orden O n2 m donde n es el numero de procesos y m la cantidad de recursos Algoritmo de comprobacion de estado seguro EditarEs un algoritmo que determina si el sistema esta en un estado seguro y sin que haya que molestar a un recurso Algoritmo de asignacion de recursos EditarEste algoritmo determina si un pedido de recursos puede ser satisfecho de forma segura Es ejecutado por el sistema cada vez que llega una peticion de recursos por parte de un proceso Software EditarSimulacion Solucion en C en espanol Ejemplos Editarhttps web archive org web 20160305125244 http www mcs csueastbay edu billard os cs6560 compact pdf en ingles a partir de la transparencia 81 Bibliografia EditarSilberschatz Abraham 2006 Sistemas Operativos McGrawHill pp 229 230 ISBN 0 471 69466 5 Datos Q386678Obtenido de https es wikipedia org w index php title Algoritmo del banquero amp oldid 134977504, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos