Buscar

AED MARCUS VINICIUS VIEIRA deadlocks

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 5 páginas

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

Prévia do material em texto

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS 
 
 
 
 
 
AED 
Atividade Externa da Disciplina 
SISTEMAS OPERCIONAIS 
 
 
 
 
 
 
 
DEADLOCK 
 
 
 
 
 
 
 
Marcus Vinicius Vieira de Meneses 
Mat.: 20201003300170 
Prof.: Nilson Cardoso Amaral 
 
 
 
 
 
 
 
GOIÂNIA 
2022 
Introdução 
 Deadlock ou Impasse é uma situação fruto da disputa entre processos por recursos dos 
sistemas computacionais. Uma vez que processos podem utilizar mais de um recurso 
simultaneamente, como acesso à memória e uma solicitação de impressão, é natural que dois 
ou mais processos disputem um mesmo recurso. O problema acontece quando há uma 
interdependência de recursos entre processos, ou seja, quando dois ou mais processos 
dependem, cada um, de um recurso utilizado por outro. Nesse ponto há um impasse 
(deadlock) em que os processos tendem a ficar bloqueados permanentemente. 
 Suponha dois processos A e B. Cada um vai realizar a tarefa de scanear um documento 
e gravar o resultado da digitalização em um disco CD-ROM. O processo A solicita o recurso de 
scanner, que é concedido. O processo B solicita inicialmente o recurso gravador CD-ROM, que 
também é concedido. Nesse ponto, ambos os recursos estão sendo utilizados, cada um 
alocado para um processo diferente. O problema acontece quando o processo A tenta solicitar 
o recurso do gravador, enquanto o processo B tenta solicitar o recurso scanner. Ambos os 
recursos estão alocados e cada processo espera que o outro desaloque para continuar sua 
rotina. Não há saída, portanto tem-se um deadlock. 
 
 
 
 
 
 
 
 
 
 
 
Condições para ocorrência de deadlock: 
 Segundo Coffman, Elphick e Shosani (1971), existem 4 condições básicas que devem 
existir para que se possa garantir a existência de um deadlock: 
 1) Condição de exclusão mútua: cada recurso ou está alocado a exatamente um 
 processo ou está disponível. 
 2) Condição de posse e de espera: processos que estejam de posse de recursos 
 obtidos anteriormente podem solicitar novos recursos 
 3) Condição de não-preempção: recursos já alocados a processos não podem ser 
 tomados à força. Eles precisam ser liberados explicitamente pelo processo que 
 detém sua posse. 
 4) Condição de espera circular: deve existir uma cadeia circular de dois ou mais 
 processos, cada um dos quais esperando por um recurso que está com o 
 próximo membro da cadeia. 
 É necessários que todas as condições estejam presentes para que ocorra um deadlock. 
Essa esquematização também é importante, pois permite que sejam desenvolvidos esquemas 
que visam a prevenção de deadlocks. 
 
Como lidar com impasses: 
 Para saber lidar corretamente com impasses, precisamos, antes, definir os recursos 
computacionais disponíveis, e esquematizar a relação entre alocação e requisições destes 
recursos. 
 Daí, podem ser definidos dois estados possíveis para um sistema: seguro e inseguro. 
Um estado é seguro se não provocar um impasse, de forma que haja uma maneira de 
satisfazer todas as solicitações que partem dos processos em execução. 
 No exemplo abaixo, foi definido um único recurso e três processos A, B, C com a 
alocação inicial e alocação máxima deste recurso. No total, existem 10 instâncias deste 
recurso, sendo 7 alocadas e 3 livres. 
 
 Na transição das figuras, o que acontece é um escalonamento cuidadoso dos recursos 
de forma que seja garantida a execução de todos os processos sem a ocorrência de deadlocks. 
Algoritmo do banqueiro 
 Desenvolvido por Dijkstra, a ideia do algoritmo é detectar impasses conferindo 
processos para ver se conceder a solicitação leva a um estado inseguro. Se afirmativo, a 
solicitação é negada. Se conceder a solicitação conduz a um estado seguro, ela é levada 
adiante. 
 No exemplo abaixo, há dois cenários possíveis, seguro e inseguro, respectivamente. 
 
 
 
 
 
Conclusão 
 Deadlocks são situações inerentes à estrutura funcional de um sistema operacional 
que lida com a alocação, uso e liberação de recursos. Essa situação acontece quando um 
conjunto de processos são bloqueados esperando a liberação de algum recurso que outros 
processos do mesmo conjunto estão utilizando. 
 Lidar com impasses pode ser complicado, mas uma abordagem eficiente é controlar o 
uso de recursos garantindo que exista uma sequência de atividades que permita com que 
todos os processos sejam concluídos. 
 Nesse sentido há uma série de algoritmos e abordagens diferentes, como o algoritmo 
do banqueiro que garante a existência de uma sequência de atividades que permite a 
conclusão dos processos. 
 
 
 
 
 
Referências: 
TANEMBAUM, Andrew S. Sistemas Operacionais Modernos. São Paulo, 2003. Prentice Hall. 
MAIA, Luiz Paulo e MACHADO, Francis Berenger. Arquitetura de Sistemas Operacionais. Rio 
de Janeiro, 2002. LTC. 
RIBEIRO, Lucília. Apostila Sistemas Operacionais.

Outros materiais