Vous êtes sur la page 1sur 31

S

i
s
t
e
m
a
s

O
p
e
r
a
c
i
o
n
a
i
s
Sincronizao entre tarefas
(MULTIPROGRAMAO)

S
i
s
t
e
m
a
s

O
p
e
r
a
c
i
o
n
a
i
s
S
i
n
c
r
o
n
i
z
a

o

e
n
t
r
e

t
a
r
e
f
a
s
Objetios

Condies de disputa;

Excluso mtua;

Regio crtica;

Semforos;

Monitores;

Deadloc!
Captulo " Ma#ieiro
Captulo $ %rancis &erenger

Prof. Pedro Batsta de Carvalho Filho
Sistemas Operacionais
Intro!"o#Motiao
A$%icao
Rec"rso co&$arti%'a!o
Sincronizao
C'(D)*+' DE D)S,-./

Prof. Pedro Batsta de Carvalho Filho
Sistemas Operacionais
(on!io !e !is$"ta
!!! 0uando duas ou mais tarefas acessam
simultaneamente o mesmo recurso
compartil1ado2 causando assim2 inconsist3ncia
nos dados!

Prof. Pedro Batsta de Carvalho Filho
Sistemas Operacionais
)a&os a $rob%e&*tica+++
4ual ser o resultado final do sa%!o caso
algumas das tarefas se5a interrompida antes de
finali#ar o dep6sito7

Prof. Pedro Batsta de Carvalho Filho
Sistemas Operacionais
,-e&$%o $ro.ra&a (onta/(orrente
(r0!ito 12
.1read 8/9 : ;< ; = >?
(r0!ito 13
.1read 8&9 : ;< ; = @???
T'rea! Instr"o
Me&4ria
Re.istra!ores
T'rea!s
5 R(A) R(6)
& A'/D ;2 R8&9 @? B @?
& /DD @???2 R8&9 @? B @?@?
/ A'/D ;2 R8&9 @? @? B
/ /DD >?2 R8&9 @? C? B
& S.'RE R8/92 ; @?@? B @?@?
/ S.'RE R8&92 ; C? C? B
Sa%!o at"a%
5 7 21
Processo A Processo 6
A'/D ;2R8/9 A'/D ;2R8&9
/DD >?2R8/9 /DD @???2R8&9
S.'RE R8/92; S.'RE R8&92;

Prof. Pedro Batsta de Carvalho Filho
Sistemas Operacionais
8 9 necess*rio :"e 'aja "&a sincronizao
$ara contro%e !este rec"rso co&$arti%'a!o

Prof. Pedro Batsta de Carvalho Filho
Sistemas Operacionais
/ mel1or forma de impedir esse proDlema2 E eFitar
0ue dois t1read acessem o mesmo recurso
simultaneamente!
/ssim2 en0uanto um t1read estiFer acessando um
determinado recurso2 os outros esperam pelo tErmino
do t1read corrente
Isso se c'a&a ,5(LUSO M;TUA

Prof. Pedro Batsta de Carvalho Filho
Sistemas Operacionais
,arte do c6digo onde E feito o controle
do acesso ao recurso compartil1ado E
denominado de re.io cr<tica!
6,GI=
+
+
,ntra/Re.iao/(ritica> (? Protoco%o !e entra!a ?)
Re.io (ritica>
Sai/Re.iao/(ritica (? Protoco%o !e sai!a ?)
+
+
,=@
)ndica se 5 existe
algum acesso G
regio crtica
)nforma 0ue
deixou de acessar
a regio crtica

Prof. Pedro Batsta de Carvalho Filho
Sistemas Operacionais
Antes !e contin"arA a%."&as
ref%e-Bes+++

H possFel preFer este tipo de situao7

Mesmo na ocorr3ncia deste tipo de proDlema2 E fcil de


identificar sua origem7

Existe alguma soluo 0ue eFite @??I a ocorr3ncia de


J tarefas acessarem ao mesmo tempo a regio crtica7

Prof. Pedro Batsta de Carvalho Filho
Sistemas Operacionais
So%"Bes $ara i&$%e&entar a e-c%"so
&Ct"aA o" sejaA $rote.er a re.io critica+

So%"o !a es$era oc"$a!a (Pro.ra&a!or)

Modelo de algoritmo 8softKare9

)nstrues testLandLset 81ardKare9

I&$%e&entao ia softDare (Pro.ra&a!or e


SO)

Semforos

Monitores

Prof. Pedro Batsta de Carvalho Filho
Sistemas Operacionais
So%"o co& es$era oc"$a!a

@efinioE Considerada como uma das


primeiras solues para o proDlema da
excluso mtua no acesso a sees crticas2
0ue consiste em testar continuamente uma
condio 0ue indica se a seo dese5ada est
liFre ou ocupada!

Modelo de algoritmo

)nstrues testLandLset

Prof. Pedro Batsta de Carvalho Filho
Sistemas Operacionais
,s$era oc"$a!a
(Mo!e%o !e a%.orit&o)
import time
import t1reading
Fe# < ?@
def t1readM?@8 9N
gloDal Fe#
K1ile Fe# << ?JN
OO(o fa# nada
A(,SSA/R,GIAO/(RITI(A
Fe#<?J
def t1readM?J8 9N
gloDal Fe#
K1ile Fe# << ?@N
OO(o fa# nada
A(,SSA/R,GIAO/(RITI(A
Fe#<?@
t@ < t1reading!.1read8target<t1readM?@9
t@!start 8 9
tJ < t1reading!.1read8target<t1readM?J9
tJ!start 8 9
.1read )nstruo Pe#
?J gloDal Fe# ?@
?J K1ile Fe# << ?@ ?@
?@ gloDal Fe# ?@
?@ K1ile Fe# << ?J ?@
?@ R,GIO (RITI(A ?@
?J K1ile Fe# << ?@ ?@
?@ R,GIO (RITI(A ?@
?@ Fe# < ?J ?J
?J K1ile Fe# << ?@ ?J
?J R,GIO (RITI(A ?J
Exemplo com tempo de 0uantum para
executar no mximo Q instrues

Prof. Pedro Batsta de Carvalho Filho
Sistemas Operacionais
,s$era oc"$a!a
(A%.orit&o !e Petersen)
ResolFe alguns proDlemas de excluso mtua
existentes em outros algoritmos!
(o E preciso indicar 0ual t1read Fai iniciar2 isto E
feito automaticamente!

Prof. Pedro Batsta de Carvalho Filho
Sistemas Operacionais
,s$era oc"$a!a
(A%.orit&o !e Petersen)

Prof. Pedro Batsta de Carvalho Filho
Sistemas Operacionais
Inibio $or interr"$o
(o&o f"ncionaF

Consiste em impedir a troca de contexto2 ou se5a2 a


tarefa desaDilita as interrupes do processador2
eFitando assim2 0ue a tarefa deixe o estado de
execuo mesmo terminando o tempo de 0uanto2 ou
ocorrendo uma interrupo de 1ardKare
(oFo ,ronto
Ex
Espera
%in

Prof. Pedro Batsta de Carvalho Filho
Sistemas Operacionais
,s$era oc"$a!a
(Instr"o testGan!Gset)

Muitos processadores possuem uma instruo de m0uina


especial 0ue permite ler uma FariFel2 arma#enar seu contedo
em uma outra rea e atriDuir um noFo Falor G mesma FariFel!

Essa instruo especial E c1amada testLandLsetLloced 8.SA9 e


tem como caracterstica ser executada sem interrupo2 ou se5a2
trataLse de uma instr"o atH&ica ou indiFisFel!

Dessa forma2 E garantido 0ue dois processos no manipulem


uma FariFel compartil1ada ao mesmo tempo2 possiDilitando a
implementao da excluso mtua!

/ instruo .SA possui o formato a seguir2 e 0uando executada o


Falor l6gico da FariFel R E copiado para ;2 sendo atriDudo G
FariFel R o Falor l6gico FerdadeiroN
TSL (5AI)>

Prof. Pedro Batsta de Carvalho Filho
Sistemas Operacionais
,s$era oc"$a!a
(Instr"o testGan!Gset)
,-e&$%o !o %iro !e Jrancis 6eren.er+ (a$ K

Prof. Pedro Batsta de Carvalho Filho
Sistemas Operacionais
I&$%e&entao ia SoftDare
Pro.ra&a!or L SO
Semforos e Monitores

Prof. Pedro Batsta de Carvalho Filho
Sistemas Operacionais
Se&*foros

Conceito proposto por E! S! Di5stra em @TC>!

-m semforo E uma FariFel


inteira2 noLnegatiFa2 0ue s6 pode
ser manipulada por duas
instruesN D'S( e -,!

Semforo pode ser classificado


como Dinrio ou contador! 's
semforos Dinrios2 tamDEm
c1amados de mutexes 8mutual
exclusion semap1ores92 s6 podem
assumir Falores ? e @!

Conceito proposto por E! S! Di5stra em @TC>!



Prof. Pedro Batsta de Carvalho Filho
Sistemas Operacionais
Se&*foros

/s instrues -, e D'S( so atH&icas2 e


funcionam como protocolos de entrada e sada da
regio crtica do processo!

' semforo fica associado a um recurso


compartil1ado indicando 0uando o recurso est sendo
acessado por um dos processos concorrentes!

' Falor do semforo igual a @ indica 0ue nen1um


processo est utili#ando o recurso2 en0uanto o Falor
?2 indica 0ue o recurso est em uso!

Prof. Pedro Batsta de Carvalho Filho
Sistemas Operacionais
PROGRAM SemaforoM@
)AR sN Semaforo N< @; 8B )niciali#ao do semforo B9
6,GI=
PAR6,GI=
,rocessoM/;
,rocessoM&;
PAR,=@;
,=@!
Se&*foros
PRO(,@UR, ,rocessoM&;
6,GI=
R,P,AT
D'S( 8 s 9;
RegiaoMCriticaM&;
-, 8 s 9;
U=TIL false;
,=@;
PRO(,@UR, ,rocessoM/;
6,GI=
R,P,AT
D'S( 8 s 9;
RegiaoMCriticaM/;
-p 8 s 9;
U=TIL false;
,=@;

Prof. Pedro Batsta de Carvalho Filho
Sistemas Operacionais
Se&*foros
J
(oFo ,ronto
Ex
Espera
%im
%ila semforo
" Q
>
@
Se surgir uma noFa t1read para acessar o recurso compartil1ado2 o 0ue
acontece 0uando entrar em execuo7
" J Q @
Recurso
compartil1ado
>
x x x
x

Prof. Pedro Batsta de Carvalho Filho
Sistemas Operacionais
Se&*foros

/o usar semforos2 um programador define


explicitamente os pontos de sincroni#ao
necessrios em seu programa!

Essa aDordagem E efica# para programas pe0uenos


e proDlemas de sincroni#ao simples2 mas se torna
inFiFel e suscetFel a erros em sistemas mais
complexos!

,or exemplo2 se o programador es0uecer de liDerar


um semforo preFiamente alocado2 o programa pode
entrar em um impasse! ,or outro lado2 se ele
es0uecer de re0uisitar um semforo2 a excluso
mtua soDre um recurso pode ser Fiolada!

Prof. Pedro Batsta de Carvalho Filho
Sistemas Operacionais
Monitores

Em @T$J2 os cientistas ,er &rinc1 Uansen e


C1arles Uoare definiram o conceito de monitor!

-m monitor E uma estrutura de sincroni#ao


0ue re0uisita e liDera a seo crtica associada
a um recurso de forma transparente2 sem 0ue o
programador ten1a de se preocupar com isso!

De certa forma2 um monitor pode ser Fisto


como um oD5eto 0ue encapsula o recurso
compartil1ado2 com procedimentos 8mEtodos9
para acessLlo!

Prof. Pedro Batsta de Carvalho Filho
Sistemas Operacionais
Monitores
&onitor conta
V
float saldo < ?!?;
Foid depositar 8float Falor9V
if 8Falor W< ?9
contaLWsaldo =< Falor ;
Else
error 8XerroN Falor negatiFoYnX9 ;
Z
Foid retirar 8float saldo9V
if 8Falor W< ?9
contaLWsaldo L< Falor ;
else
error 8XerroN Falor negatiFoYnX9 ;
Z
Z
Monitor
Declarao de
FariFeis gloDais
)niciali#ao de
FariFeis
,rocedimentos
,roc! @
,roc! J
,roc! n
!
!
!

Prof. Pedro Batsta de Carvalho Filho
Sistemas Operacionais
Monitores (jaa)
Em [aFa2 a clusula
sMnc'ronize! fa# com 0ue um
semforo se5a associado aos
mEtodos indicados2 para cada
oD5eto 8ou para cada classe2 se
forem mEtodos de classe9!
(este exemplo2 apenas um
dep6sito ou retirada de cada Fe#
poder ser feito soDre
cada oD5eto da classe Conta!

Prof. Pedro Batsta de Carvalho Filho
Sistemas Operacionais
Monitores

/s operaes de oDteno e liDerao do


semforo so inseridas automaticamente pelo
compilador do programa em todos os pontos
de entrada e sada do monitor 8no incio e final
de cada procedimento92 liDerando o
programador dessa tarefa e assim eFitando
erros!

Prof. Pedro Batsta de Carvalho Filho
Sistemas Operacionais
Prob%e&as c%*ssicos !e
coor!enao

' proDlema dos produtoresOconsumidores

' proDlema dos leitoresOescritores

' 5antar dos fil6sofos



Prof. Pedro Batsta de Carvalho Filho
Sistemas Operacionais
Prob%e&a !e @ea!%ocN

Deadlock E a situao em 0ue um processo


aguarda por um recurso 0ue nunca estar
disponFel ou um eFento 0ue no ocorrer!
Essa situao E conse0u3ncia2 na maioria das
Fe#es2 do compartil1amento de recursos2 como
dispositiFos2 ar0uios e registros2 entre
processos concorrentes em 0ue a excluso
mtua E exigida!

Prof. Pedro Batsta de Carvalho Filho
Sistemas Operacionais
Oantar !os fi%4sofos

Vous aimerez peut-être aussi