Buscar

Sistemas Operacionais 3

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 22 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 22 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 22 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
Comunicação Interprocessos 
e Sincronização
Prof. André Leon S. Gradvohl, Dr.
andre.gradvohl@gmail.com
Plano de Aula
� Comunicação interprocessos
� Sincronização
� Termos importantes
� Técnicas de sincronização
�Suspensão de interrupções
�Espera ocupada
�Semáforos
�Monitores
� Trocas de mensagens
�Barreiras
Comunicação Interprocessos
� Muitas vezes é importante que as tarefas 
(processos) cooperem para a solução de 
um problema.
� As tarefas podem compartilhar a mesma 
área de memória em um mesmo processo 
(threads) ou em múltiplos processos.
� As formas de comunicação podem ser:
� através de trocas de mensagens; ou
� compartilhando a mesma área de memória.
Comunicação Interprocessos
Memória
Processo 0
Processo 1
Área Compartilhada
XXX
Referência
Comunicação Interprocessos
Memória
Processo 0
Processo 1
Área Compartilhada
XXX
Referência
� Que problemas 
podem acontecer 
com processos 
que compartilham 
memória?
YYY
Sincronização
� Sincronizar é evitar que dois ou mais processos 
tenham acesso à mesma região crítica ao 
mesmo tempo.
� Termos importantes:
� Região crítica: recurso compartilhado entre dois ou 
mais processos.
� Condição de corrida: situação onde dois ou mais 
processos concorrem pelo mesmo recurso.
� Exclusão mútua: garantia que apenas um processo 
usará a região crítica em cada instante.
Sincronização
� As condições para prover a exclusão 
mútua são:
1. Jamais dois processos entrarão 
simultaneamente na mesma região crítica.
2. Nenhuma afirmação a respeito da 
velocidade dos processos.
3. Nenhum processo fora da região crítica 
pode bloquear os demais processos.
4. Nenhum processo deve esperar 
eternamente para entrar na região crítica.
Sincronização
� Existem várias técnicas de 
sincronização. As mais comuns são:
� Suspensão de interrupções
� Espera ocupada
� Semáforos
� Monitores
� Trocas de mensagens
� Barreiras
Técnicas de Sincronização:
Suspensão de instruções.
� Ao entrar na região crítica o processo suspende 
as interrupções, para que não seja bloqueado 
até que saia da região crítica.
� Problemas associados:
� Ao desligar as interrupções, a preempção por tempo 
ou por recursos deixa de funcionar; caso a tarefa 
entre em um laço infinito dentro da região crítica, o 
sistema inteiro será bloqueado. 
� Enquanto as interrupcções estão desativadas, os 
dispositivos de entrada/saída deixam de ser 
atendidos pelo núcleo, o que pode causar perdas de 
dados ou outros problemas.
� A tarefa que está na seção crítica não pode realizar 
operações de entrada/saída, pois os dispositivos não 
responderão.
Técnicas de Sincronização:
Soluções com espera ocupada
� Essa técnica consiste em testar 
continuamente uma condição que indica 
se a região crítica desejada está livre ou 
ocupada.
� Existem três técnicas:
� Estrita alternância
� Algoritmo de Paterson
� Instrução TSL
Técnicas de Sincronização:
Soluções com espera ocupada
Entra()
Sai()
Região 
Crítica
P0 P1
Técnicas de Sincronização:
Soluções com espera ocupada
� Estrita alternância:
int vez = 0 ;
int num_tarefas;
void entra( int tarefa )
{
while (vez != tarefa) ; /∗ a tarefa espera seu turno ∗/
}
void sai( int tarefa )
{
if (vez < num_tarefas) /∗ o turno e da próxima tarefa ∗/
vez++ ;
else
vez = 1 ; /∗ volta `a primeira tarefa ∗/
}
Técnicas de Sincronização:
Soluções com espera ocupada
� Solução de Paterson:
int vez = 0 ; 
int querusar[2] = {0, 0};
void entra ( int tarefa ) /∗ tarefa pode valer 0 ou 1 ∗/
{
int outra = 1 − tarefa; 
querusar[tarefa] = 1 ; 
vez = tarefa ;
while ((vez == tarefa) && querusar[outra]) 
; /∗ espera ocupada ∗/
}
void sai( int tarefa )
{
querusar[tarefa] = 0 ; 
}
Técnicas de Sincronização:
Soluções com espera ocupada
� Test-and-set lock:
� TSL é uma instrução atômica que permite o 
teste e a definição do valor de uma variável 
em uma única operação atômica.
Técnicas de Sincronização:
Semáforos
� Apesar de ter sido inventado em 1965, por E. 
Dijkstra, os semáforos são a técnica mais usada 
atualmente.
� Um semáforo é uma variável (s), associada a 
uma região crítica, sobre a qual podem incidir 
duas operações:
� Operação Down: verifica se o valor de s é maior que 
zero. Se for, o valor é decrementado. Senão, a tarefa 
é bloqueada e o valor de s permanece zero.
� Operação Up: incrementa o valor de s, e desbloqueia 
as demais tarefas se o valor for zero.
Técnicas de Sincronização:
Semáforos
Região Crítica
s
P0
P1
P2
s
Técnicas de Sincronização:
Semáforos
Região Crítica
s
P0
P1
P2
s
Técnicas de Sincronização:
Monitores
� A técnica de monitores garante que 
apenas um processo está usando um 
procedimento ou função do programa em 
um dado instante.
� Dessa forma, embute-se o acesso à 
região crítica em um procedimento ou 
função e assim evita-se que dois ou mais 
processos acessem a região em um 
mesmo instante.
Técnicas de Sincronização:
Troca de Mensagens
� A técnica de troca de mensagens é mais 
útil na sincronização de sistemas 
distribuídos.
� Nesse caso, um processo fica bloqueado 
até que receba uma mensagem de que 
pode usar a região crítica.
Técnicas de Sincronização:
Troca de Mensagens
Região Crítica
P0 P2Pc
Posso usar? Posso usar?
Agora pode
Técnicas de Sincronização:
Trocas de Mensagens
Região Crítica
P0
P2
Pc
Posso usar?
Vou sair!
Agora pode
Técnicas de Sincronização:
Barreiras
B
a
r
r
e
i
r
a
 
d
e
 
S
o
f
t
w
a
r
e
P0
P1
P2
P3
P0
P1
P2
P3

Outros materiais