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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top