Trabalho no curso de Sistemas de Informao da Universidade Estadual de Gois, Unidade Universitria de Itabera, para obteno de nota na disciplina de Sistemas Operacionais, sob orientao do Prof. Khyquer Ronaldy de Oliveira Camargo.
ITABERA 2014 Regies crticas em Sistemas Operacionais
Regio crtica
Regio crtica uma regio de memria compartilhada que acessa um recurso que est compartilhado e que no possa ser acessado concorrentemente por mais de uma linha de execuo. Uma regio crtica geralmente termina num tempo especfico, e uma linha de execuo ou processo s precisa esperar um tempo especfico para entr-la. Algum mecanismo de sincronizao necessrio para implementar a entrada e a sada de uma regio crtica para assegurar o uso exclusivo.
Exemplo de uma regio crtica.
Durante uma chamada de um sistema um processo pode ter acesso a uma tabela mantida pelo ncleo. O ncleo deve ento inibir a comutao da CPU para outro processo at que todas as operaes na tabela sejam alteradas, caso ocorra o contrrio esta tabela poder assumir um estado de inconsistncia de dados, onde apenas algumas alteraes foram processadas. Neste tipo de situao a tabela passa a ser definida como um recurso compartilhado, sendo a parte do cdigo que a manipula a regio critica. Toda execuo de uma regio critica deve ser controlada a fim de que os recursos compartilhados no atinjam inconsistncia.
Prevenindo problemas em regies criticas
Para evitar problemas com regies crticas, necessrio proibir que mais de um processo leia ou escreva dados compartilhados ao mesmo, devendo-se garantir a mltipla excluso.se for garantido que nenhum par de processos estejam executando ao mesmo tempo uma regio critica delimitando um mesmo recurso compartilhado, inconsistncias so evitadas. Embora usando esta tcnica evite inconsistncias, isso no garante eficincia na utilizao de recursos compartilhados. Para se assegurar uma boa soluo, necessrio que:
Dois processos no estejam simultaneamente dentro de suas regies crticas referentes ao mesmo recurso compartilhado (garantia de mtua excluso); A garantia de mtua excluso se d independente da velocidade relativa dos processos ou nmero de CPUs; Nenhum processo executando fora de regies crticas bloqueie outro processo; Nenhum processo espere um tempo arbitrariamente longo para executar uma regio crtica.
Algoritmos de controle de regies crticas
Existem vrios algoritmos de controle visando garantir as propriedades citadas a cima. Estes algoritmos so classificados de acordo com o modo que esperam pela autorizao de entrada em uma regio crtica: espera ocupada (competindo pela CPU durante a espera) ou bloqueada (no competindo pela CPU) Todo algoritmo de mtua excluso possui, invariavelmente, duas partes (implementadas como duas funes distintas). A primeira funo evocada quando o processo deseja iniciar a execuo de uma regio crtica. Quando esta funo retorna, o processo est apto a executar a regio crtica. No final da execuo, o processo evoca a segunda funo, anunciando que a regio crtica j foi executada. Esta segunda funo, via de regra, provoca o retorno da primeira funo em outro processo. Para permitir que regies crticas que acessam recursos compartilhados distintos possam ser executadas ao mesmo tempo, cada recurso compartilhado possui um identificador (normalmente um valor inteiro). Assim sendo, as duas funes que compem o algoritmo de garantia de mtua excluso possuem este identicador como parmetro
Mtua Excluso Com Espera Ocupada
Nesta seo analisaremos algumas propostas para garantir excluso mtua nas regies crticas, no permitindo que mais de um processo possa manipular um recurso compartilhado ao mesmo tempo. Em todas, o processo que est tentando acessar uma regio crtica em execuo por outro processo permanece em espera ocupada, isto , competindo pela CPU mas sem avanar no seu processamento. Por esta razo, os mtodos que empregam espera bloqueada so os mais utilizados na prtica.
Desabilitar Interrupes
A soluo mais simples o mtodo de desabilitar todas as interrupes quando se est entrando na regio crtica, e reabilit-las ao sair. Esta proposta no muito atrativa, pois d ao processo usurio poder de desabilitar todas as interrupes, inclusive aquelas que permitem o ncleo reassumir a CPU. Caso o processo no as reabilite por algum motivo, o sistema operacional jamais reassume o controle do hardware. Em outro aspecto, conveniente para o sistema operacional desabilitar interrupes durante algumas instrues, enquanto est atualizando variveis internas. Assim, desabilitar interrupes uma soluo til para o sistema operacional, no para processos de aplicao.
Variveis LOCK
Uma segunda tentativa leva-nos a uma soluo por software. Considere uma varivel simples e compartilhada3 LOCK, inicialmente igual a 0. Quando um processo deseja entrar em sua regio crtica ele primeiro testa o LOCK. Se for 0, o processo altera para 1 e executa a regio crtica. Se for 1 ele espera at que seja 0.
Alternncia Estrita
Esta proposta define uma varivel TURN, inicialmente 0. Ela indica quem deve esperar e quem pode entrar na seo crtica. Se TURN for 0, o processo 0 pode entrar na regio crtica. Ao sair, deve passar o valor de TURN para 1. Quando TURN 1 o processo 1 pode entrar na seo crtica. Ao sair passa o valor de TURN para 04. Este algoritmo garante a mtua excluso. Entretanto, os processos estritamente se alternam. Na posse do recurso compartilhado. Isto faz com que um processo necessite aguardar o acesso a um recurso compartilhado por todos os demais at que chegue novamente a sua vez.
Soluo de Peterson
Obtida pela combinao das ideias de variveis LOCK e TURN, criando-se tambm uma soluo por software para o problema. Esta soluo evita os problemas individuais das solues anteriores, mas pouco utilizada na prtica por utilizar espera ocupada.
REFERNCIAS
FAINA, Lus F. Introduo aos Sistemas Operacionais. {online}. Disponvel na internet via http://www.dca.fee.unicamp.br/~eleri/ea876/02/so-apst.pdf. Arquivo capturado em 15 de set. 2014.
REGIO CRTICA. In: WIKIPDIA, a enciclopdia livre. Flrida: Wikimedia Foundation, 2014. Disponvel em: http://pt.wikipedia.org/w/index.php?title=Regi%C3%A3o_cr%C3%ADtica&oldid=38076783. Acesso em: 19 set. 2014.
FUNDAMENTOS DE SISTEMAS OPERACIONAIS. Regies Crticas e Excluso Mtua. {online}. Disponvel na internet via http://cioseducando.blogspot.com.br/2011/06/regioes- criticas-e-exclusao-mutua.html. Arquivo capturado em 16 set. 2014.