Buscar

AVA2 SISTEMAS OPERACIONAIS - Copia

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 3 páginas

Prévia do material em texto

Nome: Vitória Verônica Oliveira da Silva dos Santos 
Professor: Fábio Contarini 
Disciplina: sistemas operacionais 
Curso: sistemas de informação 
AVA2 
 
 
 
 
 
 
 
 
Novembro/2021 
Rio de Janeiro 
1-As linhas que causam problemas na execução do programa são as linhas 4, 9 e 
10 do proc_B e linhas 4 e 6 do proc_C. Quando tentar alocar a impressora (linha 
4) o proc_B ficará travado, com o processo parado, esperando a liberação do 
proc_C, equanto o proc_C quando tentar alocar o scanner (linha 4), vai ficar com 
o processo parado, esperando a liberação do proc_B. As linhas 9 e 10 do proc_B 
e 6 do proc_C, são as linhas que os recursos são liberados depois de ocasionado 
o impasse. 
2-Em determinado ponto de execução do programa, ocorrerá deadlocks(que são 
os impasses), porque os processos vão ficar parados, esperando a então 
liberação de recursos. No caso do proc_B, vai ficar esperando a liberação da 
impressora, que está alocada no proc_C e o proc_C, vai ficar esperando a 
liberação do scanner que está em posse de proc_B. Esse impasse pode levar ao 
travamento do sistema. 
Existem 4 condições para esse impasse, que são: 
• Exclusão mútua, onde cada recurso estava associado a exatamente a um 
processo, ou estava disponível. No caso do primeiro passo do processo, 
proc_A-plotter// proc_B-scanner// proc_C- impressora 
• Condição de posse e espera, que são processos com posses de recurso que 
foram concedidos antes e podem solicitar novos recursos. No caso do 
processo, proc_B e proc_C. 
• Condição e não preempção, onde recursos concedidos antes não podem 
ser tomados a força de um processo, ou seja, precisam ser claramente 
liberados pelos processos que os tem. 
• Condição de espera circular, no qual deve haver uma lista circular de dois 
ou mais processos, cada um deles esperando por um processo de possse 
do membro seguinte. 
 
3-Reescrevendo o código, correspondi a condição de que cada processo tem 
direito a somente 1 único recurso de cada vez, e se por acaso ele precisar de 
um segundo recurso, vai ser necessário liberar o primeiro recurso. Também 
teria outra maneira de reescrever, que seria por ordenação numérica dos 
recursos. 
• Código reescrito (Alterado proc_B e proc_C) 
 
Proc_A 
 processa_algo(); 
 aloca_plotter(); 
 processa_algo(); 
 libera_plotter(); 
///////// 
Proc_B 
 processa_algo(); 
 aloca_scanner(); 
 processa_algo(); 
 aloca_plotter(); 
 processa_algo(); 
 libera_plotter(); 
 libera_scanner(); 
 aloca_impressora(); 
 processa_algo(); 
 libera_impressora(); 
///////// 
Proc_ C 
 processa_algo(); 
 aloca_impressora(); 
 processa_algo(); 
 libera_impressora(); 
 processa_algo(); 
 aloca_scanner(); 
 processa_algo(); 
 libera_scanner();

Continue navegando