O gráfico de alocação de recursos é a representação pictórica do estado de um sistema. Como o próprio nome sugere, o gráfico de alocação de recursos é a informação completa sobre todos os processos que estão retendo alguns recursos ou aguardando por alguns recursos.
Ele também contém informações sobre todas as instâncias de todos os recursos, estejam eles disponíveis ou em uso pelos processos.
No gráfico de alocação de recursos, o processo é representado por um círculo enquanto o recurso é representado por um retângulo. Vamos ver os tipos de vértices e arestas em detalhes.
Os vértices são principalmente de dois tipos: recurso e processo. Cada um deles será representado por uma forma diferente. O círculo representa o processo, enquanto o retângulo representa o recurso.
Um recurso pode ter mais de uma instância. Cada instância será representada por um ponto dentro do retângulo.
As arestas no RAG também são de dois tipos, uma representa a atribuição e a outra representa a espera de um processo por um recurso. A imagem acima mostra cada um deles.
Um recurso é mostrado como atribuído a um processo se a ponta da seta estiver anexada a uma instância do recurso e a cabeça estiver anexada a um processo.
Um processo é mostrado como aguardando um recurso se a ponta de uma seta estiver anexada ao processo enquanto a cabeça estiver apontando para o recurso.
Exemplo
Vamos considerar 3 processos P1, P2 e P3, e dois tipos de recursos R1 e R2. Os recursos estão tendo 1 instância cada.
De acordo com o gráfico, R1 está sendo usado por P1, P2 está segurando R2 e esperando por R1, P3 está esperando por R1 e também por R2.
O gráfico está livre de deadlocks, pois nenhum ciclo está sendo formado no gráfico.