Sei sulla pagina 1di 11

SISTEMAS OPERATIVOS

FELIMONE AMONE JUNIOR

Comunicao entre processos

Felimone Amone Junior

4/17/2014

Introduo
Processos podem compartilhar recursos, principalmente posies de memoria, e arquivos e se um processo altera os algum dado ou arquivos pode causar inconsistncias. Deste modo surge uma

necessidade

dos

processos

comunicarem-se,

pois

estas

inconsistncias podem levar a travamentos, maus resultados e mais.

Felimone Amone Junior

4/17/2014

Comunicao entre processos


Por exemplo, tm-se dois processos A e B, e dois locais de memoria C e D. a funo do
processo A e de escrever o contedo de C em D. e a do processo B e de actualizar C. assumindo que em C esta o numero 22: 1. O processo A l o dado contido em C 2. Imediatamente antes de escrever o em D o processo A e enviado a lista de PRONTO. 3. O processo B incrementa C, passando a ser 23. 4. O processo A volta ao estado de execuo e escreve em D 22. Como se pode ver o local D j no possui o mesmo dado que C, estando agora num estado inconsistente. Situaes em que dois ou mais processos esto lendo ou escrevendo algum dado compartilhado, e o resultado final depende de quem executa e quando so chamados de situaes de corrida.

Felimone Amone Junior

4/17/2014

Regio Critica
A parte do programa que pode levar a uma condio de corrida chama-se
regio critica, ou por outra a parte do programa que faz uso de algum dado compartilhado chama-se regio critica. Uma soluo de condio de corrida deve atender 3 aspectos: Dois processos no podem estar simultaneamente em suas regies criticas. Nenhum processo fora de sua regio critica pode bloquear outro processo

Nenhum processo deve esperar eternamente para entrar na sua regio


critica

Felimone Amone Junior

4/17/2014

Excluso mutua com espera ociosa


Desabilitar interrupes
A soluo mais simples, que consiste em, cada processo em execuo desabilita as interrupes logo depois de entrar na sua regio critica e habilita

imediatamente depois de sair dela, deste modo garante-se que nenhum outro
processo alterara os dados compartilhados. Esta soluo no e vivel, visto que se um processo desabilita interrupes e no volta a habilita-las o sistema todo vai abaixo, e tambm em um ambiente multiprocessador desabilitar interrupes somente funcionaria no processador em que o processo esta sendo executado e os outros processos noutros processadores continuariam tendo acesso a memoria compartilhada.
Felimone Amone Junior 4/17/2014

Excluso mutua

Felimone Amone Junior

4/17/2014

Variveis de travamento (lock)


Quando um processo ir entrar em sua Regio Crtica, ele deve verificar o status de uma varivel, se o seu valor for 0, significa que pode entrar em sua regio crtica, caso contrrio no pode. Supondo que o processo A leia a varivel com valor 0, antes que o seu valor seja modificado ocorre uma interrupo chamando um outro processo B. Ento o processo B seta a varivel com valor 1 e entra na sua Regio Crtica. Porm, quando o processo A voltar a ser executado, para ele o valor da varivel 0 e tambm entrar em sua regio crtica.

Felimone Amone Junior

4/17/2014

Chaveamento obrigatrio

Felimone Amone Junior

4/17/2014

10

TSL
A instruo TSL uma chamada de sistema que bloqueia o acesso a memoria at o termino da execuo da instruo

Felimone Amone Junior

4/17/2014

11

OBRIGADO

Felimone Amone Junior

4/17/2014

Potrebbero piacerti anche