Pregunta

Podría alguien por favor proporcione un enfoque paso a través para resolver el siguiente problema utilizando el algoritmo del banquero? ¿Cómo se determina si un "estado seguro" existe? Lo que se quiere decir cuando un proceso se puede "correr hasta el final"?

En este ejemplo, tengo cuatro procesos y 10 instancias de un mismo recurso.

          Resources Allocated | Resources Needed
Process A                   1                  6
Process B                   1                  5
Process C                   2                  4
Process D                   4                  7
¿Fue útil?

Solución

Wikipedia ,

  

Un estado (como en el ejemplo anterior) se considera seguro si es posible para todos los procesos para terminar la ejecución (terminar). Dado que el sistema no puede saber cuándo un proceso terminará, o la cantidad de recursos que se han solicitado para entonces, el sistema asume que todos los procesos con el tiempo tratar de obtener sus recursos máximos indicados y terminar poco después. Esta es una suposición razonable en la mayoría de los casos ya que el sistema no se refiere particularmente a la duración de cada proceso se ejecuta (al menos no desde una perspectiva de evitación punto muerto). Además, si un proceso termina sin adquirir sus máximos recursos, sólo hace que sea más fácil en el sistema.

Un proceso puede ejecutarse hasta su finalización cuando el número de cada tipo de recurso que se necesita está disponible, entre ella misma y el sistema. Si un proceso necesita 8 unidades de un determinado recurso, y ha asignado 5 unidades, entonces se puede ejecutar hasta su finalización si hay al menos 3 unidades más disponibles que puede asignar.

Dada su ejemplo, el sistema es la gestión de un único recurso, con 10 unidades disponibles. Los procesos en ejecución ya han asignado 8 (1 + 1 + 2 + 4) unidades, por lo que hay 2 unidades a la izquierda. La cantidad que cualquier proceso necesita para completar es su máxima menor sea lo que ya ha asignado, por lo que en la salida, A necesita 5 más (6-1), B necesita 4 más (5-1), C Necesidades 2 más (4- 2), y D necesita 3 más (7-4). Hay 2 disponibles, así se permite Proceso C a ejecutar a la terminación, por lo tanto liberando 2 unidades (dejando 4 disponible). En este punto, B o D se pueden ejecutar (vamos a suponer D). Una vez D ha completado, habrá 8 unidades disponibles, después de lo cual, ya sea A o B se pueden ejecutar (asumiremos A). Una vez que una se ha completado, habrá 9 unidades disponibles, y entonces B se puede ejecutar, lo que dejará las 10 unidades que quedan para el trabajo posterior. Ya que podemos seleccionar un ordenamiento de procesos que permitan a todos los procesos que se ejecutan, el estado se considera 'seguro'.

Otros consejos

  Resources Allocated | Resources Needed    claim
  Process A      1                  6            5
  Process B      1                  5            4
  Process C      2                  4            2
  Process D      4                  7            3

El total de recursos asignados es de 8 Por lo tanto 2 recursos están todavía a ser asignados, por tanto, que se asigna a procesar C. y proceso c después de terminar relieves 4 recursos que se pueden dar para procesar B, Procedimiento B después de terminar revive 5 recursos que se asignan a procesar un proceso n A después de acabado asigna recursos para procesar 2 D

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top