ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais...

45
Machado/Maia – complem. por Sidney Lucena (UN quitetura de Sistemas Operacion quitetura de Sistemas Operacion rancis Berenger Machado / Luiz Paulo M rancis Berenger Machado / Luiz Paulo M plementado por Sidney Lucena (Prof. UN plementado por Sidney Lucena (Prof. UN Capítulo 7 Capítulo 7 Sincronização e Comunicação Sincronização e Comunicação entre Processos entre Processos

Transcript of ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais...

Page 1: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)

Arquitetura de Sistemas OperacionaisArquitetura de Sistemas OperacionaisFrancis Berenger Machado / Luiz Paulo MaiaFrancis Berenger Machado / Luiz Paulo Maia

Complementado por Sidney Lucena (Prof. UNIRIO)Complementado por Sidney Lucena (Prof. UNIRIO)

Capítulo 7Capítulo 7Sincronização e ComunicaçãoSincronização e Comunicação

entre Processosentre Processos

Page 2: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Sincronização e Comunicação

o Numa aplicação concorrente, é natural que processos precisem comunicar entre si

Implementação através de mecanismos como variáveis compartilhadas ou trocas de mensagens

Processos precisam ter sua execução sincronizada através de mecanismos do SO

o Exemplo com buffer de comunicação:

Processo só poderá gravar os dados se buffer estiver liberado

Processo só poderá ler os dados quando estes estiverem disponíveis no buffer

7/1

Page 3: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Sincronização e Comunicação

7/2

Processog ravad o r

Processoleito r

d ado

Sin cron ização

leitura

g ra vaçã o

Bu ffer

Page 4: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Sincronização e Comunicação

o Mecanismos de sincronização:

Garantem a comunicação entre processos concorrentes

Garantem o acesso a recursos compartilhados

Garantem a integridade e a confiabilidade na execução de aplicações concorrentes

7/3

Page 5: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Concorrência em Programas

o Cada linguagem tem sua notação para especificar as partes do programa que devem ser executadas concorrentemente

Fork e Join (Conway, Dennis e Van Horn, 1963/66)

o Fork <X> – dispara o processo X

o Join <X> – interrompe execução até que processo X termine (sincroniza processos)

ParBegin/CoBegin e ParEnd/CoEnd (Dijkstra, 1965)

o Cada comando executado concorrentemente com um processo para cada

7/4

Page 6: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Concorrência em Programas

7/5

Pro cessop rincip a l

Pro cessop rincip a l

Pro cesso 1 Pro cesso 2 Pro cesso n

PARBEGIN Comando_1; Comando_2; . . Comando_n;PAREND

Page 7: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Compartilhamento de Recursos

o Arquivos compartilhados

Ex: atualizações em um mesmo saldo bancário

Caso o processo não “trave” o arquivo com saldo, poderá haver inconsistência

o Variáveis compartilhadas

Um processo só poderá operar com a variável após processo anterior completar sua operação

Análogo ao caso de arquivos compartilhados

o Estes problemas são chamados de race conditions

7/6

Page 8: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Exclusão Mútua

o Solução mais simples

o Impede que dois ou mais processos acessem simultaneamente um mesmo recurso

Quando um processo estiver acessando o recurso, demais processos que desejam acessá-los devem ficar em espera

Parte do código que faz acesso ao recurso é denominada região crítica

o Uma vez garantida a execução mutuamente exclusiva das regiões críticas, resolve-se problemas de compartilhamento 7/7

Page 9: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Exclusão Mútua

o Mecanismos que implementam exclusão mútua se valem de protocolos de acesso à região crítica

Sempre que um processo desejar executar instruções de uma região crítica, ele deverá executar um protocolo de entrada nesta região

Sempre que o processo desejar sair da região crítica, ele deverá executar um protocolo de saída desta região

o Protocolo de entrada indica que há processo executando instruções na região crítica

o Protocolo de saída sinaliza a liberação da região crítica para outros processos

7/8

Page 10: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Exclusão Mútua

o Duas situações indesejadas devem ser evitadas:

Starvation ou espera indefinida

o Processo nunca consegue entrar na região crítica, ficando eternamente em espera

o Pode ocorrer devido a critérios do SO para seleção do processo que vai entrar numa RC que tenha sido liberada

Critérios baseados em prioridade ou em aleatoriedade

Sistema FIFO, por exemplo, resolve o problema

7/9

Page 11: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Exclusão Mútua

o Outra situação indesejada que deve ser evitada:

Processo fora da RC impede que outros processos entrem na RC

o Recurso está livre, mas alocado a um determinado processo

o Reduz grau de compartilhamento

o Para implementar a exclusão mútua, são usadas soluções de hardware e de software

7/10

Page 12: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Exclusão Mútua

o Soluções de hardware:

Desabilitar de interrupções

o Processo desabilita todas as interrupções antes de entrar na RC, reabilitando-as após deixá-la

o Não há mudança de contexto enquanto na RC

o Solução simples mas com limitações:

Multiprogramação fica comprometida

Ineficiente com múltiplos processadores

Interessante para o kernel do SO

7/11

Page 13: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Exclusão Mútua

o Soluções de hardware:

Instrução Test-and-Set

o Instrução “de máquina” que permite ler uma variável, armazená-la em outra área e atribuir novo valor à variável

o Indivisível, executada sem interrupção

o Garante que dois ou mais processos não manipulem uma variável compartilhada simultaneamente

o Usa variável lógica global chamada Bloqueio

7/12

Page 14: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

7/13

Page 15: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Exclusão Mútua

o Soluções de software:

Diversos algoritmos para implementar exclusão mútua através de software

Primeiras soluções abrangiam apenas dois processos e apresentavam problemas, posteriormente sanados

o Algoritmo de Peterson, inicialmente aplicado a dois processos, evoluído para N processos

Problema da solução por software:

o Espera ocupada! (busy wait)

o Resolvido c/ Semáforos e Monitores7/14

Page 16: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Exclusão Mútua

o Soluções de software:

Primeiro algoritmo

o Usa variável global para sincronizar processos

o Só funciona para dois processos

o Processos são sempre alternados

Um processo fica bloqueado se o outro não entrar na RC

o Se um processo travar, o outro fica bloqueado aguardando entrar na RC

7/15

Page 17: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Exclusão Mútua

o Soluções de software:

Segundo algoritmo

o Funciona somente com dois processos

o Usa variável de condição para cada processo, informando se processo está ou não na RC

o Processos não necessitam ser alternados

o Se um processo travar antes de alterar variável, o outro fica bloqueado aguardando entrar na RC

o Não garante exclusão mútua!7/16

Page 18: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Exclusão Mútua

o Soluções de software:

Terceiro algoritmo

o Funciona somente com dois processos

o Atribuição da variável de condição é feita antes do loop de teste

o Processos não necessitam ser alternados

o Se um processo travar antes de alterar variável, o outro fica bloqueado

o Garante exclusão mútua, mas ambos processos podem ficar bloqueados 7/16

Page 19: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Exclusão Mútua

o Soluções de software:

Quarto algoritmo

o Funciona somente com dois processos

o Como o terceiro, mas introduz tempo aleatório para setar váriável de condição

o Processos não necessitam ser alternados

o Se um processo travar antes de alterar variável, o outro fica bloqueado

o Garante exclusão mútua, mas ambos processos podem ficar bloqueados durante algum tempo

7/17

Page 20: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Exclusão Mútua

o Soluções de software:

Algoritmo de Peterson

o Solução para problemas anteriores, foi generalizado para N processos (Hofri, 1990)

o Além das variáveis de condição, usa variável “Vez” para resolver conflitos

Antes de acessar a RC, sinaliza este desejo mas cede a vez para outro processo, depois fica em loop aguardando sua vez

Para N processos, também há o algoritmo do Padeiro (Lamport, 1974)

7/17

Page 21: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Sincronização Condicional

o Situação onde o acesso à RC exige sincronização vinculada a uma condição de acesso

Recurso disponível se condição satisfeita, processos bloqueados enquanto isso

Ex: comunicação via leitura/escrita em buffer

o Conhecido como problema produtor/consumidor ou buffer limitado

o Mantém-se o problema da espera ocupada

o Obs: algoritmo apresentado não considera necessidade de exclusão mútua da variável “Cont”

7/18

Page 22: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Semáforos

o Proposto por Dijkstra em 1965

Mecanismo de sincronização para implementar exclusão mútua e sincronização condicional

Principal mecanismo usado em aplicações concorrentes

o Composto por uma variável inteira não negativa manipulada somente pelas instruções UP e DOWN

UP incrementa de 1, DOWN decrementa de 1

UP e DOWN são instruções indivisíveis

o Executar DOWN num semáforo com valor 0 coloca o processo na fila de espera

7/19

Page 23: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Semáforos

o Classificados como binários ou contadores

Semáforos binários (MUTEX, de MUTual EXclusion) só podem assumir 0 ou 1

Semáforos contadores podem assumir qualquer valor inteiro não negativo

o Exclusão mútua implementada por um MUTEX associado ao recurso compartilhado

Vantagem: ausência de espera ocupada

DOWN e UP funcionam como protocolos de entrada e saída na RC, respectivamente

MUTEX em 1 indica recurso disponível 7/20

Page 24: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

Arq

uite

tura

de

Sis

tem

as O

pera

cion

ais

– M

acha

do/M

aia

7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos Utilização do Semáforo Binário na Exclusão Mútua

7/21

Fila de esperad e processos

Processo acessaa reg iã o cr ítica

Processo d eseja en tra rn a reg ião cr ítica

DOW

N (S=

0)

DOW

N (S

>0)

U P (S) - p rocesso sa id a reg ião cr ítica

Libe ra processod a fi la de espe ra

MUTEX é iniciado com valor 1

Page 25: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Semáforos

o Sincronização condicional para operação de E/S

Semáforo iniciado com 0

Pedido de operação via DOWN

Completada a operação, rotina faz UP

o Para o problema produtor/consumidor

Usa 3 semáforos:

o Um MUTEX, para fazer exclusão mútua, iniciado com 1

o Dois contadores, para sincronização condicional 7/22

Page 26: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Semáforos

o Problema produtor/consumidor:

Mutex usado para a RC que permite gravação e leitura (logo, mutuamente exclusivas)

Semáforos contadores representam posições livres (“Vazio”) para serem gravadas, e posições ocupadas (“Cheio”) para serem lidas

o Vazio = 0, processo produtor em espera

o Cheio = 0, processo consumidor em espera

“Vazio” iniciado com tamanho do buffer

“Cheio” iniciado com 0

7/23

Page 27: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Semáforos

o Semáforos contadores são úteis para problemas de sincronização condicional com processos concorrentes disputando pool de recursos

Semáforo iniciado com número total de recursos do pool

Processo que deseja alocar recurso faz DOWN

Processo que libera recurso faz UP

Semáforo em 0 indica que não há mais recursos disponíveis no pool e coloca processos que fizeram DOWN em espera7/23

Page 28: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Problema do Barbeiro

o Na barbearia há um barbeiro, uma cadeira de barbeiro e 5 para espera

o Se um cliente chega e o barbeiro está trabalhando, ele senta se houver cadeira vaga, senão vai embora

o Se não há nenhum cliente para atender, barbeiro senta na cadeira e dorme até novo cliente chegar

7/24

Page 29: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Problema dos Filósofos

o Exemplo clássico de sincronização de processos

o Também chamado de “Dining Philosophers”

Mesa com 5 pratos e 5 garfos

Filósofos podem sentar, comer e pensar

Quando filósofo para de pensar e deseja comer, precisa usar dois garfos, à direita e à esquerda

Se todos os filósofos estiverem segurando um garfo cada, nenhum deles come (Deadlock!) 7/25

Page 30: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Problema dos Filósofos

o Existem várias soluções, dentre elas:

Permitir que apenas 4 filósofos sentem à mesa simultaneamente

Permitir que um filósofo um garfo apenas quando o outro estiver disponível

Permitir que um filósofo ímpar pegue primeiro o seu garfo da esquerda e depois o da direita, enquanto um filósofo par pegue primeiro o garfo da direita e depois o da esquerda

7/26

Page 31: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Monitores

o Mecanismos de sincronização de alto nível

o Formado por procedimentos e variáveis encapsuladas dentro de um módulo

o Diferenças entre monitores e semáforos:

Semáforos são mecanismos não estruturados implementados pelo desenvolvedor

Monitores são mecanismos estruturados implementados pelo compilador

7/27

Page 32: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Monitores

o Um monitor é definido especificando-se um nome, declarando-se variáveis locais, um conjunto de procedimentos e um código de inicialização

o Um processo que deseje acessar determinada RC através de um monitor fará chamada a um dos procedimentos do monitor

Caso outro processo já esteja executando qualquer um dos procedimentos, ele aguarda sua vez na fila

7/28

Page 33: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Estrutura do Monitor

7/29

D ecla ração deva riáveis g lo ba is

Proced im entos

Fila de entra da

In icia lizaçãod e va r iáveis

Proc. 1

Proc. 2

Proc. n

Mo

nit

or

Page 34: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Monitores

o O uso de monitores facilita o desenvolvimento de aplicações concorrentes

Exclusão mútua é implementada de forma automática

o Somente um processo pode estar executando qualquer um dos procedimentos do monitor

Variáveis globais do monitor são visíveis apenas aos procedimentos de sua estrutura, inacessíveis externamente

Inicialização das variáveis por código no monitor, apenas na ativação do programa principal

7/30

Page 35: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Exclusão Mútua com Monitores

o Regiões críticas definidas como procedimentos no monitor, exclusão mútua entre eles por conta do compilador

o Comunicação com o monitor unicamente através da chamada de seus procedimentos e dos parâmetros passados

7/31

Page 36: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Sincronização Condicional com Monitores

o Se vale de variáveis especiais de condição para associar a execução dos procedimentos do monitor

o Variáveis de condição são manipuladas por intermédio das funções WAIT e SIGNAL

Instrução WAIT faz com que o processo seja colocado na respectiva fila de espera e aguarde que a condição seja satisfeita

Processo sai da fila de espera quando outro processo usar a instrução SIGNAL para sinalizar que a condição de espera foi satisfeita

Se SIGNAL for executado e não houver processo em wait, nada ocorrerá

7/32

Page 37: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Estrutura do Monitor com Variáveis de Condição

7/33

D ecla ração deva riáveis g lo ba is

Proced im ento s

Fila de entra da

In icia lizaçãod e va r iáveis

Proc. 1

Proc. 2

Proc. n

Mo

nit

or

F ila s de esp era

C o n diçã o C 1

C o n diçã o C 2

C o n diçã o C n

Page 38: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Transmissão de Mensagem

7/34

Pro cessotran sm isso r

Pro cessorecep to r

SEN D REC EIV E

C an a l d e co m u nicação

Page 39: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Comunicação Direta e Indireta

7/35

Pro cesso A Pro cesso B

Pro cesso A Pro cesso B

M a ilb oxo u Po rt

Page 40: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Troca de Mensagens

o Forma síncrona:

Processo transmissor fica esperando que o processo receptor leia a mensagem

Processo receptor fica aguardando que processo transmissor mande a mensagem

o Forma assíncrona:

Processos não ficam bloqueados à espera de mensagem

o Uso de buffers

7/36

Page 41: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Deadlock

o Situação onde um processo aguarda indefinidamente por um recurso que nunca estará disponível ou aguarda por um evento que nunca irá ocorrer

o Pode ser representado por ciclos num diagrama de grafo

Nós simbolizam processos e recursos

Aresta que sai do processo X e chega ao recurso Y indica que X solicita Y

Aresta que sai do recurso Y e chega no processo X indica que Y está alocado a X

7/37

Page 42: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

Arq

uite

tura

de

Sis

tem

as O

pera

cion

ais

– M

acha

do/M

aia

7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos Deadlock – Espera Circular

7/38

Recu rso 2 Recu rso 1

Processo A

Processo B

Processo Aso licita oRecu rso 2

Recu rso 1a loca do aoProcesso A

Recu rso 2a loca do aoProcesso B

Processo Bso licita oRecu rso 1

Page 43: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Deadlock

o Condições simultâneas para ocorrer deadlock:

Exclusão mutua: Cada recurso só pode estar alocado a um único processo por vez

Espera por recurso: Um processo, apesar dos recursos alocados, pode estar esperando por novo recurso

Não-preempção: recurso não é liberado de um processo devido à solicitação do mesmo por outro processo

Espera circular: processo pode ter que esperar por um recurso alocado a outro processo e vice-versa

7/39

Page 44: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Deadlock

o Prevenção de deadlock:

Evitar que as condições para deadlock ocorram simultaneamente

Evitar que pelo menos uma das condições para deadlock ocorra

o Forçar o processo a ter apenas um recurso por vez (evita a espera circular)

o Permitir preempção

o Processos que possuem recurso não podem solicitar outro recurso

o Compartilhamento de recursos (!) 7/40

Page 45: ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado.

AS

O –

Mac

hado

/Mai

a –

com

plem

. por

Sid

ney

Luc

ena

(UN

IRIO

)7 – 7 – Sincronização e Comunicação entre ProcessosSincronização e Comunicação entre Processos

Deadlock

o Detecção de deadlock:

Se dá através da verificação de espera circular

o Correção de deadlocks:

Eliminação de todos os processos envolvidos no deadlock

Eliminação de apenas um dos processos envolvidos no deadlock

Liberação de apenas alguns recursos alocados aos processos em deadlock

7/41