Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995....

40
Sistemas Operacionais MSc. Marcelo Aires Sistemas de Informação 3º Semestre

Transcript of Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995....

Page 1: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Sistemas Operacionais

MSc. Marcelo Aires

Sistemas de Informação3º Semestre

Page 2: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Deadlocks

MSc. Marcelo Aires

Sistemas de Informação3º Semestre

Page 3: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Agenda

● Recursos;● Deadlock;● Modelagem de Deadlock;● Tratamento de Deadlock;● Ocorrência de Deadlock;● Detecção de Deadlock;● Recuperação de Deadlock;● Estados Seguros e Inseguros;● Algoritmos de prevenção de deadlock.

Page 4: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

O que é um Recurso?

Page 5: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Recursos

● Exemplos de recurso:○ Memória○ HD○ GPU○ Informação

● Recurso é tudo aquilo que pode ser usado;● Processos necessitam de acesso aos recursos em ordem

racional (organizado, raciocinado, sabedoria);

Page 6: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Recursos

● Exemplo de impasse:○ Suponha que um processo 1 possui o recurso A e solicita o

recurso B;○ No mesmo momento, o recurso B esteja sendo usado pelo

processo 2 que também solicita o recurso A;○ Ambos processos querem usar os dois recursos;○ Ambos processos são bloqueados e irão permanecer

assim eternamente;○ Quando dois processos necessitam de um mesmo

recurso, eles estão na região crítica.

Page 7: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Recursos

● Os recursos podem ser:○ Preemptíveis:

■ podem ser retirados de um processo sem quaisquer efeitos;

■ Exemplo: memória (podemos atualizar informações)○ Não preemptíveis:

■ vão induzir o processo a falhar se retirados.■ Exemplo: impressora (uma impressão não pode

sobrepor à outra)

Page 8: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Recursos

● Eventos necessários para os processos usarem um recurso:○ solicitar o recurso;○ usar o recurso;○ liberar o recurso;

● Caso o recurso solicitado seja negado:○ o processo que solicitou pode ser bloqueado; ou○ pode falhar, resultando em um código de erro.

Page 9: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

O que é um Deadlock?

Page 10: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Deadlock

● Conceito formal:○ Um conjunto de processos do Sistema Operacional está

em situação de Deadlock se todo processo pertencente ao conjunto estiver esperando por um evento que somente outro processo desse mesmo conjunto poderá fazer acontecer.

● Normalmente, o evento é uma liberação de um recurso atualmente retido;

● Devido ao impasse, nenhum processo consegue:○ executar;○ liberar recursos;○ ser acordado.

Page 11: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Deadlock

● Deadlocks ocorrem quando os processos detém acesso exclusivo aos recursos;

● Existem quatro condições para ocorrer Deadlocks (obrigatório):○ Condição de exclusão mútua

■ todo recurso está associado a um processo ou disponível○ Condição de posse e espera

■ processos que retém recursos podem solicitar novos recursos○ Condição de não preempção

■ recursos concedidos previamente não podem ser tomados à força○ Condição de espera circular

■ deve ser uma cadeia circular de 2 ou mais processos;■ cada um está à espera de recurso retido por outro processo da

cadeia.

Page 12: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Modelagem de Deadlock

● (a) recurso R alocado ao procedo A;● (b) processo B solicita o recurso S;● (c) processos C e D estão em deadlock sobre os recursos T e U.

Page 13: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Como tratar um Deadlock?

Page 14: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Tratamento de Deadlock

● ignorar por completo o problema○ tô nem aí

● detecção e recuperação○ espero acontecer e depois trato

● evitação dinâmica○ alocar cuidadosamente os recursos

● prevenção○ negar uma das quatro condições necessárias

Page 15: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Como ocorre o Deadlock?

Page 16: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Como ocorre o Deadlock

Page 17: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Como evitar um Deadlock?

Page 18: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Como pode evitar um Deadlock

Page 19: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Algoritmo do Avestruz

● Finge que o problema não existe (mete a cabeça na areia)● Resolve razoavelmente se

○ deadlocks ocorrem muito raramente○ custo de prevenção é alto

● UNIX e Windows seguem esta abordagem● Abordagem de ponderação entre conveniência e correção● Sistemas robustos

○ ocorrência rara○ se ocorrer, não é fim do mundo

Page 20: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Como detectar um Deadlock?

Page 21: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Detecção de deadlock

Page 22: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Detecção de deadlock

● Observe a posse e solicitações de recursos● Um ciclo pode ser encontrado dentro do grafo

Page 23: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Prevenção de Deadlock

Page 24: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Prevenção do Deadlock

● Estruturas de dados necessárias ao algoritmo dedetecção de deadlock

Page 25: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Exemplo de algoritmo

● E: Todos os recursos● A: Disponível● C: em uso● R: recursos solicitados● Cada linha equivale a um

processo

● Como funciona:○ Olhando para A, qual

processo em R pode ser executado?

Page 26: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Formas de Recuperação

Page 27: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Recuperação de Deadlock

● Recuperação através de preempção○ retira um recurso de algum outro processo, a depender da

natureza do recurso● Recuperação através de reversão de estado

○ verifica um processo periodicamente e salva o estado;○ reinicia o processo ou parte se este é encontrado em

estado de deadlock● Recuperação através da eliminação de processos

○ forma mais grosseira, mas é mais simples○ elimina um dos processos do ciclo de deadlock○ escolhe um processo que pode ser reexecutado desde seu

início

Page 28: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Trajetórias de recursos (prevenção)

Page 29: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Estados Seguros e Inseguros

Page 30: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Estados Seguros e Inseguros

● Demonstração de que o estado em (a) é seguro

Page 31: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Estados Seguros e Inseguros

● Demonstração de que o estado em (b) é inseguro

Page 32: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Algoritmo do Banqueiro

Page 33: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Algoritmo do Banqueiro

● É um algoritmo de alocação de recursos com prevenção de impasses;

● Desenvolvido por Edsger Dijkstra;● Testa a segurança pela simulação da alocação e em seguida

faz uma verificação de estados-seguros para testar a possibilidade de condições de impasse.

● Ele precisa saber três coisas:○ Quanto de cada recurso cada processo poderia solicitar;○ Quanto de cada recurso cada processo atualmente detém;○ Quanto de cada recurso o sistema tem disponível.

Page 34: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Algoritmo do Banqueiro (1 recurso)

● Três estados de alocação de recursos○ (a) seguro○ (b) seguro○ (c) inseguro

Page 35: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

algoritmo_do_banqueiro(conjunto de processos P, recursos disponíveis A) {while (P não vazio) {

boolean achou = falsefor each (processo p in P) {

Cp = atual alocação de recursos para o processo(p)Mp = requisito máximo de recursos para o processo(p)if (Mp − Cp ≤ A) {

// p pode obter tudo de que necessita.// Suponha que ele faz isso, termina, e libera o que ele já tem.A = A + Cpremove_elemento_do_conjunto(p, P)achou = true

}}if (not achou) { return INSEGURO }

}return SEGURO

}

Page 36: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Algoritmo do Banqueiro

● Recursos do sistema disponíveis são:A B C D3 1 1 2

● Processos (recursos atualmente alocados):A B C D

P1 1 2 2 1P2 1 0 3 3P3 1 1 1 0

● Processos (máximo de recursos):A B C D

P1 3 3 2 2P2 1 2 3 4P3 1 1 5 0

Page 37: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Algoritmo do Banqueiro

● Exemplo anterior é um estado de segurança, cada processo adquire o máximo de seus recursos e, em seguida, finaliza:○ P1 adquire os recursos 2 A, 1 B e 1 D, atingindo o seu máximo

■ Disponíveis: 1 A, nenhum B, 1 C e 1 D○ P1 termina, retornando os recursos 3 A, 3 B, 2 C e 2 D

■ Disponíveis 4 A, 3 B, 3 C e 3 D○ P2 adquire 2 B e 1 D recursos extras, então termina, retornando

todos os seus recursos■ Disponíveis: 5 A, 3 B, 6 C e 6 D

○ P3 adquire os recursos 4 C e termina■ Disponíveis: 6 A, 4 B, 7 C e 6 D

● Todos os processos foram capazes de terminar, esse estado é seguro.

Page 38: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Exemplo de Algoritmo do Banqueirocom múltiplos recursos

Todos os recursosEm usoDisponível

Page 39: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Referências

● Junior, C., Sebastião, R., Ledur, Lopes, C., Morais, de, I. S. Sistemas Operacionais. 9788595027336. Disponível em: https://integrada.minhabiblioteca.com.br/#/books/9788595027336/. Accesso em: 24 Mar 2020

● TANENBAUM, Andrew S.; MACHADO FILHO, Nery. Sistemas operacionais modernos. Prentice-Hall, 1995.

Page 40: Operacionais Sistemas - Marcelo Aires€¦ · Sistemas operacionais modernos. Prentice-Hall, 1995. Exercícios de Fixação Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

Exercícios de Fixação

● Exemplifique esquemas de deadlock (impasse) no nosso cotidiano.

● Quando ocorre o deadlock, o que os processos não conseguem fazer?

● Quais as condições obrigatórias para ocorrer deadlock?● Existem formas de prever e tratar o deadlock? Cite e

exemplifique.