sistemas operacionais - aula12

Post on 09-Jul-2015

160 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Sis

tem

as

Op

era

cio

nais

©

2011 M

arc

ellu

s C

ysn

e

Exclusão Mútua

• Dormir e Acordar– Bloqueio no lugar de espera ociosa

– Primitivas de IPC• sleep: quem chama, dorme

• wakeup: acorda processo suspenso

1

Sis

tem

as

Op

era

cio

nais

©

2011 M

arc

ellu

s C

ysn

e

Exclusão Mútua

• Produtor – Consumidor– Processos compartilham buffer

– Buffer tem tamanho limitado e fixo

– Problemas:• Produtor encontra buffer cheio: dorme

• Consumidor encontra buffer vazio: dorme

2

Sis

tem

as

Op

era

cio

nais

©

2011 M

arc

ellu

s C

ysn

e

Exclusão Mútua

• Produtor – Consumidor– Há uma condição de disputa

• cont: variável tamanho buffer

• Produtor verifica se cont = N : dorme / adiciona item

• Consumidor verifica se cont = 0 : dorme / consome

– Cada processo testa se o outro está acordado• Se o outro dorme: wakeup

3

Sis

tem

as

Op

era

cio

nais

©

2011 M

arc

ellu

s C

ysn

e

Produtor - Consumidor

4

Sis

tem

as

Op

era

cio

nais

©

2011 M

arc

ellu

s C

ysn

e

Produtor - Consumidor

5

Sis

tem

as

Op

era

cio

nais

©

2011 M

arc

ellu

s C

ysn

e

Exclusão Mútua

• Condição de Disputa– Buffer está vazio

– Consumidor lê cont (== 0)

– Escalonador alterna para produtor

– Produtor adiciona item (cont == 1)

– Produtor chama wakeup (consumidor)

– Primitiva perdida (consumidor acordado)

– Consumidor retorna (cont lido == 0 : dorme)

– Produtor preencherá buffer e dormirá também

6

Sis

tem

as

Op

era

cio

nais

©

2011 M

arc

ellu

s C

ysn

e

Sobre Exclusão Mútua

• Assinale a alternativa corretaa) Desabilitar interrupções é a solução mais simples para exclusão

mútua. Assim, a CPU poderá alternar os processos sempre que entrarem em suas regiões críticas.

b) Com a ideia de variáveis de impedimento (lock variables) conseguimos contornar a condição de disputa evitando que dois processos entrem em suas RCs ao mesmo tempo

c) Testar continuamente uma variável até que algum valor apareça é chamado de spin lock

d) No problema da inversão de prioridade, um processo de alta prioridade permanece em espera ociosa enquanto aguarda um processo de baixa prioridade sair de sua região crítica

7

Sis

tem

as

Op

era

cio

nais

©

2011 M

arc

ellu

s C

ysn

e

Semáforos

• Novo tipo de variável

• Armazena sinais de wakeup (up)

• Operação down– Verifica se semáforo > 0

• Decresce; prossegue ou

• Dorme; down pendente

8

Atômico

Sis

tem

as

Op

era

cio

nais

©

2011 M

arc

ellu

s C

ysn

e

Semáforos

• Operação up– Verifica processos dormindo no semáforo

• Acorda processo

• Permissão para conclusão do “down” ou

• Incrementa valor semáforo

– Ação atômica

9

Sis

tem

as

Op

era

cio

nais

©

2011 M

arc

ellu

s C

ysn

e

Mutex

• Versão simplificada de semáforo

• Mutual Exclusion

• Thread (ou processo) precisa acessar RC– mutex_lock

– Se mutex impedido, thread bloqueia

– Thread sai RC, chama mutex_unlock

10

Sis

tem

as

Op

era

cio

nais

©

2011 M

arc

ellu

s C

ysn

e

Em sala

• Responda em equipes de até 5 pessoas

• Na entrega: 0,1pt na AP1

• Para resposta correta: 0,2pt

11

top related