Assinale a opção que corresponde a um algoritmo de prevenção de deadlocks.
- A)banker’s algorithm (algoritmo do banqueiro)
Correta, pois o algoritmo do banqueiro é o método clássico associado ao controle de alocação de recursos para evitar estados inseguros e, assim, impedir deadlocks.
- B)token bucket algorithm (algoritmo balde de tokens)
Errada, porque o token bucket é um algoritmo de controle de tráfego e taxa de transmissão, não de deadlock.
- C)Dijkstra’s algorithm (algoritmo Dijkstra)
Errada, pois o algoritmo de Dijkstra é usado para encontrar caminhos mínimos em grafos, não para prevenção de deadlocks.
- D)Bellman–Ford algorithm (algoritmo Bellman-Ford)
Errada, porque Bellman-Ford também é algoritmo de menor caminho, e não técnica de controle de recursos do sistema operacional.
- E)Viterbi algorithm (algoritmo Viterbi)
Errada, já que Viterbi é um algoritmo de decodificação usado em comunicação e processamento de sinais, sem relação com deadlocks.
Gabarito: A
Deadlock acontece quando um conjunto de processos fica travado porque cada um está esperando um recurso que outro já segurou. Para lidar com isso, o sistema operacional pode usar estratégias como prevenção, evasão, detecção e recuperação. Na prova, o nome que sempre aparece quando o assunto é controlar o acesso aos recursos para evitar que o sistema entre em um estado inseguro é o algoritmo do banqueiro. O algoritmo do banqueiro, de Dijkstra, trabalha com a ideia de estado seguro: antes de conceder um recurso, ele verifica se ainda existe uma sequência viável para atender todos os processos sem travar o sistema. Em outras palavras, ele tenta impedir que o sistema caminhe para uma situação de deadlock. Por isso, em questões de concurso, ele costuma ser cobrado como a técnica clássica associada à prevenção ou, mais tecnicamente, à evasão de deadlocks. As demais alternativas são de outros temas: token bucket é controle de tráfego/rede, Bellman-Ford é algoritmo de menor caminho em grafos, Viterbi é usado em decodificação e Dijkstra também é de caminhos mínimos. Ou seja: só uma delas conversa com recursos, processos e risco de travamento. É aquela que faz o SO ficar desconfiado antes de entregar recurso, como um porteiro cauteloso demais, mas eficiente.