GI018 stemas Operaconas 17/10/2016 Impasses (Deadlocks) Na ula nteror... Unversdade Federal de Uberlânda Faculdade de Computação Prof. Dr. rer. nat. Danel D. bdala 2 Nesta ula Impasse Motvação acerca dos Impasses; ecursos e eus pos; Cclo de locação/utlzação de ecursos; Possbldades de Espera; ; Condções para Ocorrênca de Impasses; Estratégas para Ldar com Impasses; Detecção de Impasses; ecuperação de tuações de Impasses; Evtando Empasses; Estados eguros e Inseguros; Mutos recursos em um stema Computaconal são adequados ao uso de apenas um processo por vez; odo O deve ser capaz de garantr acesso exclusvo de um processo a certos recursos; O problema resde no fato de que processos geralmente requerem dversos recursos para executarem sua tarefa! Proc. requer recursos 1 e 2 para executar; Proc. também requer os mesmos recursos 1 e 2; Proc. tem acesso a 1 e Processo tem acesso a 2; Proc. nunca ganha acesso a 2 e smlarmente Proc. nunca ganha acesso a 1 ; Formalmente: Um conunto de processos estará em stuação de mpasse se todo processo pertencente ao conunto estver esperando por um evento que somente outro processo deste mesmo conunto poderá fazer acontecer. 3 4 Impasse (Deadlock) ecurso acesso CD Drve em uso em uso canner acesso Dspostvo, arquvo, entrada em uma estrutura de dados, etc, que pode ser adqurdo exclusvamente por um processo; ecursos podem ser classfcados como: Preemptvos; Não preemptvos; Como detectar Impasses? Como resolver Impasses? 5 6 1
17/10/2016 ecurso Preemptvo ecurso Não Preemptvo É aquele que pode ser retrado do processo que o detêm sem nenhum preuízo; Ex: Proc. desea mprmr um arquvo; rquvo deve ser carregado na memóra para préprocessamento; Proc. requsta acesso a mpressora (conceddo); Proc. utlza um bom pedaço da memóra; Proc. requsta mas memóra (negado); Págnas do Proc. são mapeadas para o Dsco; Proc. requsta mas memóra (conceddo); e removdo do processo que o detêm há uma forte possbldade de falha na computação do processo; Ex: CD drve gravando um dsco Em geral mpasses envolvem recursos não preemptíves; 7 8 Cclo de locação/utlzação de ecursos É possível pensar abstratamente quanto ao cclo de utlzação de recursos da segunte forma: equstar o ecurso não dsponível dsponível Lberar o ecurso Espera Utlzar o ecurso dsponível Possbldades na Espera Duas Possbldades: a) Processo permanece em um pequeno loop onde o recurso é requstado contnuamente; ecncamente o processo nunca bloquea, na prátca, se o mpasse não é resolvdo, ocorrendo um loop nfnto. a) O O coloca o processo em um estado de bloqueo especal. O processo é acordado pelo O quando o recurso se torna dsponível; 9 10 Útl modelar formalmente mpasses; Prncpalmente para detecção de mpasses; Utlzação de Grafos Drgdos; Dos tpos de estados; Dos tpos de arestas; ecurso alocado para o Proc. Proc. requsta o recurso Processos não requstam a alocação de recursos todos aos mesmo tempo; Ordem de alocação a ordem em que os recursos são requstados pelo processo; Ex: lloc=({,},{,},{,},{,},{c,},{c,}) C G { V, } V p P r ( p, p ) / p P p p p P 11 12 2
17/10/2016 Processos não requstam a alocação de recursos todos aos mesmo tempo; Ordem de alocação a ordem em que os recursos são requstados pelo processo; Ex: lloc=({,},{,},{,},{,},{c,},{c,}) Ex: lloc=({,},{,},{c,},{,},{,},{c,}) C C Há um empasse! Moral da hstóra: a ordem de alocação mporta! Não há mpasse pos não há um cclo! 13 14 Condções para Ocorrênca de Impasses 1Exclusão Mútua: Em um determnado nstante, cada recurso está em uma de duas stuações: a) ssocado a um únco processo; b) Dsponível; 2Condção de Posse e Espera: processos que em um determnado nstante retêm recursos conceddos anterormente podem requstar novos recursos; 3Condção de Não Preempção: recursos conceddos prevamente a um processo não podem ser forçozamente tomados deste processo eles devem ser explctamente lberados pelo processo que os retém; 4Condção de Espera Crcular: Deve exstr um encadeamento crcular de dos ou mas processos. Cada um deles encontra-se à espera de um recurso que está sendo usado pelo membro segunte da cadea; 15 Estratégas Para Ldar Com Impasses 1 mplesmente gnorar o problema; 2 Detecção e ecuperação: Dexar os mpasses ocorrerem, detectá-los e corrgí-los; 3 nulação Dnâmca: por meo de uma alocação cudadosa de recursos; 4 Prevenção: Negando estruturalmente uma das quatro condções necessáras para gerar um mpasse; 16 Detecção de Impasses Dexar o mpasse ocorrer, detectá-lo e então tentar resolvê-lo: Em sua forma mas smples há apenas um recurso de cada tpo no sstema; Modelado va grafo de recursos; Qualquer processo que faça parte de um cclo está em stuação de mpasse; C D U E F V Impasse! F X 17 18 3
fta plotter canner CD Drve fta plotter canner CD Drve 17/10/2016 Detecção de Impasses lgortmo para detecção de cclos em grafos drgdos; Estrutura de dados adequada para representar o grafo drgdo; Estrutura alocada estátca ou dnamcamente? Custo em percorrer e atualzar a ED? Moral: Detectar mpasses é caro! empre vale a pela? O que muda se houverem múltplas nstâncas de um mesmo recurso? 19 Detecção com Múltplas Instâncas do Mesmo ecurso representação em grafos dreconados não é mas sufcente; Possível olução. ea: P 1,...P n n Processos; m número de classes de recursos; E, (1 m) E é o vetor de recursos exstentes. Fornece o número total de recursos exstentes. Em um nstante qualquer, alguns recursos se encontram alocados a processos e, por sso, não estão dsponíves; E é o vetor de recursos dsponíves; C matrz de alocação atual; n matrz de requsção; C E 1, 20 lgortmo de Detecção de Impasses Vetor de recursos exstentes Vetor de recursos dsponíves E = ( 4 2 3 1 ) = ( 2 1 0 0 ) Matrz de alocação atual C = 0 0 1 0 2 0 0 1 0 1 2 0 n o de nstâncas do recurso 2 locadas por processo nxm Lnha 1 é a alocação tual para o processo 1 C = Matrz de requsções 2 0 0 1 1 0 1 0 2 1 0 0 nxm Lnha 2 nforma qual é a necessdade do processo 2 21 1Procure um processo desmarcado P, para o qual a - ésma lnha de sea menor ou gual à correspondente de ; 2e este processo for encontrado, adcone a -ésma lnha C a correspondente de, marque o processo e volte para o passo 1; 3 e não exstr esse processo o algortmo termna; Passo 1 Procura por um processo que possa ser executado até ser concluído; 22 ecuperação de tuações de Impasses Evtando Impasses Passos a serem segudos uma vez que um mpasse é detectado: 1 ecuperação por meo de preempção; 2 ecuperação por meo de retrocesso (checkponts); 3 ecuperação por meo de elmnação de processos; O deve ser capaz de decdr se lberar um recurso é seguro ou não; O só deve alocar um recurso quando a alocação for segura; É possível evtar mpasses? m, porém há restrções; penas é possível quando certas nformações estverem dsponíves antecpadamente; lgortmos para evtar mpasses baseados no conceto de estados seguros; 23 24 4
17/10/2016 Estados eguros e Inseguros Um estado é consderado seguro se ele não está em stuação de mpasse e se exste alguma ordem de escalonamento na qual todo o processo possa ser executado até sua conclusão, mesmo se, repentnamente, todos eles requstem, de uma só vez, o máxmo possível de recursos; 2 4 dsponível = 3 C 0-4 4 dsponível = 1 9 9 C 0 - dsponível = 5 0 - C 0 - C 7 7 dsponível = 0 dsponível = 7 dsponível = 1 dsponível = 10 25 26 lgortmo do anquero para um Únco ecurso 2 4 4 9 2 4 4 9 4 4 4 9 Dkstra, 1965 Extensão do algortmo de detecção de mpasses; dsponível = 3 dsponível = 2 dsponível = 0 dsponível = 4 locação leva a um estado não seguro Estado Inseguro tuação de Impasse! 27 28 blografa - ásca 3ª Edção Págnas 269 288 blografa - ásca 7ª edção Págnas 245 271 29 30 5
17/10/2016 blografa - dconal Capítulo 12 Págna 280 31 6