Programação Concorrente. 2º Semestre 2010



Documentos relacionados
SSC0640 Sistemas Operacionais I

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

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

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

Capítulo 3 Deadlocks - Impasses

DEADLOCKS IMPASSES. Vinícius Pádua

Capítulo 3 Deadlocks - Impasses

SISTEMAS OPERACIONAIS

Capítulo 3. Deadlocks. Recursos

Sistemas Operacionais. DeadLock. Edeyson Andrade Gomes.

Capítulo 7: Impasse (Deadlocks( Deadlocks)

MAC422/5753 Sistemas Operacionais

Sistemas Operacionais

Sistemas Operacionais. Deadlock

SOP - TADS Impasses - Deadlock

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

Recursos. Exemplos de recursos:

Deadlocks. Sistemas Operacionais - Professor Machado

Sistemas de Informação. Sistemas Operacionais

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

Deadlocks (impasses)

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

Sistemas Distribuídos

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

Impasses. Pedro Cruz. EEL770 Sistemas Operacionais

Impasses. Pedro Cruz. EEL770 Sistemas Operacionais

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

Fundamentos de Sistemas Operacionais

Sistemas Operacionais: Deadlocks

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

ALGORITMOS DISTRIBUÍDOS Deadlock

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

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

Sistemas Operacionais Bloqueios Perpétuos

Sincronização e Comunicação entre Processos

Escalonamento de Processos

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

Sistemas Operacionais. Prof. André Y. Kusumoto

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

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

Sistemas Operacionais. Escalonamento de processos

Sistemas Operativos. Deadlocks FEUP. 23 de Outubro, 2009

Resumo: Sistemas Operacionais Abertos

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

Sumário. Deadlock. Definição. Recursos. M. Sc. Luiz Alberto

Inversão de prioridades

( ) Sistemas de Computação - Unifacs Professor : Marco Antônio C. Câmara - Lista de Exercícios II - Dia 18/10/2009

6 ESCALONAMENTO DE CPU

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

Estados dos processos. Infra Estruturas Computacionais. A troca de contexto. Escalonamento de Processos. Escalonamento de Processos

Sincronização e comunicação entre processos

Técnicas de Controle de Concorrência

Desenvolvimento de Aplicações Distribuídas

Recursos. Um recurso é ou um dispositivo físico (dedicado) do hardware, ou Solicitar o recurso: esperar pelo recurso, até obtê-lo.

Sistemas Operacionais - UCSAL Professor : Marco Antônio C. Câmara Primeira Lista de Exercícios

Sistemas Operacionais II. Linux 2: Threads, Escalonamento, Gerenciamento de Memória e Sistemas de Arquivos

Sistemas Operacionais

Davidson Rodrigo Boccardo

SISTEMA DE ARQUIVOS DO SISTEMA OPERACIONAL

SISTEMAS OPERACIONAIS. Sincronização e Comunicação entre Processos UNIBAN

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

Sistemas Operacionais. Gerência de Processador

SSC0640 Sistemas Operacionais I

Algoritmos de escalonamento

Seções Críticas em Sistemas de Tempo Real

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

Sistemas Operacionais

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

Fundamentos da Informática Aula 03 - Sistemas operacionais: Software em segundo plano Exercícios Professor: Danilo Giacobo

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

Curso: Redes de Computadores

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

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

Sistemas Operacionais

Comunicação entre Processos

Roteiro. Noções de Controle de Concorrência. BCC321 - Banco de Dados I. Ementa. Finalidade do Controle de Concorrência.

Processos. Adão de Melo Neto

Sistemas de Gerência de Bancos de Dados

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

Sistemas Operacionais Aula 7

Laboratório de Informática. Leopoldo Teixeira

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

SSC0640 Sistemas Operacionais I

Fundamentos de Sistemas Operacionais

ENADE 2011 SISTEMAS OPERACIONAIS

Processos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend

Sistemas Operacionais I

Sistemas Operacionais

SOP - TADS Escalonamento de Processos

Conceitos. Gestão de Transacções. Transacção. Conceitos e Propriedades. Controlo de Concorrência. Recuperação. Transacções no SGBD Oracle

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

Sistemas de Informação. Sistemas Operacionais

Capítulo 11 Sistemas de Arquivos

Sumário. Sistemas Operativos: Escalonamento de Processos e Deadlocks. Padrão de Execução dum Processo. Multiprocessamento

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

Contato. professorluisleite.wordpress.com

Sistemas Operacionais I

Segmentação de Memória

Sistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos

Atividades Práticas no Ensino Introdutório de Sistemas Operac

Transcrição:

Programação Concorrente 2º Semestre 2

Tópicos de Hoje Assunto: Deadlocks Livro Texto Capítulo 4; Conceitos Iniciais; Tipos de Recursos; Condições necessárias para ocorrência de deadlock; Um sistemas livre de deadlocks; Detecção de deadlock; 2

Dispositivos e recursos são compartilhados a todo momento: impressora, disco, arquivos, etc...; Necessidade de acesso exclusivo aos dispositivos Deadlock: processos ficam parados sem possibilidade de poderem continuar seu processamento; 3

Recursos: Preemptivos: podem ser retirados do processo sem prejuízos; Memória; Não-preemptivos: não podem ser retirados do processo causam prejuízos; CD-ROM; Deadlocks ocorrem com esse tipo de recursos; 4

Requisição de recursos/dispositivos: Requisição do recurso; Utilização do recurso; Liberação do recurso; Se o recurso requerido não está disponível, duas situações podem ocorrer: Processo que requisitou o recurso fica bloqueado até que o recurso seja liberado, ou; Processo que requisitou o recurso falha, e depois de um certo tempo tenta novamente requisitar o recurso; 5

Uma situação de deadlock 6

Quatro condições devem ocorrer para que um deadlock exista: Exclusão mútua: cada recurso ou está sendo utilizado por algum processo ou está disponível; Uso e espera (hold and wait): processos que já possuem algum recurso podem requer outros recursos; Não-preempção: recursos já alocados não podem ser retirados do processo que os alocou; somente o processo que alocou o recurso pode liberá-lo; Race Condition: diversos processos competindo por recursos compartilhados, formando um encadeamento circular. 7

Geralmente, deadlocks são representados por grafos a fim de facilitar sua detecção, prevenção e recuperação Ocorrência de ciclos pode levar a um deadlock; 8

Grafos de alocação de recursos (a) Recurso R alocado ao Processo A (b) Processo B requisita Recurso S (c) Deadlock 9

Quatro estratégias para tratar deadlocks: Ignorar o problema; Detectar e recuperar o problema; Evitar dinamicamente o problema alocação cuidadosa de recursos; Prevenir o problema por meio da não satisfação de uma das quatro condições citadas anteriormente;

Ignorar o problema: Freqüência do problema; Alto custo estabelecimento de condições para o uso de recursos; UNIX e WINDOWS; Algoritmo do AVESTRUZ;

Detectar e Recuperar o problema: Permite que os deadlocks ocorram, tenta detectar as causas e solucionar a situação; Algoritmos: Detecção com um recurso de cada tipo; Detecção com vários recursos de cada tipo; Recuperação por meio de preempção; Recuperação por meio de rollback (volta ao passado); Recuperação por meio de eliminação de processos; 2

Detecção com um recurso de cada tipo: Construção de um grafo; Se houverem ciclos, existem potenciais deadlocks; Processos: A-G Recursos: R-W R C alocado Arcos A S F W precisa D U G B T Nós E V Ciclo Situação: PA usa R e precisa de S; PB precisa de T; PC precisa de S; PD usa U e precisa de S e T; PE usa T e precisa de V; PF usa W e precisa de S; PG usa V e precisa de U; Pergunta: Há possibilidade de deadlock? 3

Detecção com vários recursos de cada tipo: Classes diferentes de recursos vetor de recursos existentes (E): Se classe=unidade de fita e E =2, então existem duas unidades de fita; Vetor de recursos disponíveis (A): Se ambas as unidades de fita estiverem alocadas, A =; Duas matrizes: C: matriz de alocação corrente; C ij : número de instâncias do recurso j entregues ao processo i; R: matriz de requisições; R ij : número de instâncias do recurso j que o processo i precisa; 4

4 unidades de fita; 2 plotter; 3 impressoras; unidade de CD-ROM Recursos existentes E = (4 2 3 ) UF P I UCD Três processos: P usa uma impressora; P 2 usa duas unidades de fita e uma de CD-ROM; P 3 usa um plotter e duas impressoras; Cada processo precisa de outros recursos (R); Recursos disponíveis A = (2 ) UF P I UCD Matriz de alocação UF P I UCD C = 2 2 P P 2 P 3 Matriz de requisições UF P I UCD 2 R = 2 P P 2 P 3 Recursos 5

Exercício de Fixação: Um especialista em programação concorrente apresentou a seguinte solução para o problema de alocação de múltiplos recursos entre os processos abaixo: E = (4 2 3 ) A = (2 ) C= 2 2 P P2 P3 R= 2 2 P P2 P3 Qual a ordem de execução dos processos, de forma que não cause deadlock? 6

4 unidades de fita; 2 plotter; 3 impressoras; unidade de CD-ROM Requisições: P requisita duas unidades de fita e um CD-ROM; P 2 requisita uma unidade de fita e uma impressora; P 3 requisita duas unidades de fita e um plotter; Recursos existentes E = (4 2 3 ) Recursos disponíveis A = (2 ) P 3 pode rodar A = (2 2 2 ) Matriz de alocação C = 2 2 2 2 P P 2 P 3 R = Matriz de requisições 2 P P 2 P 3 7

4 unidades de fita; 2 plotter; 3 impressoras; unidade de CD-ROM Requisições: P requisita duas unidades de fita e um CD-ROM; P 2 requisita uma unidade de fita e uma impressora; P 3 requisita duas unidades de fita e um plotter; Recursos existentes E = (4 2 3 ) Matriz de alocação C = 3 P P 2 P 3 R = Recursos disponíveis A = (2 ) A = (2 2 2 ) P 2 pode rodar A = (4 2 2 ) Matriz de requisições 2 P P 2 P 3 8

4 unidades de fita; 2 plotter; 3 impressoras; unidade de CD-ROM Requisições: P requisita duas unidades de fita e um CD-ROM; P 2 requisita uma unidade de fita e uma impressora; P 3 requisita duas unidades de fita e um plotter; Recursos existentes E = (4 2 3 ) Matriz de alocação C = 2 P P 2 P 3 R = Recursos disponíveis A = (2 ) A = (2 2 2 ) A = (4 2 2 ) P pode rodar Matriz de requisições P P 2 P 3 9

Ao final da execução, temos: 4 unidades de fita; 2 plotters; 3 impressoras; unidade de CD-ROM Recursos existentes E = (4 2 3 ) Recursos disponíveis A = (4 2 3 ) Matriz de alocação C = P P 2 P 3 R = Matriz de requisições P P 2 P 3 2

4 unidades de fita; 2 plotters; 3 impressoras; unidade de CD-ROM Requisições: DEADLOCK: P 2 requisita duas unidade de fita, uma impressora e uma unidade de CD-ROM; Recursos existentes E = (4 2 3 ) Recursos disponíveis A = (2 ) P 3 pode rodar A = (2 2 2 ) (4 2 3 ) (2 ) Matriz de alocação Matriz 2 de requisições P 2 P 2 C = 2 P 2 R 2 = 2 P 2 P 3 2 2 P 3 2

Recuperação de Deadlocks: Por meio de preempção: possibilidade de retirar temporariamente um recurso de seu atual dono (processo) e entregá-lo a outro processo; Por meio de rollback: recursos alocados a um processo são armazenados em arquivos de verificação; quando ocorre um deadlock, os processos voltam ao estado no qual estavam antes do deadlock; Por meio de eliminação de processos: processos que estão no ciclo com deadlock são retirados do ciclo; processos que não causam algum efeito negativo ao sistema; Ex.: compilação sem problemas; Ex2.: atualização de um base de dados problemas; 22

Evitar dinamicamente o problema: Alocação individual de recursos; Soluções utilizam matrizes descritas anteriormente; Escalonamento cuidadoso; Estados Seguros e Inseguros; Algoritmos: Banqueiro para um único tipo de recurso; Banqueiro para vários tipos de recursos; 23

Estados seguros: Quando o sistema não provoca deadlocks e há uma maneira de atender a todas as requisições pendentes finalizando normalmente todos os processos; Estado inseguros: Quando o sistema pode provocar deadlocks, mas não necessariamente o provocam; 24

Algoritmos do Banqueiro: Idealizado por Dijkstra (965); Considera cada requisição no momento em que ela ocorre, verificando se essa leva a um estado seguro; Se sim, a requisição é atendida, se não o atendimento é adiado para um outro momento; Premissas adotadas por um banqueiro (SO) para garantir ou não crédito (recursos) para seus clientes (processos); Nem todos os clientes (processos) precisam de toda a linha de crédito (recursos) disponível para eles; 25

Algoritmo do Banqueiro para um único tipo de recurso: Possui Máximo de linha de crédito = 22 A B C 6 5 4 A B C* 2 D 7 D 4 7 D 4 7 Livre: Livre: 2 Livre: Seguro Seguro Inseguro Solicitações de crédito são realizadas de tempo em tempo; * C é atendido e libera 4 créditos, que podem ser usados por B ou D; 6 5 4 A B C 2 2 6 5 4 26

Algoritmo do Banqueiro para um único tipo de recurso: Possui Máximo de linha de crédito = 22 A B C 6 5 4 A B C 2 D 7 D 4 7 D 4 7 Livre: Livre: 2 Livre: Seguro Seguro Inseguro 6 5 4 Solicitações de crédito são realizadas de tempo em tempo; * B é atendido. Em seguida os outros fazem solicitação, ninguém poderia ser atendido; A B* C 2 2 6 5 4 27

Algoritmo do Banqueiro para vários tipos de recursos: Mesma idéia, mas duas matrizes são utilizadas; A B C D Processos Fita Unidade de 3 Plotters Impressoras C = Recursos Alocados E Unidade de CD-ROM Recursos E = (6 3 4 2); Alocados P = (5 3 2 2); Disponíveis A = ( 2 ); A B C D 3 R = Recursos ainda necessários 2 E 2 28

Algoritmo do Banqueiro para vários tipos de recursos: Mesma idéia, mas duas matrizes são utilizadas; A B C D Processos Fita Unidade de 3 Plotters C = Recursos Alocados Impressoras E Unidade de CD-ROM - Podem ser atendidos: D, A ou E, C; Alocados P = (5 3 3 2); Disponíveis A = ( ); A B C D 3 R = Recursos ainda necessários 2 E 2 29

Algoritmo do Banqueiro para vários tipos de recursos: B requisita impressora; E requisita impressora A B C D Processos Fita Unidade de 3 Plotters Impressoras E Unidade de CD-ROM Alocados P = (5 3 4 2); Disponíveis A = ( ); A B C D 3 2 E 2 C = Recursos Alocados R = Recursos ainda necessários Deadlock Solução: Adiar a requisição de E por alguns instantes; 3

Algoritmo do Banqueiro: Desvantagens Pouco utilizado, pois é difícil saber quais recursos serão necessários; O número de processos é dinâmico e pode variar constantemente tornando o algoritmo custoso; Vantagem Na teoria o algoritmo é ótimo; 3

Prevenir Deadlocks: Atacar uma das quatro condições: Condição Exclusão Mútua Abordagem Não é viável deixar de usar; Alocar todos os recursos usando um spool - possível para alguns recursos, por ex. impressora. Pode ocasionar deadlock por espaço disponível em disco! Só alocar recurso quando for absolutamente necessário. Uso e Espera Requisitar todos os recursos inicialmente processo não sabe o que será necessário (volta ao algoritmo do banqueiro) Uso inadequado dos recursos Quando processo quer mais um recurso deve liberar todos os que possui e requisitar todos novamente 32

Prevenir Deadlocks: Atacar uma das quatro condições: Condição Abordagem Não-preempção Espera Circular Retirar recursos dos processos Pode ocasionar problemas de desempenho fita Pode ocasionar erros CDROM Opção pouco aconselhável! Ordenar numericamente os recursos Requisitar recursos só em ordem crescente Pode ser ineficiente mas é a mais atrativa de ser praticada 33

Deadlock Bloqueio em duas fases: a. Reserva recursos Se conseguir todos prosseguem Senão libera o que já consegui 2a. Executa operações Similar a ter que reservar todos recursos no início Muitas aplicações não podem ser executadas dessa forma 34

Deadlock Outras Possibilidades Condição de Inanição Processo espera eternamente por um recurso Algoritmos devem evitar deadlock sem ocasionar inanição. 35

Dúvidas... Dúvidas? murilo@mufeso.com 36