Sistemas Operacionais: Deadlocks

Documentos relacionados
Capítulo 7: Impasse (Deadlocks( Deadlocks)

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

DEADLOCKS IMPASSES. Vinícius Pádua

SISTEMAS OPERACIONAIS

Sistemas Operacionais

Deadlocks (impasses)

Capítulo 3 Deadlocks - Impasses

SSC0640 Sistemas Operacionais I

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

Capítulo 3 Deadlocks - Impasses

Programação Concorrente. 2º Semestre 2010

Sistemas Distribuídos

ALGORITMOS DISTRIBUÍDOS Deadlock

Capítulo 3. Deadlocks. Recursos

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

Sincronização e Comunicação entre Processos

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

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

Sistemas Operacionais Bloqueios Perpétuos

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

Técnicas de Controle de Concorrência

Sistemas de Informação. Sistemas Operacionais

Resumo: Sistemas Operacionais Abertos

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

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

Fundamentos de Sistemas Operacionais

Inversão de prioridades

Sistemas Distribuídos

Faculdade de Informática - PUCRS. Sistemas Distribuídos 2. Faculdade de Informática - PUCRS. Sistemas Distribuídos 4. Faculdade de Informática - PUCRS

Técnicas de Controle de Concorrência

Sistemas Operacionais: Sincronização entre processos

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

QUESTÕES LEGISLAÇÃO DE TRÂNSITO COMENTADAS PROF. MARCOS GIRÃO MOTORISTA DE CAMINHÃO GRANEL I PROVA 3

Questões de Provas de Períodos Anteriores

Retrospectiva da aula passada... Escalonamento. Na aula passada... Comunicação entre processos (-- O jantar dos filósofos --)

Programação Concorrente Locks

AULA 11 PROJETO E ANÁLISE DE ALGORITMOS. Conceitos básicos e representação de grafos Karina Valdivia Delgado

CAPÍTULO III DAS NORMAS GERAIS DE CIRCULAÇÃO E CONDUTA Art. 26. Os usuários das vias terrestres devem: I - abster-se de todo ato que possa constituir

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

Deadlocks. Sistemas Operacionais - Professor Machado

Sistemas Operacionais. Gerência de Processador

Avisos. Processamento de Transações Controle de Concorrência. Roteiro da aula. Tipos de bloqueio: Binários. Protocolos baseados em bloqueio

Escalonamento de Processos

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

SISTEMAS EMBARCADOS. Acesso a recursos compar,lhados. Prof. André Schneider de Oliveira

Estrutura de Dados. Aula 07 Alocação Dinâmica

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Operacionais. Prof. André Y. Kusumoto

Roteiro. Introdução Sincronização de Relógio Físico Sincronização de Relógio Lógico Exclusão Mútua

14/05/2017. Conceitos de Processos. Conceitos de Processos. Conceito de processo

Algoritmos de escalonamento

Relógio Lógico Algoritmo de Lamport. Relógio Lógico Algoritmo de Lamport. Relógio Físico Algoritmo Centralizado. Relógio Físico Algoritmo Centralizado

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

(Model Checking) Estes slides são baseados nas notas de aula da Profa. Corina

- CURSO DE DIREÇÃO DEFENSIVA -

Manual de Utilização (Fluxo)

LICENCIATURA EM COMPUTAÇÃO. Resenha Livro Sistemas Operacionais 4ª edição Capítulo quatro: Gerencia do processador

Exclusão Mútua em Sistemas Distribuídos

CONHECIMENTOS BÁSICOS

Davidson Rodrigo Boccardo

Sincronização e comunicação entre processos

SINACOR TESOURARIA PROCESSOS CLIENTES. Classificação das Informações. Confidencial [ ] Uso Interno [ X ] Uso Público 6/6/2016

Teoria dos Grafos Aula 6

Programação Linear M É T O D O S : E S T A T Í S T I C A E M A T E M Á T I C A A P L I C A D A S D e 1 1 d e m a r ç o a 2 9 d e a b r i l d e

Sistemas Operacionais

Transcrição:

Sistemas Operacionais: Deadlocks

Definição Deadlocks (impasse) Um conjunto de processos bloqueados cada um de posse de um recurso, esperando por um outro recurso que já está alocado por outro processo do mesmo conjunto

Código de trânsito brasileiro Art. 29. O trânsito de veículos nas vias terrestres abertas à circulação obedecerá às seguintes normas: III - quando veículos, transitando por fluxos que se cruzem, se aproximarem de local não sinalizado, terá preferência de passagem: a) no caso de apenas um fluxo ser proveniente de rodovia, aquele que estiver circulando por ela; b) no caso de rotatória, aquele que estiver circulando por ela; c) nos demais casos, o que vier pela direita do condutor; Existe a possibilidade de um impasse?

Caracterização de um impasse Um deadlock pode ocorrer, somente se as quatro condições a seguir ocorrem simultaneamente: Exclusão mútua: acesso exclusivo a recursos Obtém e espera: um processo de posse de um recurso espera para obter um outro recurso Sem preempção: um recurso somente pode ser liberado voluntariamente pelo processo Espera circular: um conjunto de processos {P 0,P 1,..,P n }. O processo P 0 espera por um recurso alocado por P 1, P 2 espera por P 2, e assim sucessivamente

Modelo do sistema Recursos do sistemas S 1, S 2,...,S n Cada recurso R i tem W i instâncias Para utilizar um recurso, um processo realiza as seguintes seqüências Requisita Utiliza Libera

Grafo de alocação de recursos Conjunto de vértices V e arestas E V é particionado em dois tipos: P = {P 1, P 2,, P n }, conjunto de processos no sistema. R = {R 1, R 2,, R m }, conjunto de recursos do sistema. Aresta de requisição aresta P 1 R j Aresta de atribuição aresta R j P i

Grafo de alocação de recursos Processo Recurso Processo P i solicita recurso R j P i Recurso R j alocado para o processo P i R j P i R j

Exemplo Impasse: satisfaz as 4 propriedades de um impasse?

Grafo com ciclo porém sem impasse Porque não existe impasse na situação acima?

Impasse Se um grafo não contém ciclos sem impasse. Se um grafo contém ciclos Se existe somente uma instância do recurso, então impasse. Se existe várias instâncias, possibilidade de impasse.

Métodos para manipular impasses 1. Garantir que o sistema nunca entrará em um estado de impasse. a) Prevenção de impasse (por construção) b) Evitar o impasse (em tempo de execução) 2. Permitir que o sistema entre em um estado de impasse e recuperá-lo. 3. Ignorar o problema e torcer para que um deadlock não ocorra no sistema (afinal, qual seria a utilidade do botão reset?).

Prevenção do impasse Exclusão mútua Alguns recursos necessitam de acesso exclusivo, portanto é uma situação obrigatória Obtém e espera: evitar que um processo Obtém e espera: evitar que um processo solicite um recurso, enquanto estiver de posse de outros recursos Solicitar todos os recursos no início da execução Baixa utilização dos recursos (possibilidade de abandono de processos starvation )

Prevenção de impasses(2) Sem preempção Possibilitar a preempção. Um processo de posse de alguns recursos, solicita outro recurso que não pode ser alocado. O processo libera os recursos obtidos e espera O processo entra na fila de solicitação de todos os recursos que ele tinha acesso, mais o recurso solicitado O processo volta a executar somente quando todos os recursos estão disponíveis Espera circular Impor uma ordem dos recursos, e possibilitar somente a alocação dos recursos em ordem crescente

Evitar o impasse Necessita de algumas informações adicionais Cada processo deve declarar o número máximo de recursos de cada tipo que utilizará durante a execução Algoritmo para evitar o impasse analisa dinamicamente o estado do grafo de alocação de recursos para verificar a situação de espera circular O estado do grafo de alocação do recurso considera o número de recursos alocados e o máximo disponível, e a utilização máxima de cada processo

Estado seguro Quando um processo solicita um recurso, deve-se analisar se a alocação imediata deixará o sistema em um estado seguro (sem possibilidade de impasse) Estado seguro: se existe uma sequencia de processos <P 1, P 2,, P n>, de todos os processos do sistema, onde para cada P i, os recursos que P i pode ainda solicitar, são satisfeitos pelos recursos disponíveis + recursos alocados por P j, onde j < i Se os recursos que Pi necessita não estão disponíveis, Pi poderá esperar até que os processso Pj sejam finalizados Os recursos que Pi necessita, estarão disponíveis após a finalização dos processos Pj Pi+1 pode continuar a executar após finalização de Pi, onde todos os recursos necessários estarão disponíveis

Estado seguro x Estado inseguro Se o sistema está em estado seguro: sem possibilidade de impasse Se o sistema está inseguro: existe a possibilidade de impasse Evitar o impasse: não permitir que o sistema entre em estado inseguro.

Algoritmo do banqueiro Evitar o impasse em um sistema com múltiplas instâncias de recursos Cada processo deve durante sua inicialização, indicar todos os recursos que irá utilizar (o máximo) Quando um processo solicita um recurso, o mesmo pode esperar O processo tem que garantir que liberará todos os recursos em uma quantidade finita de tempo

Algoritmo do banqueiro N = processos, M= tipos de recursos Available= vetor de tamanho M. Available[j]= K, indica que existem K instâncias do recurso Rj disponíveis Max= matriz NxM. Max[i, j]=k, indica que um processo Pi pode solicitar no máximo K instâncias do recurso Rj. Allocation= matriz NxM. Allocation[i, j]=k, indica que um processo Pi, alocou K instâncias do recurso Rj Need= matriz NxM. Need[i, j]=k, indica que um processo Pi, necessita ainda K instâncias do recurso Rj para finalizar. Need= Max-Allocation

Algoritmo para avaliação do estado 1. Work e Finish são dois vetores de tamanho m e n, respectivamente. Inicializar Work= available Finish[i]= false, para i=0..n 2. Procure um i, onde: Finish[i]= false Need i <=Work Se não existir um processo i, vá para o passo 4 3. Passo 3 Work= Work+ Allocation i Finish[i]= true Volte para o passo 2 4. Passo 4 Se Finish[i]=true para todo i, o sistema está em estado seguro

Algoritmo para alocação recursos do processo Pi Request i = vetor de requisições do processo Pi 1. Se Request i <= Need i, vá para o passo 2. Senão, sinalize um erro, pois o processo solicitou mais recursos que ele declarou necessitar 2. Se Request i <= Available, vá para o passo 3. Senão, o processo Pi deve esperar pois os recursos não estão disponíveis 3. O processo Pi pretende alocar os recursos, logo é necessário atualizar as estruturas de dados Available = Available Request; Allocation i = Allocation i + Request i ; Need i = Need i Request i ; Se seguro => os recursos podem ser alocados Senão o processo deve esperar, e o estado anterior deve ser restaurado

Exemplo do algoritmo do banqueiro 5 processos P 0.. P 4 ; 3 tipos de recursos: A (10 instâncias), B (5 instâncias), and C (7 instâncias). Visão do sistema no tempo T 0 : Allocation Max Available A B C A B C A B C P 0 0 1 0 7 5 3 3 3 2 P 1 2 0 0 3 2 2 P 2 3 0 2 9 0 2 P 3 2 1 1 2 2 2 P 4 0 0 2 4 3 3

Exemplo O conteúdo da matriz Need = Max Allocation. Need A B C P 0 7 4 3 P 1 1 2 2 P 2 6 0 0 P 3 0 1 1 P 4 4 3 1 O sistema esta em estado seguro < P 1, P 3, P 4, P 2, P 0 > satifaz o critério de segurança.

P 1 requisita (1,0,2) Verifique que Request Available (isto é, (1,0,2) (3,3,2) true. Allocation Need Available A B C A B C A B C P 0 0 1 0 7 4 3 2 3 0 P 1 3 0 2 0 2 0 P 2 3 0 1 6 0 0 P 3 2 1 1 0 1 1 P 4 0 0 2 4 3 1 Executando o algoritmo, obtemos que a sequência < P 1, P 3, P 4, P 0, P 2 > satisfaz o critério de segurança.

Exercício Requisição (3,3,0) por P 4 pode ser realizada? Requisição (0,2,0) por P 0 pode ser realizada?

Detecção de impasses Permitir que o sistema entre em um estado de impasse e recuperá-lo.

Detecção de impasses Permitir que o sistema entre em estado de impasse Detectar Recuperar um estado seguro

Única instância Gerar um grafo waiting-for Nós: processos Pi ->Pj, Pi esperando por um recurso alocado por Pj Algoritmo de detecção de ciclos

Múltiplas instâncias M tipos de recursos no sistema Available: vetor de tamanho m. Indica os recursos disponíveis Allocation: matriz NxM. Número de recursos que cada processo tem alocado Request: matriz NxM. Matriz representa as requisições que estão em andamento.

Algoritmo de detecção de impasse 1. Work e Finish são vetores de tamanho M e N respectivamente Work= Available Finish[i]= false, se Allocation i!= 0, senão Finish[i]= true 2. Procurar um i, onde Finish[i]== false Request i <= Work Se um nenhum elemento i existe com essas condições, vá para o passo 4 3. Passo 3 Work= Work + Allocation Finish[i]= true Vá para o passo 2 4. Passo4 Se existe Finish[i] ==false, então o sistema está em estado de impasse. Os processos com Finish=false, estão em impasse.

Exemplo de detecção de deadlocks Processos P 0.. P 4 ; 3 tipos de recursos A (7 instâncias), B (2 instâncias), e C (6 instâncias). Estado do sistema no tempo T 0 : Allocation Request Available A B C A B C A B C P 0 0 1 0 0 0 0 0 0 0 P 1 2 0 0 2 0 2 P 2 3 0 3 0 0 0 P 3 2 1 1 1 0 0 P 4 0 0 2 0 0 2 Seqüência <P 0, P 2, P 3, P 1, P 4 > resultará Finish[i] = true para todo i.

Deadlock P 2 requisita uma instância adicional do recurso C. Request A B C P 0 0 0 0 P 1 2 0 2 P 2 0 0 1 P 3 1 0 0 P 4 0 0 2 Estado do sistema? Pode utilizar os recursos de P 0, porém insuficiente para satisfazer as outras requisições. Um impasse existe no sistema, com os processos P 1, P 2, P 3, and P 4

Utilização do algoritmo de detecção de impasse Qual a freqüência para invocar o algoritmo Depende da utilização do sistema Se demorar muito, poderá ocorrer muitos ciclos Quantos processos devem retornar a um estado seguro para sair do estado de impasse? (um para cada ciclo)

Recuperação do impasse Finalizar processos Finalizar todos os processos no estado de impasse Eliminar um processo por vez, até que o impasse seja finalizado Em qual ordem? Prioridade Utilização dos recursos Tempo de execução Preempção de recursos