Você está na página 1de 4

EXERCCIOS 1. Explique o que espera ocupada e por que os mecanismos que empregam essa tcnica so considerados inecientes.

. R=Espera ocupada um modelo de programao paralela caracterizado por testes repetidos de um condio que impedem o progresso de um processo e que s pode ser alterada por outro processo. Possui a grande desvantagem de levar a desperdcios de tempo em um monoprocessador, j que este passa parte do tempo testando condies (cujo resultado falso), ao invs de realizar trabalho til. Porm, pode ser uma soluo aceitvel para multiprocessadores. 2.Em que circunstncias o uso de espera ocupada inevitvel? 3.Explique o que so condies de disputa, mostrando um exemplo real. R= Condies de Disputa: Em alguns SO, processo compartilham a mesma rea de processamento na memria principal ou o mesmo arquivos. Ex.: Spool de impresso.Existem dois processos. Um gera um nome de arquivo para ser impresso em um Diretrio de Spool, um outro processo, Daemons de impresso, verifica constantemente este diretrio para checar arquivos a serem impressos. Encontrando arquivos ele os remove e imprime. Tambm no meio deste processo existem duas variveis que determina as prximas unidade o diretrio de Sspool vazias e quais as prximas unidades a serem impressas. Ex.: Supondo que em algum momento a varivel entra, esta =7, e um processo A solicita a impresso de um arquivo.a, neste instante o escalonador de processo inte3rrompe o processo A e inicial um processo B que solicita a impresso de um arquivo.b, este ele a varivel entra = 7 e incrementa de 1, entra fica igual a 8, neste instante o escalonador volta a a da execuo ao processo A. Para este processo o valor de entra iguak a 7, e ele coloca seu arquivo.a no diretrio de Spool 7. No mesmo lugar onde se havia alterado ante pelo processo B. Colocando em seu lugar o arquivo.a e no o arquivo.b. como conseqncia de tudo isso, o arquivo do processo B desaparece e no imprime. (Condio de disputa). 4.Mostre como pode ocorrer violao da condio de excluso mtua em um semforo se as operaes down e up no forem implementadas de forma atmica. R= podem ocorrer problemas de consistncia dos dados ou do estado .O cdigo apresentado a seguir implementa de forma simplificada. A operao de violao da excluso mtua ! busy: 1. Figura 4: Condio de que a execuo das operaes Down(s) e Up(s) deve ser atmica. 5.Em que situaes um semforo deve ser inicializado em 0, 1 ou n > 1? R=Alocao de Recursos (semforos contadores) Para permitir que mais de um processo acesse a regio crtica ao mesmo tempo (e.g., no caso de recursos

compartilhados) basta inicializar o semforo com o valor especificado. Neste caso: s.count>=0: s.count representa o nmero de processos que podem executar o P(S) sem bloquear. s.count<0: a magnitude de s.count representa o nmero de processos suspensos em s.queue. 6.Por que no existem operaes read(s) e write(s) para ler ou ajustar o valor corrente de um semforo? 7.Explique cada uma das quatro condies necessrias para ao corrnciade Impasses. Condio de excluso mtua: cada recurso est atribudo a um nico processo em um dado intervalo de tempo. Condio de segura e espera: um processo pode solicitar novos recursos quando ainda est segurando outros recursos.. Condio de nenhuma preempo: um recurso concedido a um processo somente pode ser liberado pelo processo. Condio de espera circular: existe uma cadeia circular de dependncia entre os processos. 8.Na preveno de impasses, como pode ser feita a quebra da condio de posse e espera? R= A condio de espera circular pode ser evitada se um processo somente puder usar um recurso em um dado intervalo de tempo: Para evitar a condio de nenhuma preempo: O problema que alguns recursos devem ser no-preemptivos, O sistema poder tirar um recurso do processo, se necessrio. tempo para reposicionar a fita na prxima posio do arquivo a ser lido. mesmo tempo, alm de a impresso ser incorreta, perderemos um bom unidade de fita. 9.Na preveno de impasses, como pode ser feita a quebra da condio de excluso mtua? Excluso mtua : se no houver excluso mtua no acesso a recursos, no podero ocorrer impasses. Mas, como garantir a integridade de recursos compartilhados sem usar mecanismos de excluso mtua? Uma soluo interessante usada na gerncia de impressoras: um processo servidor de impresso (printer spooler) gerencia a impressora e atende as solicitaes dos demais processos. Com isso, os processos que desejam usar a impressora no precisam obter acesso exclusivo a esse recurso. A tcnica de spooling previne impasses envolvendo as impressoras, mas no facilmente aplicvel a outros tipos de recurso, como arquivos em disco e reas de memria compartilhada. 10.Na preveno de impasses, como pode ser feita a quebra da condio de espera circular?

Posse e espera : caso as tarefas usem apenas um recurso de cada vez, solicitandoo e liberando-o logo aps o uso, impasses no podero ocorrer. No exemplo da transferncia de fundos da gura 9, seria possvel separar a operao de transferncia em duas operaes isoladas: dbito em c1 e crdito em c2 (ou viceversa), sem a necessidade de acesso exclusivo simultneo s duas contas. Com isso, a condio de posse e espera seria quebrada e o impasse evitado. Outra possibilidade seria somente permitir a execuo de tarefas que detenham todos os recursos necessrios antes de iniciar. Todavia, essa abordagem poderia levar as tarefas a reter os recursos por muito mais tempo que o necessrio para suas operaes, degradando o desempenho do sistema. Uma terceira possibilidade seria associar um prazo (time-out) s solicitaes de recursos: ao solicitar um recurso, a tarefa dene um tempo mximo de espera por ele; caso o prazo expire, a tarefa pode tentar novamente ou desistir, liberando os demais recursos que detm. 11.Na preveno de impasses, como pode ser feita a quebra da condio de nopreempo? No-preempo : normalmente uma tarefa obtm e libera os recursos de que necessita, de acordo com sua lgica interna. Se for possvel arrancar um recurso da tarefa, sem que esta o libere explicitamente, e devolv-lo mais tarde, impasses envolvendo aquele recurso no podero ocorrer. Essa tcnica frequentemente usada em recursos cujo estado interno pode ser salvo e restaurado de forma transparente para a tarefa, como pginas de memria e o contexto do processador. No entanto, de difcil aplicao sobre recursos como arquivos ou reas de memria compartilhada, porque a preempo viola a excluso mtua e pode deixar inconsistncias no estado interno do recurso. 12. Uma vez detectado um impasse, quais as abordagens possveis para resolv-lo? Explique-as e comente sua viabilidade. . Nesta abordagem, nenhuma medida preventiva adotada para prevenir ou evitar impasses. As tarefas executam normalmente suas atividades, alocando e liberando recursos conforme suas necessidades. Quando ocorrer um impasse, o sistema o detecta, determina quais as tarefas e recursos envolvidos e toma medidas para desfaz-lo. 13.Como pode ser detectada a ocorrncia de impasses, considerando disponvel apenas um recurso de cada tipo? A deteco de impasses pode ser feita atravs da inspeo do grafo de alocao de recursos (Seo 10.2), que deve ser mantido pelo sistema e atualizado a cada alocao ou liberao de recurso. Um algoritmo de deteco de ciclos no grafo deve ser executado periodicamente, para vericar a presena das dependncias cclicas que podem indicar impasses. 14. Mostre como pode ocorrer violao da condio de excluso mtua se as operaes down(s) e up(s) no forem implementadas de forma atmica. Apostila de Sistemas Operacionais - Comunicao e Coord importante observar que a execuo das operaes Down(s) e Up(s) deve ser atmica, ou seja, no devem ocorrer acessos concorrentes s variveis internas do semforo, para evitar

condies. Alguns sistemas implementam tambm a chamada TryDown(s), cuja semntica no-bloqueante: caso o semforo solicitado esteja ocupado, a chamada retorna imediatamente, com um cdigo de erro. de disputa sobre as mesmas.