You are on page 1of 5

Webartigos.

comPublicaodeartigosemonografias
Ttulo:Deadlock
Autor(a):EverLopes
Endereodapublicao:http://www.webartigos.com/artigos/deadlock/3416/
Publicadoem02dejaneirode2008,s00h00minemTecnologia
Deadlock

1.Introduo
Deadlockumproblemasignificativoquepodesurgiratmesmonumacomunidadequecooperaou
competeporprocessos.Eleumafalhaenoumerro,ocorrequandomaisdeumprocessorequerum
determinadorecursoaomesmotempo.
Odeadlockcriaumasituaoemqueumoumaisprocessosnuncacorreroparaconclusosem
recuperao.
Dijkstraintroduzdeadlockcomo:"Efeitocolateraldeestratgiasdesincronizao,porquedois
processosaoatualizarduasvariveiscompartilhadas,usamumalockflag,umpararequisitarvalores
deumavarivel,ooutroparaatualizarvalordavarivel".
Situaessemelhantesocorremperiodicamentenumconjuntodeprocessosqueestoacompartilhar
recursos.Memria,osdrivesdeumaimpressora,umdrivededisquetessotodosexemplosde
recursos.Umprocessopodebloquearquandopedidoqualquerumdessesrecursoseosmesmos
estoocupados,assimqualquerumpodecontribuirparaentrarnasituaoDeadlock.

2.Definio
SegundoTanenbaum,deadlockpodeserformalmentedefinidocomo:"Umconjuntodeprocessos
estaremsituaodedeadlocksetodoprocessopertencenteaoconjuntoestiveresperandoporum
eventoquesomenteumoutroprocessodessemesmoconjuntopoderfazeracontecer".(pag.120)
Paraummelhorentendimentopodemosafirmarquedeadlockumtermoempregadoparatraduzirum
problemaqueocorrequandoumgrupoouconjuntodeprocessoscompetementresi.Oaparecimento
domesmodependedascaractersticasdedoisoumaisprogramasdiferentesedosrespectivos
processosaexecutarpelosdiferentesprogramasaomesmotempo.Essesprogramaspodemser
executadosdeformarepetitivausandodiferentesprocessossemqueocorraasituaodedeadlock,
porm,bastaumnicoprocessopadrocomplicadoparaseentraremdeadlock.
Dijkstraexplicaasituaodedeadlockatravsdaseguinteilustrao:
Figura1.Trsprocessosemdeadlock.Fonte:Dijkstra
Ouseja,oProcesso1reservaparasioRecurso1,porsuavezoProcesso2eoProcesso3reservam
respectivamenteparasioRecurso2eoRecurso3.Porexemploseumdosoutrosprocessosnecessitar
deumdosrecursosanteriormentereservadosporoutrosprocessos,comoacontecenodiagramada
figuraanteriorentramosnumasituaodeDeadlock.
Nenhumdosprocessospodecontinuar,porqueparaissoacontecer,osmesmosnecessitariamqueos
recursosreservadosfossemdisponibilizados.Anoserqueumdosprocessosdetecteasituaoe
abandonandoopedidodorecursoanteriormentereservadoporoutroprocesso,eliberteaomesmo

tempoorecursoporsireservado.Comisso,hapossibilidadedepelomenosumprocessocorrer.
Podemoscitarcomoexemplodesituaodedeadlock,norelacionadoacomputao,masque
facilitaoentendimentodoquesejaumasituaodedeadlock,doiscarrosseguindoemdireooposta
numapistaquepermiteapenasapassagemdeumveculo.Nessecasoosdoisficamimpedidosde
continuarseupercurso.
Umdeadlock,emcomputao,ocorrenormalmentecomrecursoscomodispositivos,arquivos,
memria,entreoutros.
Existemalgumascondiesparaquepossaterumaocorrnciadedeadlock.Soelas:
CondiodeexclusomutuaEmumdeterminadoinstante,cadarecursoestaemumadeduas
situaes:ouassociadoaumprocessooudisponvel.
CondiodeposseeesperaProcessosque,emumdeterminadoinstante,retmrecursos
concedidosanteriormentepodemrequisitarnovosrecursos.
CondiodenopreempoRecursosconcedidospreviamenteaumprocessonopodemser
forosamentetomadosdesseprocesso
elesdevemserexplicitamentelibertadospeloprocessoqueos
retm.
CondiodeesperacircularDeveexistirumencadeamentocirculardedoisoumaisprocessos
cadaumdelesencontraseesperadeumrecursoqueestsendoutilizadapelomembroseguinte
dessacadeia.
Todasestascondiesdevemestarpresentesparaqueocorraumdeadlock.Sealgumadelasfalhar,
entonoocorrerumdeadlock.

3.EstratgiasparaTrataroDeadlock
Assituaesdedeadlockpodemsertratadasounoemumsistema,osdesenvolvedoresdevem
avaliarocusto/benefcioqueessasimplementaespodemtrazer.Normalmente,asestratgiasusadas
paradetectaretratarassituaesdedeadlocks,geramgrandesobrecarga,podendoatcausarumdano
maiorqueaprpriaocorrnciadodeadlock,sendo,svezes,melhorignorarasituao.
Existemtrsestratgiasparatratamentodedeadlocks:DetecoeRecuperao,EvitarDeadlocke
Preveno.

3.1.DetecoeRecuperao
Osistemapermitequeocorraodeadlockedepoisexecutaoprocedimentoderecuperao,quese
resumenadetecodaocorrnciaenarecuperaoposteriordosistema.
Paradetecododeadlock,deveseimplementarnosistemaumaestruturadedadosquearmazeneas
informaessobreosprocessoseosrecursosalocadosaeleseessasreflitamasituaodecada
processo/recursonosistema.Porm,importanteressaltarqueosimplesprocedimentodeatualizao
dessasestruturasgerasobrecarganosistema,poistodavezqueoprocessoaloca,liberaourequisita
umrecurso,elasprecisamseratualizadas.
Algumasdastcnicasdedetecoutilizadasso:
Detecodedeadlockscomumrecursodecadatipo
Setemapenasumrecursodecadatipo

(somenteumaimpressora,ouumCD,...).Existeumalgoritmoparadetectarseexistemciclosnografo
dosprocessoserecursos
Detecodedeadlockscommltiplosrecursosdecadatipo
Oalgoritmobaseiaseemum
ambientequepossuivriosrecursosdomesmotipoeosprocessossolicitamapenaspelotipode
recursos,noespecificandoqualrecursodesejamutilizar.
Umavezqueoalgoritmodedetecodedeadlocksbemsucedido,oquesefaremseguidaa
recuperaodosistemadasituaodedeadlockecoloclonovamenteemcondiode
funcionamentonormal.
Astcnicasutilizadaspararecuperao,so:
RecuperaopormeiodepreempoRetirarorecursoaumprocessoedloaoutrosemqueo
processoproprietriodorecursoseaperceba.
RecuperaopormeiodereversodeestadoOsistemaoperativo,aolongodaexecuodos
processosvaiguardandoimagensdosestadosdoprocesso,paraquefiquecomoqueumpostode
fiscalizaodoprocesso.Noguardaapenasosestadosdosprocessos,comoguardatambmos
recursosassociadosaoprocessonomomentoemquecriadoopostodefiscalizao.Osistemano
sobrepeumpostodefiscalizaonovoaumjguardadoanteriormente.Elecriasempreuma
imagemnova.Depoisqueoalgoritmodedetecodedeadlocksdetectaumdeadlockosprocessos
includosnodeadlockvoltamaestadosanteriores.
RecuperaopormeiodeeliminaodeprocessosAmaneiramaisgrosseira,mastambma
maissimplesmatarumoumaisprocessosenvolvidosnodeadlock.Comumpoucodesorteos
outrosprocessospoderosercapazesdeprosseguir.

3.2.EvitarDeadlock
Odeadlockpodeserevitado,massquandocertasinformaesestiveremdisponveis.
OSistemaOperacionalqueadotaestaestratgia,procuraevitaraocorrnciadedeadlockspormeiode
alocaocuidadosaderecursos.Osistemadevesercapazdesaberedecidirseliberarumrecurso
seguroouno.
Abordaremosaseguiralgunsprocessosqueobjetivamevitardeadlocks.
Trajetriadosrecursos
afiguraabaixodemonstraofuncionamentodesseprocesso:
Figura2.Trajetriadosrecursosdedoisprocessos.Fonte:SistemasOperacionaisModernos
pg.129.
Algoimportanteaservistonesteexemploopontot,ondeBestarrequisitandoumrecurso.O
sistemadevedecidirselhedodireitodeusoouno.Seodireitodeusoforconcedido,osistema
entraremumaregioinseguraeacabarporentraremdeadlock.Paraevitarodeadlock,Bdeverser
suspensoatArequisitareliberaroplotter.
Estadossegurosenoseguros
consideradoumestadoseguroseelenoestaemsituaode
deadlockeseexistealgumaordemdeescalonamentonaqualtodooprocessopossaserexecutadoat
suaconcluso,mesmosederepente,todoselesrequisitarem,deumasvez,omximopossvelde
recursos.Umestadonoseguronoumasituaodedeadlock.umestadoemqueapartirdo
mesmo,osistemanopodedaragarantiadequeoprocessovaiacabar.

AlgoritmodebanqueiroUsadoparadeterminarseumprocessopodeexecutardemaneirasegura
ouno.Todososprocessosdeclaramomximoderecursosquevousarduranteaexecuo.A
execuopermitidaseasomadosrecursosrequisitadosmenorqueosrecursosdisponveisno
sistema.Oalgoritmoverificasealibertaodeumarequisiopodelevaraumestadonoseguro.
Emcasopositivo,arequisionegada.Sealibertaodeumarequisiolevaraumestadoseguro,
entoelaatendida.
Evitardeadlocks,emsuaessncia,impossvel,poiscomojdito,requerinformaessobrepedidos
futuros.

3.3.PrevenodeDeadlock
Comojvistonoponto3.3,evitardeadlockpraticamenteimpossvel.Porisso,aprevenode
deadlocktentagarantirquepelomenosumadascondiesparaocorrnciadedeadlock,noacontea.
Sabendoquesoquatroascondiesparaquepossaocorrerumasituaodedeadlock
simultaneamente,aprevenoprocuraeliminarpelomenosumadelasutilizandoasseguintes
tcnicas:
1.Condiodeexclusomtua
Oprocessosolicitaorecursoparausodeformamutuamente
exclusiva.Essacondioeliminadaseoprocessosolicitatodososrecursosquenecessitaemuma
nicavez.
2.Condiodeposseeespera
Osprocessosdevempedirosrecursosantesdeiniciaremasua
execuo.
3.Condiodenopreempo
Eliminaseessacondioseosrecursosforemordenadoseos
processosdevemrequisitarosrecursosemumaseqnciaquerespeiteestaordem.
4.Condiodeesperacircular
Podesereliminadaseforconstrudoumgrafoeseforverificado,
paracadarequisio,seoatendimentonolevarosistemaaumestadonoseguro.Asrequisies
quelevaremosistemaaumestadonosegurooudedeadlocknodeveroseratendidas.
Estasestratgiassofceisdeimplementaremcertossistemas,pormaavaliaodecusto/benefcio
deveserlevadaemconsiderao.

4.Concluso
Deadlockumproblemapotencialemqualquersistemaoperacional.Umestadodedeadlockocorre
quandodoisoumaisprocessosestoesperandoindefinidamenteporumeventoquespodeocorrer
porumdosprocessosemespera.Existemalgunsmtodosparatratardeadlocks,osquaisforam
citadosnestetrabalho:detecoerecuperao,evitardeadlockeprevenodedeadlock.
Umadasestratgiasmaissimplesdetratardeadlock,seriaignorlo,porm,necessrioumaanlise
dasnecessidadesdaempresa,paraoimplementoounodasestratgiasdetratamentododeadlock,
assimcomo,avaliarocusto/benefcioqueessasimplantaespodemgerar.

Referencias
Tanenbaum,AndrewS..(2003)"SistemassOperacionaisModernos",EditoraPrenticeHall
2ed.
So
Paulo.

Silberschatz,AbrahamGalin,PeterGagne,Grag.(2000)."SistemasOperacionais:conceitose
aplicaes",EditoraElsvier
8reimpresso
RiodeJaneiro.
Wikipedia.(2007)."Deadlock",http://pt.wikipedia.org/wiki/Deadlock,Novembro.
ProgramaoConcorrente.(2007)."Deadlock",
http://www.dc.ufscar.br/~mdchiodi/ProgramacaoConcorrente/ApostilaAula10.pdf,Novembro.
N.Ribeiro(2007)."SistemasOperativos",http://ltodi.est.ips.pt/nribeiro/Lecturing/SO_02
03/A06.pdf.,Novembro.
Silberschatz,AbrahamKarth,HenryF.Sudarshan,S.(1999)."SistemadeBancodeDados",Editora
MakronBooks
3ed.
SoPaulo.
Valador,Nelson.(2007)."SistemasOperativos",http://alumni.ipt.pt/~nvalador/trab1/cap10.html,
Novembro.
E.W.Dijkstra.(1968)."GoToStatementConsideredHarmful,CommunicationsoftheACM".Vol.
11

PorEverLopes
Endereodapublicao:http://www.webartigos.com/artigos/deadlock/3416/
Webartigos.comPublicaodeartigosemonografaisPubliqueseuartigoem
www.webartigos.com/autores/cadastro/