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

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

Sincronização e Comunicação entre Processos

Sistemas Operacionais. Prof. André Y. Kusumoto

Sincronização e comunicação entre processos

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

Introdução Aplicações Concorrentes Especificação de Concorrência em Programas Problemas de Compartilhamento de Recursos Exclusão Mútua Sincronização

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

Comunicação entre Processos

Sistemas Operacionais Aula 6

SISTEMA DE ARQUIVOS DO SISTEMA OPERACIONAL

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

Fundamentos de Sistemas Operacionais

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

Capítulo 7: Impasse (Deadlocks( Deadlocks)

Fundamentos de Sistemas Operacionais

Sistemas Operacionais. Deadlock

Sistemas Operacionais. DeadLock. Edeyson Andrade Gomes.

SISTEMAS OPERACIONAIS

SSC0640 Sistemas Operacionais I

Sistemas Operacionais: Sincronização entre processos

Sincronização e comunicação entre entidades de processamento. Mutex Volnys Bernal 1. Tópicos. Exclusão Mútua (mutex) Exclusão Mútua (Mutex)

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

Exclusão Mútua (mutex)

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

Sistemas de Informação. Sistemas Operacionais

Sistemas Operacionais

Sincronização e Comunicação

DEADLOCKS IMPASSES. Vinícius Pádua

Programação Concorrente Locks

Programação Concorrente. Prof. Hugo Vieira Neto

MAC422/5753 Sistemas Operacionais

ENADE 2011 SISTEMAS OPERACIONAIS

Capítulo 3 Deadlocks - Impasses

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Programação Concorrente. 2º Semestre 2010

Capítulo 3. Deadlocks. Recursos

Fundamentos de Sistemas Operacionais

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Distribuídos

Unidade III Gerência de Processos

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

Sistemas Operacionais. Gerência de Processador

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios. Aula 06.

Sistemas Operacionais

Inversão de prioridades

Sistemas Operacionais. Prof. André Y. Kusumoto

Comunicação entre processos

Sistemas Operacionais

Algoritmos de escalonamento

Processamento de Transações. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

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

Processamento de Transações. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

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

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

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

Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia (Material Adaptado)

Sistemas Operacionais Concorrência. Carlos Ferraz Jorge Cavalcanti Fonsêca

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

Métodos de Sincronização

Sincronização de Processos (2)

Processos. Adão de Melo Neto

Sistemas Operacionais. Capítulo 7 Sincronização e Comunicação entre Processos

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

Programação Orientada a Objetos. Concorrência

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 12 - Threads e Concorrência em Java

Questões de Múltipla escolha

Sistemas Operacionais

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

Introdução a Sistemas Operacionais. Adão de Melo Neto

SUMÁRIO. 1.3 CONCEITOS DE SISTEMA OPERACIONAL Processos Arquivos O shell 42

Capítulo 2 Processos e Threads

Sistemas de Informação. Sistemas Operacionais

LINGUAGENS LÓGICAS E PROGRAMAÇÃO CONCORRENTE

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

Sistemas Operacionais. Prof. Fabio Augusto Oliveira

Fundamentos de Sistemas Operacionais

Programação de Sistemas em Tempo Real

Resumo: Sistemas Operacionais Abertos

Concorrência. Condições de Corrida. 5a. Tentativa. Dificuldades: Sincronização de Processos (2) Aula 11 Profa. Patrícia Dockhorn Costa

Unidade 3. Controle de Concorrência. Primitivas de Programação Concorrente Clássica

Sistemas de Informação. Sistemas Operacionais

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

Sistemas Operacionais. Condição de corrida e Região crítica

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

Thread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ fevereiro, / 41

Problema do Produtor -Consumidor. Solução por semáforos

Recursos. Exemplos de recursos:

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

NÚCLEO DE TECNOLOGIA DEPARTAMENTO ACADÊMCIO DE CIÊNCIA DA COMPUTAÇÃO. I - Objetivo Geral: Introduzir os conceitos gerais de sistemas operacionais

Comunicação entre processos (2)

Sincronização de Processos (2)

Sistemas Distribuídos Aula 7

ALGORITMOS DISTRIBUÍDOS Deadlock

Sistemas Operacionais. Interrupção e Exceção

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

Sistemas Operacionais

Sistemas Operacionais Sincronização e Comunicação entre Processos

Sistemas Operacionais. Concorrência

Sistemas Operacionais Abertos. Prof. MSc. André Yoshimi Kusumoto

Transcrição:

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

INTRODUÇÃO Em um sistema multitarefa os processos alternam sua execução segundo critérios de escalonamento estabelecidos pelo sistema operacional. Processos de aplicações concorrentes compartilham diversos recursos do sistema, como arquivos, registros, dispositivos de Entrada/Saída e áreas da memória. 2

INTRODUÇÃO O compartilhamento de recursos entre processos pode ocasionar situações indesejáveis Para evitar este tipo de problema, os processos concorrentes devem ter suas execuções sincronizadas, a partir de mecanismos oferecidos pelo sistema operacional, com o objetivo de garantir o processamento correto dos programas. 3

INTRODUÇÃO Os mecanismos que garantem a comunicação entre processos concorrentes e os acessos aos recursos compartilhados são chamados mecanismos de sincronização 4

ESPECIFICAÇÃO DA CONCORRÊNCIA (FORK E JOIN) A primeira notação para a especificação da concorrência em um programa foram os comandos FORK e JOIN, introduzidos por Conway(1963) e Dennis e Van Horn(1966). 5

ESPECIFICAÇÃO DA CONCORRÊNCIA (FORK E JOIN) O programa A começa a ser executado e, ao encontrar o comando FORK, faz com que seja criado outro processo para a execução do programa B, concorrentemente ao programa A O comando JOIN permite que o programa A sincronize-se com o B, ou seja, quando o programa A encontrar o comando JOIN, só continuará a ser processado após o término da execução do programa B. 6

ESPECIFICAÇÃO DA CONCORRÊNCIA (PARBEGIN E PAREND) Uma das implementações mais claras e simples de expressar a concorrência em um programa é a utilização dos comandos PARBEGIN e PAREND 7

ESPECIFICAÇÃO DA CONCORRÊNCIA (PARBEGIN E PAREND) O comando PARBEGIN especifica que a sequencia de comandos seja executada concorrentemente em uma ordem imprevisível, através da criação de um processo para cada comando. O comando PAREND define um ponto de sincronização, onde o processamento só continuará sua execução quando todos os processos ou threads criados já tiverem terminado sua execução. 8

ESPECIFICAÇÃO DA CONCORRÊNCIA (PARBEGIN E PAREND) 9

PROBLEMA DO COMPARTILHAMENTO DE RECURSOS Os sistemas operacionais multiprogramáveis executam processos concorrentemente. Como os processos concorrentes compartilham recursos do sistema (variável na memória principal ou arquivo no disco, por exemplo), isso pode ocasionar alguns problemas. O programa atualiza o saldo bancário de um cliente após um lançamento de débito ou crédito. O programa lê o registro do cliente no Arquivo Contas, lê o valor a ser depositado ou retirado e, em seguida, atualiza o saldo no Arquivo de contas. leitura atualização 10

PROBLEMA DO COMPARTILHAMENTO DE RECURSOS Dois PROCESSOS atualizam SALDO de um mesmo CLIENTE O processo 1 (do primeiro funcionário) lê o registro do cliente e soma ao campo Saldo o valor do lançamento do débito; Antes de gravar o novo saldo do arquivo, o processo 2 (do segundo funcionário) lê o registro do mesmo cliente e soma ao campo Saldo o valor creditado; Independentemente de qual dos processos atualize o saldo primeiro no arquivo, o dado gravado estará inconsistente. 11

PROBLEMA DO COMPARTILHAMENTO DE RECURSOS COM INCONSISTÊNCIA READ : Processo 1 Lê registro de Antônio ==> saldo = 500 Processo 1 ==> 500-50 = 450 Antes do WRITE : Processo 2 Lê registro de Antônio ==> saldo = 500 Processo 2 ==> 500 +100 =600 WRITE: Processo 1 ==> saldo = 450 WRITE: Processo 2 ==> saldo = 600 SEM INCONSISTÊNCIA READ : Processo 1 Lê registro de Antônio ==> saldo = 500 Processo 1 ==> 500-50 = 450 WRITE: Processo 1 ==> saldo = 450 READ: processo 2 Lê registro de Antônio ==> saldo = 450 WRITE: Processo 2 ==> 450 +100 =450 12

OBJETIVO EXCLUSÃO MÚTUA (MUTEX) Evitar que dois ou mais processos acessem um mesmo recurso simultaneamente. MECANISMO Enquanto um processo estiver acessando um determinado recurso e outro processo necessite acessar o mesmo recurso, este processo deve aguardar o término da utilização do recurso pelo primeiro processo REGIÃO CRÍTICA É a parte do código do programa onde é feito o acesso ao recurso compartilhado é denominada região crítica. ACESSO A REGIÃO CRÍTICA Se for possível evitar que dois processos entrem em suas regiões críticas ao mesmo tempo os problemas decorrentes do compartilhamento de recursos são evitados. 13

EXCLUSÃO MÚTUA (MUTEX) Recurso Região Crítica 14

EXCLUSÃO MÚTUA (MUTEX) PROTOCOLOS DE ENTRADA E SAÍDA Toda vez que um processo for executar instruções de sua região crítica, este deverá executar antes um protocolo de entrada nessa região. Da mesma forma, ao sair da região crítica, o processo deve executar um protocolo de saída. ACESSO AOS RECURSOS DE FORMA SINCRONIZADA Para a implementação da exclusão mútua, os processos devem fazer acesso aos recursos de forma sincronizada. Além de garantir a exclusão mútua, existem duas situações que devem ser evitadas: Startivation (espera indefinifa) e Busy Wait (espera ocupada) STARTIVATION Situação onde o processo nunca consegue executar sua região crítica, e, consequentemente, acessar o recurso compartilhado (ele nunca é escolhido). Quando um recurso compartilhado é liberado, o sistema operacional seleciona outro processo para fazer uso deste recurso. Dependendo do critério de escolha, poderá ocorrer o starvation. BUSY WAIT Situação em que um processo está fora de sua região crítica e fica testando permanentemente se pode entrar na sua região crítica. 15

SOLUÇÕES PARA EXCLUSÃO MÚTUA SOLUÇÕES DE HARDWARE Desabilitar Interrupções Instrução test-and-set SOLUÇÕES DE SOFTWARE Algoritmos 1 o, 2 o, 3 o e 4 o propostos para implementar a exclusão mútua Algoritmo de DEKKER Algoritmo de PETTERSON 16

SOLUÇÕES PARA EXCLUSÃO MÚTUA Algoritmo de DEKKER Primeira solução de software que garantiu a exclusão mútua entre dois processos sem a incorrência de problemas foi proposta pelo matemático holandês T. Dekker. Tem como base no primeiro e quarto algoritmos. Algoritmo de PETTERSON O algoritmo proposto por G. L. Peterson apresenta uma solução para o problema da exclusão mútua entre dois processos que pode ser facilmente generalizada para o caso de N processos. Similar ao terceiro algoritmo 17

SINCRONIZAÇÃO CONDICIONAL Situação onde o acesso ao recurso compartilhado exige a sincronização de processos vinculada a uma condição de acesso. EXEMPLO CLÁSSICO comunicação entre dois processos através de operações de gravação e leitura em um buffer, onde processos geram informações (processos produtores) utilizadas por outros processos (processos consumidores). enquanto um processo grava dados em um buffer, o outro lê os dados, concorrentemente. Os processos devem estar sincronizados a uma variável de condição, de forma que um processo não tente gravar dados em um buffer cheio ou realizar uma leitura em um buffer vazio. 18

MECANISMOS (Exclusão Mútua e Sincronização Condicional) SEMÁFOROS Mecanismos para implementação da exclusão mútua e sincronização condicional MONITORES Mecanismos para implementação da exclusão mútua e sincronização condicional TROCA DE MENSAGENS: Mecanismo de sincronização e comunicação entre processos 19

DEADLOCK 20

DEADLOCK DEFINIÇÃO É a situação em que um processo aguarda por um recurso que nunca estará disponível ou um evento que nunca ocorrerá. É conseqüência, na maioria das vezes, do compartilhamento de recursos (dispositivos, arquivos e registros,etc) entre processos concorrentes onde a exclusão mútua é exigida. Torna-se cada vez mais freqüente e crítico na medida em que os sistemas operacionais evoluem no sentido de implementar o paralelismo de forma intensiva e permitir a alocação dinâmica de um número ainda maior de recursos. 21

22

DEADLOCK SITUAÇÕES SIMULTÂNEAS PARA QUE OCORRA UM DEADLOCK Exclusão mútua: cada recurso só pode estar alocado a um único processo em um determinado instante; Espera por recurso: um processo, além dos recursos já alocados, pode estar esperando por outros recursos. Não preempção: um recurso não pode ser liberado de um processo só porque outros processos desejam usar o mesmo recurso; Espera circular: um processo pode ter de esperar por um recurso alocado a outro processo e vice-versa. 23

DEADLOCK (espera circular) Espera circular: um processo pode ter de esperar por um recurso alocado a outro processo e vice-versa. 24

PREVENÇÃO DO DEADLOCK É preciso garantir que uma das quatro condições necessárias para a sua existência nunca se satisfaça. Exclusão mútua: cada recurso só pode estar alocado a um único processo em um determinado instante; Espera por recurso: um processo, além dos recursos já alocados, pode estar esperando por outros recursos. Não preempção: um recurso não pode ser liberado de um processo só porque outros processos desejam usar o mesmo recurso; Espera circular: um processo pode ter de esperar por um recurso alocado a outro processo e vice-versa. 25

PREVENÇÃO DO DEADLOCK Exclusão mútua: cada recurso só pode estar alocado a um único processo em um determinado instante; Prevenção: a ausência da exclusão mútua acaba com o problema do deadlock, porém gera os problemas já apresentados com relação ao compartilhamento de recursos. Espera por recurso: um processo, além dos recursos já alocados, pode estar esperando por outros recursos. Prevenção: processos que já possuem recursos garantidos não devem solicitar novos recursos. Maneira de Implementar: antes do inicio da execução, um processo deve pré-alocar todos os recursos necessários. 26

PREVENÇÃO DO DEADLOCK Não preempção: um recurso não pode ser liberado de um processo só porque outros processos desejam usar o mesmo recurso; Prevenção: permitir que um recurso seja retirado do processo no caso de outro processo necessitar do mesmo recurso. Espera circular: um processo pode ter de esperar por um recurso alocado a outro processo e vice-versa. Prevenção: excluir a possibilidade de espera circular Maneira de Implementar: é forçar o processo a ter apenas um recurso por vez 27

DETECÇÃO DO DEADLOCK Para DETECTAR DEADLOCKS, os sistemas operacionais devem manter Estruturas de dados capazes de identificar cada recurso do sistema, o processo que está alocando tal recurso e os processos que estão à espera da liberação do recurso. 28

DETECÇÃO DO DEADLOCK 29

SOLUÇÃO 1 CORREÇÃO DEADLOCK eliminar um ou mais processos envolvidos no deadlock e liberar os recursos. A escolha do processo a ser eliminado é feita, normalmente, de forma aleatória ou com base em algum tipo de prioridade Muito utilizado SOLUÇÃO 2 liberação de apenas alguns recursos alocados aos processos para outros processos, até que o ciclo de espera termine. É necessário que o sistema possa suspender um processo, liberar seus recursos e, após a solução do problema,retornar à execução do processo, sem perder o processamento já realizado. Conhecido como ROLLBACK e gera um OVERHEAD muito grande. 30

CORREÇÃO DEADLOCK 31