Este trabalho tem como objetivo ler o arquivo de entrada, analise se a situação estĂĄ ou nĂŁo em deadlock e imprima em um arquivo a saĂda. A saĂda do programa deverĂĄ ser VAZIA caso o sistema nĂŁo esteja em deadlock. Caso esteja, deverĂĄ ser impressa uma Ășnica linha contendo os processos e recursos que fazem parte do deadlock. Essa lista deverĂĄ começar pelo processo de menor valor e deverĂĄ indicar em sequĂȘncia o processo, o recurso que ele estĂĄ de posse, o prĂłximo processo que necessita desse recurso, o que ele estĂĄ de posse, e assim por diante. Abaixo segue um exemplo de saĂda esperada:
3 A 5 G 4 I 9 F 6 J
Neste caso, o processo de menor valor identificado Ă© o 3, por isso ele começou a descrição da resposta. O processo 3 estĂĄ esperando pelo recurso J e de posse do recurso A. O processo 5 estĂĄ esperando pelo recurso a e de posse do recurso G. O processo 4 estĂĄ esperando pelo recurso G e de posse do recurso I. E por aĂ em diante. Abaixo segue um exemplo de arquivo de entrada com o arquivo de saĂda esperado.
-
Pacote: Principal
- main.java: Arquivo principal com a leitura e a chamada das funçÔes a serem desenvolvidas.
-
Teste.txt: Arquivo de entrada com os testes a serem executados, onde a primeira linha conterĂĄ na primeira linha dois inteiros positivos âxâ e âyâ. âxâ serĂĄ a quantidade de processos existente no sistema e âyâ a quantidade de recursos.As prĂłximas âxâ linhas serĂŁo referentes a cada processo e tambĂ©m identificarĂŁo o nĂșmero do processo. JĂĄ os recursos serĂŁo identificados pelos caracteres âA-Zâ. Cada linha seguinte conterĂĄ as informaçÔes de alocaçÔes e requisiçÔes de cada processo, separadas em dois blocos por ponto e vĂrgula. O primeiro bloco conterĂĄ os recursos alocados para o processo, indicados por caracteres âA-Zâ e separados por espaços.
-
Saida.txt: Arquivo a ser gerado a apĂłs o cĂłdigo executar, onde a saĂda do programa deverĂĄ ser VAZIA caso o sistema nĂŁo esteja em deadlock. Caso esteja, deverĂĄ ser impressa uma Ășnica linha contendo os processos e recursos que fazem parte do deadlock. Essa lista deverĂĄ começar pelo processo de menor valor e deverĂĄ indicar em sequĂȘncia o processo, o recurso que ele estĂĄ de posse, o prĂłximo processo que necessita desse recurso, o que ele estĂĄ de posse, e assim por diante.
Entrada | SaĂda |
---|---|
7 6 | 4 C 5 E 7 D |
A ; B | |
; C | |
; B | |
D ; B C | |
C ; E | |
F ; B | |
E ; D |