operacionais sistemas - marcelo aires€¦ · sistemas operacionais modernos. prentice-hall, 1995....

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

Upload: others

Post on 11-Dec-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

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.