Capítulo 3. Deadlocks. Recursos

Documentos relacionados
Capítulo 3 Deadlocks - Impasses

Capítulo 3 Deadlocks - Impasses

Recursos. Exemplos de recursos:

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Deadlocks. Sistemas Operacionais - Professor Machado

MAC422/5753 Sistemas Operacionais

Deadlock. Um problema de concorrência. Parte dos slides: Sistemas Operacionais Modernos 2ª Edição, Pearson Education

Programação Concorrente. 2º Semestre 2010

SSC0640 Sistemas Operacionais I

Sistemas Operacionais Aula 09: Deadlocks / Impasses. Ezequiel R. Zorzal

SOP - TADS Impasses - Deadlock

Capítulo 7: Impasse (Deadlocks( Deadlocks)

Sistemas Operacionais

Deadlocks (impasses)

Sistemas Operacionais. Deadlock

DEADLOCKS IMPASSES. Vinícius Pádua

Sistemas Distribuídos

Sistemas Operacionais. DeadLock. Edeyson Andrade Gomes.

Capítulo 7: Deadlocks. Operating System Concepts 8th Edition

Algoritmos Distribuídos (deadlock) ALGORITMOS DISTRIBUÍDOS Deadlock. Algoritmos Distribuídos (deadlock) Algoritmos Distribuídos (deadlock)

Sincronização e Comunicação entre Processos. Adão de Melo Neto

ALGORITMOS DISTRIBUÍDOS Deadlock

Sistemas Operacionais: Deadlocks

SISTEMAS OPERACIONAIS

Sistemas de Informação. Sistemas Operacionais

Aula 9. Deadlocks. Caracterização Grafo de dependência Métodos de tratamento Detecção Recuperação. Universidade Federal de Minas Gerais

Sistemas Operacionais Bloqueios Perpétuos

Fundamentos de Sistemas Operacionais

BC1518-Sistemas Operacionais. Prof. Marcelo Z. do Nascimento

Sincronização e Comunicação entre Processos

Sincronização e Comunicação entre Processos. Adão de Melo Neto

Algoritmos de escalonamento

Escalonamento de Processos

Resumo: Sistemas Operacionais Abertos

Sistemas Operacionais. Escalonamento de processos

Algoritmos Distribuídos (exclusão mútua) ALGORITMOS DISTRIBUÍDOS Exclusão mútua. Algoritmos Distribuídos (exclusão mútua)

Impasses. Pedro Cruz. EEL770 Sistemas Operacionais

Alocação de Recursos. Introdução. Sistemas de Tempo Real: Introdução. Modelo de Recursos. Modelo de Recursos. Modelo de Recursos

Deadlocks. Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS. SEMANAS 11 e 12

( ) ( ) Auto Avaliação F ( ) M ( ) D ( ) Seqüência: Sistemas Operacionais - UCSAL Professor : Marco Antônio C. Câmara Exercícios - Dia 20/04/2011

ENADE 2011 SISTEMAS OPERACIONAIS

Sistemas Operacionais Aula 7

Capítulo 2 Processos e Threads

Sincronização e comunicação entre processos

Programação de Sistemas. Impasse e carência

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Distribuídos

Fundamentos de Sistemas Operacionais

LabSO Gerência de Processos. Retrospectiva da aula passada... Na aula passada... Na aula passada...

Sistemas Operacionais. Gerência de Processador

Sistemas Operacionais

Capítulo 6 Deadlocks. Não encontre defeitos, encontre soluções. Qualquer um sabe queixar-se. Henry Ford

Definição. ? Algoritmo de Escalonamento de CPU. ? Algoritmo do S.O. que determina qual o próximo processo a ocupar a CPU

Comunicação entre Processos

Aula 6: Comunicação entre processos. Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela

SOP - TADS Escalonamento de Processos

Sistemas Operativos. Deadlocks FEUP. 23 de Outubro, 2009

Sistemas Operativos. Objetivo. Entrega do Questionário. Exercício 1. Exercício 2. Exercício 3. Exercício 4. Grupo 1 Introdução

Redes de Computadores. INF201 - Fundamentos de Sistemas Operacionais - 2º Período

Sistemas Operacionais. Universidade Federal de Minas Gerais. Aula 3. Escalonamento

Escalonamento. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 42

Sistemas de Computação. Processos e escalonamento

DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO SISTEMAS OPERACIONAIS I SEM/12 PROVA I. Tempo de Prova: 100 minutos / Escore Máximo: 300 pontos

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 09. Escalonadores. Conceito, escalonamento, filas de escalonamento e tipos de escalonadores.

Sistemas Operacionais Aula 6

6 ESCALONAMENTO DE CPU

Gerência de Recursos. Gerência do Processador

SO: Escalonamento. Sistemas Operacionais Flavio Figueiredo (

Infra-Estrutura de Software. Escalonamento

Modelagem de Sistemas de Tempo Real. Sérgio Campos

Processos. Escalonamento de Processos

Sistemas Operacionais. Processos IC - UFF

Escalonamento da CPU

Semáforos. Gerenciamento de Recursos I

SISTEMAS OPERACIONAIS. TÁSSIO JOSÉ GONÇALVES GOMES

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas de Tempo-Real. Acesso exclusivo a recursos partilhados

Inversão de prioridades

SISTEMAS EMBARCADOS. Escalonamento e Tempo Real. Prof. André Schneider de Oliveira

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Sistemas Operacionais Gerenciamento de Processos

Escalonamento. Decidindo qual processo vai executar. Infra-estrutura de Software

Gerência do Processador. Adão de Melo Neto

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais

Tempos e Estados Globais. ECO036 - Sistemas Paralelos e Distribuídos

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

Gerência de Memória. Aspectos de Projeto

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

Processos. Aula Passada. Aula Passada (2) Ciclos de CPU e de I/O (1)

Sincronização e Comunicação de/entre Processos. Na Aula Anterior... Nesta Aula. Comunicação entre Processos. Pipes 07/09/2016

Processos. Escalonamento de Processos

Processos. Objetivos do Escalonamento. Políticas de Escalonamento. Algoritmos de Escalonamento. Maximizar a taxa de utilização da UCP.

TE244 - Sistemas Operacionais Lista Exercícios 1

Infra-estrutura de Software. Escalonamento. Decidindo qual processo vai executar

Processos. Escalonamento de Processos

Sistemas de Tempo-Real. Acesso exclusivo a recursos partilhados

Fundamentos de Sistemas Operacionais

Transcrição:

Capítulo 3 Deadlocks 3.1. Recursos 3.2. Introdução a deadlocks 3.3. O algoritmo a avestruz 3.4. Detecção e recuperação de deadlock 3.5. Evitando Deadlock 3.6. Prevenindo Deadlock 3.7. Outros assuntos 1 Recursos Reusáveis Usado e não gasto por um processo Arquivo em disco Unidade de Fita Processadores Canais de E/S Memórias Dispositivos Semáforos Bancos de Dados Consumíveis Criado e consumido (destruído) Interrupções Sinais Mensagens Informação em buffers de E/S 2 1

Recursos Os processos precisam ter acesso aos recursos de forma razoavelmente ordenada Suponha que um processo tenha o recurso A e solicite o recursos B Ao mesmo tempo, outro processo possui B e solicita A Ambos são bloqueados e permanecem bloqueados 3 Recursos (1) Deadlocks ocorem quando Processos obtém aceeso exclusivo a dispositivos Estes dispositivos são chamados recursos em geral Recursos Preemptáveis Podem ser retirados de um processo sem efeito danoso Recursos Não Preemptáveis Provocaram falha do processo se retirados 4 2

Recursos(2) Sequencia de eventos requeridos para usar um recursos 1. Solicitar o recurso 2. Usar o recurso 3. Liberar o recurso 5 Deve esperar se solicitação é negada Processo solicitante pode ser bloqueado Pode falhar com código de erro Introdução aos Deadlocks Definição Formal: Um conjunto de processos está em deadlocked se cada processo no conjunto espera por um evento que apenas um outro processo do conjunto pode causar Normalmente o evento é a liberação de um recurso Nenhum dos processo pode executar Liberar recursos Ser acordado 6 3

Quatro condições para Deadlock 1. Exclusão mútua 2. Toma e espera 3. Ausência de preempção 4. Espera Circular 7 Modelagem de Deadlocks Modelado por grafos diretos recurso R está atribuido ao processo A processo B está solcitando/esperando recurso S procesos C e D estão em deadlock sobre os recursos T e U 8 4

Modelagem Deadlock Estratégias para lidar com deadlock 1. Ignore o problema! 2. Detecção e recuperação 3. Evite dinamicamente Alocação cuidadosa de recursos 4. Prevenção Negação de uma das quatro condições 9 Modelagem de Deadlock A B C 10 Como deadlocks ocorrem 5

Modelagem de Deadlock (o) (p) (q) 11 Como deadlock pode ser evitado O algoritmo da avestruz 12 Finja que não há qualquer problema Razoável se deadlocks ocorre muito raramente Custo de prevenção é alto UNIX e Windows adotam este enfoque É um custo benefício (trade off) entre conveniencia corretude 6

Detecção cm um recurso de cada tipo (1) 13 Observe o propriedade do recurso e solicitações Um ciclo pode ser observado no grafo, denotando deadlock Detecção cm um recurso de cada tipo (1) 14 Estruturas de dados requeridas pelo algoritmo de detecção de deadlock 7

Detecção com um recurso de cada tipo (1) 15 Um exemplo para o algoritmo de detecção de deadlock Recuperação de Deadlock (1) Recuperação por preempção Tome um recurso de algum outro processo Depende da natureza do recurso Recuperação por retrocesso Realize pontos de verificação periodicamente Use este estado salvo Reinicie o processo se for encontrado um deadlock 16 8

Recuperação de Deadlock Recuperação matando processos Forma mais simples de resolver um deadlock Mate um dos processos no ciclo de deadlock deadlock O outro processo obtem os recursos Escolhar processos que possam ser re-executados do início 17 Evitando Deadlock trajetórias de recursos 18 Duas trajetórias de recursos de processos 9

Exemplo de trajetória Deadlock pode ocorrer 19 Exemplo de trajetória Deadlock não pode ocorrer 20 10

Estados seguros e inseguros (a) (b) (c) (d) (e) Demonstração que o estado em (a) é seguro 21 Estados seguros e inseguros(2) (a) (b) (c) (d) Demonstração que o estado em b é inseguro 22 11

Algoritmo do banqueiro Um estado é segura sse existe uma seqüência {P1..Pn} onde a cada Pi é alocado todos os seus recursos para execução até o término Ou seja, podemos sempre rodar todos os processo até a término a partir de um estado seguro O algoritmo de segurança é a parte que determina se um estado é seguro Inicialização: Todos os processos são considerados não terminados O vetor de trabalho é inicializado com a quantidade de recursos disponíveis : W(i) = V(i) para todo i; 23 REPITA: Ache um processo não terminado j tal que N(j,i) <= W(i) para todo i. Se não existe tal j, vá para FIM SENÃO: termine este processo e recupere os seus recursos: W(i) = W(i) + A(j,i) para todo i. Então vá para REPITA FIM: se todos os processo terminaram estão este estado é seguro. Senão, é inseguro. 24 12

Seja Q(j,i) a quantidade de recurso do tipo i requisitada pelo processo j. Para determinar se uma solicitação deve ser atendida usamos o algoritmo do banqueiro: Se Q(j,i) <= N(j,i) pata todo i então continue. Senão provoque condição de erro (solicitações excedidas). Se Q(j,i) <= V(i) para todo i então continue. Senão espere (recurso não está disponível ainda) Finja que a solicitação foi atendida e determine o novo estado recurso-alocação: 25 V(i) = V(i) - Q(j,i) para todo i A(j,i) = A(j,i) + Q(j,i) para todo i N(j,i) = N(j,i) - Q(j,i) para todo i Se o estado resultando for seguro então aloque o recurso para o processo j. Caso contrário, o processo j deve esperar pela solicitação Q(j,i) e restaurar o estado antigo. 26 13

Temos 3 tipos de recursos com quantidades: R(1) = 9, R(2) = 3, R(3) = 6 E temos 4 processos com estado inicial: 27 Temos 3 tipos de recursos com quantidades: R(1) = 9, R(2) = 3, R(3) = 6 E temos 4 processos com estado inicial: P1 P2 P3 P4 Claimed Allocated Available R1 R2 R3 R1 R2 R3 R1 R2 R3 3 2 2 6 1 3 3 1 4 4 2 2 1 0 0 5 1 1 2 1 1 0 0 2 1 1 2 28 Suponha que P2 solicite Q = (1,0,1). A solicitação deve ser atendida? 14

29 O estado resultante seria: P1 P2 P3 P4 Claimed Allocated Available R1 R2 R3 R1 R2 R3 R1 R2 R3 3 2 2 1 0 0 0 1 1 6 1 3 6 1 2 3 1 4 2 1 1 4 2 2 0 0 2 Este estado é seguro com seqüência {P2, P1, P3, P4}. Após P2, temos W = (6,2,3) que habilita o outro processo terminar. Daí: atende a solicitação.. 30 15

31 No entanto, se do estado inicial, P1 solicitasse Q = (1,0,1). O estado resultante seria: 32 P1 P2 P3 P4 Claimed Allocated Available R1 R2 R3 R1 R2 R3 R1 R2 R3 3 2 2 6 1 3 3 1 4 4 2 2 2 0 1 5 1 1 2 1 1 0 0 2 0 1 1 Que não é seguro pois qualquer processo para terminar precisaria uma unidade adicional de R1. Solicitação recusada: P1 é bloqueado. 16

O Algoritmo do Banqueiro para um recurso (a) (b) (c) 33 Três estados de alocação de recursos seguro Seguro inseguro O Algoritmo do Banqueiro para Múltiplos Recursos 34 17

Algoritmo do banqueiro : comentários Um estado seguro não pode ser deadlocked. Mas um inseguro não está necessariamente em deadlock. Ex: P1 do estado anterior (inseguro) poderia liberar temporariamente uma unidade de R1 e R3 (retornando para um estado seguro) Alguns processos podem ter que esperar desnecessariamente Uso sub ótimo dos recursos Todos os algoritmos que evitam deadlock assumem que os processos são independentes: livres de qualquer restrição de sincronização 35 Prevenção de Deadlock Atacando a condição de exclusão mútua 36 Alguns dispositivos (como impressoras) podem ser spooled Apenas o daemon usa o recurso impressora Assim, deadlock para a impressora é eliminado Nem todos os dipositivos podem ser spooled Princípio: Evite alocar recurso quando não for absolutametne necessário O mínimo de processos possível deve solicitar o recurso 18

Atacando a condição de toma e espera 37 Obrigue o processo a solicitar recurso antes de iniciar Um processo nunca irá esperar por um reccurso Problemas Pode não saber todos os recursos que necessitará no início Prende recursos que outros processos poderiam estar utilizando Variação: Processos devem liberars todos os recursos Então solicitar todos os recurso necessários naquele instante Atacar a condição de falta de preempção NÃO É UMA OPÇÃO VIÁVEL Considere um processo que obteve uma impressora Na metade da sua tarefa Perde a impressora!!?? 38 19

Atacando a condição de espera circular (1) (a) (b) Recusos normalmente ordenados Um grafo de recursos 39 RESUMO 40 20

Outros tópicos Trava (lock) em duas fases 41 Fase 1 O processo tentar travar todos os registros que precisa, um por vez Se algum registro requerido estiver travado, reinicia (nenhum trabalho real é feito na fase um) Se a fase um for bem sucedida, inicia a fase dois Realiza atualizações Libera travas Observe a similiraridade com requerer todos os recursos de uma vez O algortimo funcioina se programa pode ser parado e reiniciado Deadlocks sem recursos É possível que dois processos entrem em deadlock Cada um espera que o outro realize uma tarefa Pode ocorer com semáforos Cada processo deve fazer um down() em dois semáforos (mutex e outro) Se realizado na ordem errada, ocorrerá deadlock 42 21

Fome (Starvation) O algoritmo para alocar um recurso Pode ser shortest job first Funciona muito bem para processos curtos tem um sistema Pode fazere com que processos longos seja adiados indefinidamente Apesar de não estar bloqueado Solução: Política First-come, first-served 43 22