Buscar

cap07 revisado

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Sistemas Operacionais - I
Cap. 7 – Sincronização e Comunicação
*
Arquitetura de Sistemas Operacionais
Capítulo 7
Sincronização e Comunicação
entre Processos
Sistemas Operacionais - I
Cap. 7 – Sincronização e Comunicação
*
Sumário
Introdução
Aplicações concorrentes
Especificação de concorrência em programas
Problemas de compartilhamento de recursos
Exclusão mútua
Sincronização condicional
Semáforos
Monitores
Troca de mensagens
Deadlock
Sistemas Operacionais - I
Cap. 7 – Sincronização e Comunicação
*
Aplicações Concorrentes
Muitas vezes é necessário que processos comuniquem-se entre si
É possivel atraves de mecanismos (variaveis compartilhadas em MP ou trocas de mensagens)
Sincronização é necessária
Mecanismos de sincronização garantem o acesso a recursos compartilhados e comunicação entre processos concorrentes
 a sincronização é necessária para processos, subprocessos e threads
Sem mecanismos de sincronização o travamento do sistema pode ser inevitável.
Sistemas Operacionais - I
Cap. 7 – Sincronização e Comunicação
*
Aplicações Concorrentes
Sincronização e comunicação entre processos
Sistemas Operacionais - I
Cap. 7 – Sincronização e Comunicação
*
Especificação de Concorrência em Programas
Existem várias notaçõs para especificar concorrência em programas
Uma forma é usando FORK e JOIN
O comando FORK cria um novo processo
O comando JOIN sincroniza o processo atual com o referenciado
Outra forma é usando 
PARABEGIN e PARAEND ou
COBEGIN e COEND
Indicam que uma sequencia de passos serão executados e num ponto final serão sincronizados
Sistemas Operacionais - I
Cap. 7 – Sincronização e Comunicação
*
Especificação de Concorrência em Programas
Concorrência em programas
Sistemas Operacionais - I
Cap. 7 – Sincronização e Comunicação
*
Especificação de Concorrência em Programas
X := SQRT (1024) + (35.4 * 0.23) - (302 / 7)
PROGRAM Expressao;
 VAR X, Temp1, Temp2, Temp3 : REAL;
BEGIN
 PARBEGIN
 Temp1 := SQRT (1024);
 Temp2 := 35.4 * 0.23;
 Temp3 := 302 / 7;
 PAREND;
 X := Temp1 + Temp2 - Temp3;
 WRITELN ('x = ', X);
END.
Sistemas Operacionais - I
Cap. 7 – Sincronização e Comunicação
*
Prob. de Compartilhamento 
de Recursos
Sincronização de processos concorrentes é fundamental para confiabilidade dos sistemas
A seguir veremos dois problemas
Compartilhamento de um arquivo em disco
Uma variavel na memória principal sendo compartilhada por dois processo
Após ver os dois exemplos pode-se concluir que para evitar problemas como “race conditions” (condições de corrida) tem que existir algum mecanismo de controle entre recursos compartilhados
Sistemas Operacionais - I
Cap. 7 – Sincronização e Comunicação
*
Prob. de Compartilhamento 
de Recursos
PROGRAM Conta_Corrente;
 .
 .
 READ (Arq_Contas, Reg_Cliente);
 READLN (Valor_Dep_Ret);
 Reg_Cliente.Saldo := Reg_Cliente.Saldo+Valor_Dep_Ret;
 WRITE (Arq_Contas, Reg_Cliente);
 .
 .
END.
Sistemas Operacionais - I
Cap. 7 – Sincronização e Comunicação
*
Prob. de Compartilhamento 
de Recursos
 
Processo A Processo B
X := X + 1; X := X - 1;
Processo A Processo B 
LOAD x,Ra LOAD x,Rb
ADD 1,Ra SUB 1,Rb
STORE Ra,x STORE Rb,x
Sistemas Operacionais - I
Cap. 7 – Sincronização e Comunicação
*
Exclusão Mútua
Solução mais simples: impedir que dois ou mais processos acessem simultaneamente um recurso
Enquanto um estiver acessando os outros processos aguardam
Deve ocorrer apenas para acessos a recursos compartilhados
A parte do código onde o acesso é feito é denominada região crítica
Evitar que dois processos entrem em suas regiões críticas ao mesmo tempo é garantida a execução mutuamente exclusiva
Os mecanismos de exclusão mútua utilizam protocolos de acesso à região crítica
Sistemas Operacionais - I
Cap. 7 – Sincronização e Comunicação
*
Exclusão Mútua
Região crítica
Protocolos de acesso
BEGIN
 .
 .
 Entra_Regiao_Critica; 
 Regiao_Critica;
 Sai_Regiao_Critica;
 .
 .
END.
Sistemas Operacionais - I
Cap. 7 – Sincronização e Comunicação
*
Exclusão Mútua
Os processos devem fazer acesso de forma sincronizada (para garantir a exclusão mútua)
Dentro das soluções duas situações devem ser evitadas:
Starvation ou espera indefinida (um processo nunca consegue executar sua região critica – acessando o recurso compartilhado) uma solução simples é adoção de uma fila FIFO
Um processo fora de sua região crítica impede que outros entrem nas suas próprias regiões críticas (recurso livre, porém, alocado a um processo)
Propostas para garantir a exclusão mútua de processos concorrentes:
Soluçoes de HW
Soluções de SW
Sistemas Operacionais - I
Cap. 7 – Sincronização e Comunicação
*
Exclusão Mútua
Soluções de hardware:
Desabilitação (e reabilitação) de interrupções: para região crítica
O processo tem acesso exclusivo garantido
Mudanças de contexto é só através de interrupções
Compromete a concorrencia e o funcionamento (inibe a interrupção)
Em sistemas multiprocessados é ineficiente
O mecanismo de clock é uma interrupção
É simples, útil, mas exige muito cuidado
Sistemas Operacionais - I
Cap. 7 – Sincronização e Comunicação
*
Exclusão Mútua
Soluções de hardware
Desabilitação de interrupções
BEGIN
 .
 Desabilita_Interrupcoes;
 Regiao_Critica;
 Habilita_Interrupcoes;
 .
END.
Sistemas Operacionais - I
Cap. 7 – Sincronização e Comunicação
*
Exclusão Mútua
Soluções de hardware
Instrução Test-and-Set
Vários processadores possuem uma instrução de máquina especial que lê uma variável, armazena em outra área e atribui um novo valor
É executada sem interrupção (indivisível)
É manipulada ao mesmo tempo apenas por um processo
Utiliza uma variável lógica global chamada “bloqueio”
Valor falso libera o recurso, verdadeiro acessa o recurso de forma exclusiva
Sistemas Operacionais - I
Cap. 7 – Sincronização e Comunicação
*
Exclusão Mútua
Soluções de hardware
Instrução Test-and-Set
Test-and-Set (X,Y);
Sistemas Operacionais - I
Cap. 7 – Sincronização e Comunicação
*
Exclusão Mútua
Soluções de software
Primeiro algoritmo
Segundo algoritmo
Terceiro algoritmo
Quarto algoritmo
Algoritmo de Dekker
Algoritmo de Peterson
Algoritmo para exclusão mútua entre N processos
Sistemas Operacionais - I
Cap. 7 – Sincronização e Comunicação
*
Sincronização Condicional
PROGRAM Produtor_Consumidor_1;
 CONST TamBuf = (* Tamanho qualquer *);
 TYPE Tipo_Dado = (* Tipo qualquer *);
 VAR Buffer : ARRAY [1..TamBuf] OF Tipo_Dado;
 Dado : Tipo_Dado;
 Cont : 0..TamBuf;
BEGIN
 Cont := 0;
 PARBEGIN
 Produtor;
 Consumidor;
 PAREND;
END. 
Sistemas Operacionais - I
Cap. 7 – Sincronização e Comunicação
*
Sincronização Condicional
PROCEDURE Produtor;
BEGIN
 REPEAT
 Produz_Dado (Dado);
 WHILE (Cont = TamBuf) DO (* Nao faz nada *);
 Grava_Buffer (Dado, Cont);
 UNTIL False;
END;
 
PROCEDURE Consumidor;
BEGIN
 REPEAT
 WHILE (Cont = 0) DO (* Nao faz nada *);
 Le_Buffer (Dado);
 Consome_Dado (Dado, Cont);
 UNTIL False;
END;
Sistemas Operacionais - I
Cap. 7 – Sincronização e Comunicação
*
Semáforos
Exclusão mútua utilizando semáforos
Sincronização condicional utilizando semáforos
Problema dos Filósofos
Problema do Barbeiro
Sistemas Operacionais - I
Cap. 7 – Sincronização e Comunicação
*
Semáforos
Semáforo binário na exclusão mútua
Sistemas Operacionais - I
Cap. 7 – Sincronização e Comunicação
*
Monitores
Estrutura do monitor
Sistemas Operacionais - I
Cap. 7 – Sincronização e Comunicação
*
Monitores
Estrutura do monitor com varáveis de condição
Sistemas Operacionais- I
Cap. 7 – Sincronização e Comunicação
*
Troca de Mensagens
Transmissão de mensagem
Sistemas Operacionais - I
Cap. 7 – Sincronização e Comunicação
*
Troca de Mensagens
Comunicação direta
Sistemas Operacionais - I
Cap. 7 – Sincronização e Comunicação
*
Troca de Mensagens
Comunicação indireta
Sistemas Operacionais - I
Cap. 7 – Sincronização e Comunicação
*
Deadlock
Espera circular
Sistemas Operacionais - I
Cap. 7 – Sincronização e Comunicação
*
Deadlock
Condições necessárias
Exclusão mútua
Espera por recurso
Não-preempção
Espera circular
Mecanismos
Prevenção
Detecção
Correção

Outros materiais