s s i a n o o i i c a a r e p O s a m e e t s S i s
Sincronização entre tarefas (MULTIPROGRAMAÇÃO)
s s i a n o o i i c s a a a a f r a e e r e a p t e e O r r t s n a e o m ã e e ç t s n i z z a S i s o r o c n n i S
Objetios ●
●
●
●
●
●
Condições de disputa; Exclusão mútua; Região crítica; Semáforos; Monitores; Deadloc!
Capítulo " Ma#ieiro Capítulo $ %rancis &erenger
s s i a n o o i i c s a a a a f r a e e r e a p t e e O r r t s n a e o m ã e e ç t s n i z z a S i s o r o c n n i S
Objetios ●
●
●
●
●
●
Condições de disputa; Exclusão mútua; Região crítica; Semáforos; Monitores; Deadloc!
Capítulo " Ma#ieiro Capítulo $ %rancis &erenger
Prof..PedroBastade CarvalhoFilho Prof Filho
Sistemas Operacionais
Intro!"ção#Motiação Sincronização
A$%icação
C'(D)*+' DE D)S,-./
Rec"rso co&$arti%'a!o
Prof.PedroBastade CarvalhoFilho
Sistemas Operacionais
on!ição !e !is$"ta
!!! 0uando duas ou mais tarefas acessam simultaneamente o mesmo recurso compartil1ado2 causando assim2 inconsist3ncia nos dados!
Prof.PedroBastade CarvalhoFilho
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.PedroBastade CarvalhoFilho
Sistemas Operacionais
,-e&$%o $ro.ra&a onta/orrente Sa%!o at"a% 5 7 21 r0!ito 12 .1read 8/9 : < = >? 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
r0!ito 13 .1read 8&9 : < = @???
T'rea! & & / / & /
Instr"ção A'/D 2 R8&9 /DD @???2 R8&9 A'/D 2 R8&9 /DD >?2 R8&9 S.'RE R8/92 S.'RE R8&92
Me&4ria 5 @? @? @? @? @?@? ?
Re.istra!ores T'rea!s R(A) R(6) B @? B @?@? @? B ? B B @?@? ? B
Prof.PedroBastade CarvalhoFilho
Sistemas Operacionais
8 9 necess*rio :"e 'aja "&a sincronização $ara contro%e !este rec"rso co&$arti%'a!o
Prof.PedroBastade CarvalhoFilho
Sistemas Operacionais / mel1or forma de impedir esse prolema2 eFitar 0ue dois t1read acessem o mesmo recurso simultaneamente!
Isso se c'a&a ,5LUSÃO M;TUA
/ssim2 en0uanto um t1read estiFer acessando um determinado recurso2 os outros esperam pelo trmino do t1read corrente
Prof.PedroBastade CarvalhoFilho
Sistemas Operacionais
,arte do c6digo onde feito o controle do acesso ao recurso compartil1ado denominado de re.ião cr
)ndica se 5á existe algum acesso G região crítica
)nforma 0ue deixou de acessar a região crítica
6,GI= + + ,ntra/Re.iao/ritica> (? Protoco%o !e entra!a ?) Re.ião ritica> Sai/Re.iao/ritica (? Protoco%o !e sai!a ?) + + ,=@
Prof.PedroBastade CarvalhoFilho
Sistemas Operacionais
Antes !e contin"ar a%."&as ref%e-Bes+++ ●
●
●
H possíFel preFer este tipo de situação7 Mesmo na ocorr3ncia deste tipo de prolema2 fácil de identificar sua origem7 Existe alguma solução 0ue eFite @??I a ocorr3ncia de J tarefas acessarem ao mesmo tempo a região crítica7
Prof.PedroBastade CarvalhoFilho
Sistemas Operacionais
So%"çBes $ara i&$%e&entar a e-c%"são &Ct"a o" seja $rote.er a re.ião critica+ ●
So%"ção !a es$era oc"$a!a (Pro.ra&a!or) – –
●
Modelo de algoritmo 8softKare9 )nstruções testLandLset 81ardKare9
I&$%e&entação ia softDare (Pro.ra&a!or e SO) – –
Semáforos Monitores
Prof.PedroBastade CarvalhoFilho
Sistemas Operacionais
So%"ção co& es$era oc"$a!a ●
@efiniçãoE Considerada como uma das primeiras soluções para o prolema da exclusão mútua no acesso a seções críticas2 0ue consiste em testar continuamente uma condição 0ue indica se a seção dese5ada está liFre ou ocupada! – –
Modelo de algoritmo )nstruções testLandLset
Prof.PedroBastade CarvalhoFilho
Sistemas Operacionais
,s$era oc"$a!a (Mo!e%o !e a%.orit&o) import time import t1reading Fe# < ?@ def t1read?@8 9N gloal Fe# K1ile Fe# << ?JN OO(ão fa# nada A,SSA/R,GIAO/RITIA Fe#
.1read ?J ?J ?@ ?@ ?@ ?J ?@ ?@ ?J ?J
)nstrução gloal Fe# K1ile Fe# << ?@ gloal Fe# K1ile Fe# << ?J R,GIÃO RITIA K1ile Fe# << ?@ R,GIÃO RITIA Fe# < ?J K1ile Fe# << ?@ R,GIÃO RITIA
Pe# ?@ ?@ ?@ ?@ ?@ ?@ ?@ ?J ?J ?J
Exemplo com tempo de 0uantum para executar no máximo Q instruções
Prof.PedroBastade CarvalhoFilho
Sistemas Operacionais
,s$era oc"$a!a (A%.orit&o !e Petersen) ResolFe alguns prolemas de exclusão mútua existentes em outros algoritmos! (ão preciso indicar 0ual t1read Fai iniciar2 isto feito automaticamente!
Prof.PedroBastade CarvalhoFilho
Sistemas Operacionais
,s$era oc"$a!a (A%.orit&o !e Petersen)
Prof.PedroBastade CarvalhoFilho
Sistemas Operacionais
Inibição $or interr"$ção o&o f"ncionaF ●
Consiste em impedir a troca de contexto2 ou se5a2 a tarefa desailita as interrupções do processador2 eFitando assim2 0ue a tarefa deixe o estado de execução mesmo terminando o tempo de 0uanto2 ou ocorrendo uma interrupção de 1ardKare %in Ex
Espera
,ronto
(oFo
Prof.PedroBastade CarvalhoFilho
Sistemas Operacionais
,s$era oc"$a!a (Instr"ção testan!set) ●
●
●
●
Muitos processadores possuem uma instrução de má0uina especial 0ue permite ler uma FariáFel2 arma#enar seu conteúdo em uma outra área e atriuir um noFo Falor G mesma FariáFel! Essa instrução especial c1amada testLandLsetLloced 8.SA9 e tem como característica ser executada sem interrupção2 ou se5a2 trataLse de uma instr"ção atH&ica ou indiFisíFel! Dessa forma2 garantido 0ue dois processos não manipulem uma FariáFel compartil1ada ao mesmo tempo2 possiilitando a implementação da exclusão mútua! / instrução .SA possui o formato a seguir2 e 0uando executada o Falor l6gico da FariáFel copiado para 2 sendo atriuído G FariáFel o Falor l6gico FerdadeiroN TSL (5)>
Prof.PedroBastade CarvalhoFilho
Sistemas Operacionais
,s$era oc"$a!a (Instr"ção testan!set)
Prof.PedroBastade CarvalhoFilho
Sistemas Operacionais
I&$%e&entação ia SoftDare Pro.ra&a!or SO
Semáforos e Monitores
Prof.PedroBastade CarvalhoFilho
Sistemas Operacionais
Se&*foros ●
●
●
Conceito proposto por E! ! Di5stra em @T>! -m semáforo uma FariáFel inteira2 nãoLnegatiFa2 0ue s6 pode ser manipulada por duas instruçõesN D'( e -,! Semáforo pode ser classificado como inário ou contador! 's semáforos inários2 tamm c1amados de mutexes 8mutual exclusion semap1ores92 s6 podem assumir Falores ? e @!
Prof.PedroBastade CarvalhoFilho
Sistemas Operacionais
Se&*foros ●
●
●
/s instruções -, e D'( são atH&icas2 e funcionam como protocolos de entrada e saída da região crítica do processo! ' semáforo fica associado a um recurso compartil1ado indicando 0uando o recurso está sendo acessado por um dos processos concorrentes! ' Falor do semáforo igual a @ indica 0ue nen1um processo está utili#ando o recurso2 en0uanto o Falor ?2 indica 0ue o recurso está em uso!
Prof.PedroBastade CarvalhoFilho
Sistemas Operacionais
Se&*foros PROGRAM Semaforo@ AR sN Semaforo N< @; 8B )niciali#ação do semáforo B9 6,GI= PAR6,GI= ,rocesso/; ,rocesso&; PAR,=@; ,=@! PRO,@UR, ,rocesso/; 6,GI= R,P,AT D'( 8 s 9; RegiaoCritica/; -p 8 s 9; U=TIL false; ,=@
PRO,@UR, ,rocesso&; 6,GI= R,P,AT D'( 8 s 9; RegiaoCritica&; -, 8 s 9; U=TIL false; ,=@
Prof.PedroBastade CarvalhoFilho
Sistemas Operacionais Recurso compartil1ado x x x @ J Q "
Se&*foros x
>
%im Ex
@
" Q J %ila semáforo
> Espera
,ronto
(oFo
Se surgir uma noFa t1read para acessar o recurso compartil1ado2 o 0ue acontece 0uando entrar em execução7
Prof.PedroBastade CarvalhoFilho
Sistemas Operacionais
Se&*foros ●
●
●
/o usar semáforos2 um programador define explicitamente os pontos de sincroni#ação necessários em seu programa! Essa aordagem efica# para programas pe0uenos e prolemas de sincroni#ação simples2 mas se torna inFiáFel e suscetíFel a erros em sistemas mais complexos! ,or exemplo2 se o programador es0uecer de lierar um semáforo preFiamente alocado2 o programa pode entrar em um impasse! ,or outro lado2 se ele es0uecer de re0uisitar um semáforo2 a exclusão mútua sore um recurso pode ser Fiolada!
Prof.PedroBastade CarvalhoFilho
Sistemas Operacionais
Monitores ●
●
●
Em @T$J2 os cientistas ,er &rinc1 Uansen e C1arles Uoare definiram o conceito de monitor! -m monitor uma estrutura de sincroni#ação 0ue re0uisita e liera a seção crítica 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 o5eto 0ue encapsula o recurso compartil1ado2 com procedimentos 8mtodos9 para acessáLlo!
Prof.PedroBastade CarvalhoFilho
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
Declaração de FariáFeis gloais
,rocedimentos ,roc! @ ,roc! J ! ! ! ,roc! n )niciali#ação de FariáFeis
Prof.PedroBastade CarvalhoFilho
Sistemas Operacionais
Monitores (jaa) Em [aFa2 a cláusula snc'ronize! fa# com 0ue um semáforo se5a associado aos mtodos indicados2 para cada o5eto 8ou para cada classe2 se forem mtodos de classe9! (este exemplo2 apenas um dep6sito ou retirada de cada Fe# poderá ser feito sore cada o5eto da classe Conta!
Prof.PedroBastade CarvalhoFilho
Sistemas Operacionais
Monitores ●
/s operações de otenção e lieração do semáforo são inseridas automaticamente pelo compilador do programa em todos os pontos de entrada e saída do monitor 8no início e final de cada procedimento92 lierando o programador dessa tarefa e assim eFitando erros!
Prof.PedroBastade CarvalhoFilho
Sistemas Operacionais
Prob%e&as c%*ssicos !e coor!enação ●
●
●
' prolema dos produtoresOconsumidores ' prolema dos leitoresOescritores ' 5antar dos fil6sofos
Prof.PedroBastade CarvalhoFilho
Sistemas Operacionais
Prob%e&a !e @ea!%ocN ●
Deadlock
a situação em 0ue um processo aguarda por um recurso 0ue nunca estará disponíFel ou um eFento 0ue não ocorrerá! Essa situação conse0u3ncia2 na maioria das Fe#es2 do compartil1amento de recursos2 como dispositiFos2 ar0uios e registros2 entre processos concorrentes em 0ue a exclusão mútua exigida!