sdsd
Operacionais
Aula 11
Sincronização de Processos
Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por:
SO - Prof. Edilberto Silva
Prof. José Juan Espantoso
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
SO - Prof. Edilberto Silva
2
Introdução
Os processos concorrentes executando no sistema operacional podem ser:
Independentes: não podem afetar ou serem afetados pelos outros processos executando no sistema
Cooperativos – podem afetar ou serem afetados por outros processos em execução no sistema. Compartilham diretamente um espaço de endereçamento lógico (ou seja, código e dados) ou ter permissão para compartilhar dados através de arquivos
Discutiremos os mecanismos para garantir uma execução ordenada de processos ou threads cooperativos para que a consistência dos dados seja mantida.
SO - Prof. Edilberto Silva
3
Aplicações Concorrentes
Sincronização e comunicação entre processos
S in c ro n iz a ç ã o gr Pro ce sso g ra v a d o r
av aç ão
le
it u
ra
Pro ce sso le ito r
d ado
Bu ffe r
SO - Prof. Edilberto Silva
4
Especificação de Concorrência em
Programas
Concorrência em programas
Pro ce sso p rin c ip a l
PARBEGIN
Comando_1;
Comando_2;
.
.
Comando_n;
PAREND
P r o c e s s o 1
P r o c e s s o 2
P r o c e s s o n
Pro ce sso p rin c ip a l
SO - Prof. Edilberto Silva
5
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.
SO - Prof. Edilberto Silva
6
Prob. de Compartilhamento