sistemas operacionais - aula12

11

Click here to load reader

Upload: exercito-brasileiro-oficial

Post on 09-Jul-2015

160 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Sistemas operacionais - aula12

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

Page 2: Sistemas operacionais - aula12

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

Page 3: Sistemas operacionais - aula12

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

Page 4: Sistemas operacionais - aula12

Sis

tem

as

Op

era

cio

nais

©

2011 M

arc

ellu

s C

ysn

e

Produtor - Consumidor

4

Page 5: Sistemas operacionais - aula12

Sis

tem

as

Op

era

cio

nais

©

2011 M

arc

ellu

s C

ysn

e

Produtor - Consumidor

5

Page 6: Sistemas operacionais - aula12

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

Page 7: Sistemas operacionais - aula12

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

Page 8: Sistemas operacionais - aula12

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

Page 9: Sistemas operacionais - aula12

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

Page 10: Sistemas operacionais - aula12

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

Page 11: Sistemas operacionais - aula12

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