Precisa de alguns esclarecimentos sobre o algoritmo de banqueiros
-
27-09-2019 - |
Pergunta
Apenas uma consulta rápida sobre estados seguros/inseguros no Dijkstra's Algoritmo do banqueiro...
Se um dos processos no instantâneo do sistema (por exemplo, o abaixo) já tiver todas as suas necessidades atendidas e não há recursos suficientes disponíveis para atender às necessidades de qualquer um dos outros processos, é o sistema em um estado seguro ? Sei que normalmente assumimos que, uma vez que um processo receba os recursos necessários, ele terá terminado logo após e devolverá todos os recursos, mas essa suposição é considerada quando calculamos o estado do sistema?
Allocated Maximum Available
| A | B | A | B A | B
---+---+--- ---+---+--- ---+---
P1 | 1 | 2 P1 | 1 | 2 1 | 3
P2 | 5 | 3 P2 | 7 | 8
EDITAR
Só para deixar minha pergunta um pouco mais clara: o sistema está no exemplo acima em um estado seguro ou em um estado inseguro? Assumimos que as solicitações de P2 sejam adiadas até que a P1 retorne recursos, momento em que as solicitações do P2 P2 podem ser atendidas e, portanto, o sistema é seguro ou o sistema é inseguro, porque atualmente nenhuma das solicitações possíveis pode ser atendida?
Solução
O sistema está em um estado seguro porque o processo 1 pode ser executado. Quando terminar, haverá cópias suficientes do recurso A e Recurso B para o processo 2 do Process 2. Assim, existe um "cronograma" com o qual o sistema pode executar seus processos até a conclusão. Isso significa que é seguro.