Prévia do material em texto
Nome: Marianne Lourenço Bravo Professor: Fabio Contarini Carneiro AVA2 – SISTEMAS OPERACIONAIS - linha 4 proc_B: Ao tentar colocar a impressora o proc_B vai ficar travando ao processar enquanto aguarda a liberação do proc_C, equanto o proc_C também irá travar ao tentar alocar o scanner enquanto aguarda a liberação do proc_B. - linha 9 e 10 As linhas serão liberadas automaticamente após o impasse. Em um determinado momento, o proc_B ficará aguardando a impressora do proc_C e o mesmo ficará aguardando a liberação do snanner (que está em a posse do proc_B), esse processo pode causar travamento no sistema. O problema pode ser resolvido de 2 formas: - Condição para posse e espera: o processo com esse recurso que foi concedido antes pode solicitar novos (no caso do proc_B e proc_C) - Condição de espera circular: Há uma lista de circulação entre dois ou mais processos e cada um deve esperar por cada processo de posse da seguinte cadeia. Outra maneira que o código pode ser escrito sem a possibilidade de apresentar erros ou falhas pode ser: Proc_A processa_algo(); aloca_plotter(); processa_algo(); libera_plotter(); Proc_B processa_algo(); aloca_scanner(); processa_algo(); aloca_plotter(); libera_scanner(); libera_plotter(); processa_algo(); aloca_impressora(); processa_algo(); libera_impressora(); Proc_ C processa_algo(); aloca_impressora(); processa_algo(); libera_impressora(); processa_algo(); aloca_scanner(); processa_algo(); libera_scanner();