Você está na página 1de 11

SISTEMAS OPERATIVOS

FELIMONE AMONE JUNIOR


Comunicao entre processos

5/29/2014 Felimone Amone Junior
2
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.
5/29/2014 Felimone Amone Junior
3
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.

5/29/2014 Felimone Amone Junior
4
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




































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































5/29/2014 Felimone Amone Junior
5
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.
5/29/2014 Felimone Amone Junior
6
Excluso mutua
5/29/2014 Felimone Amone Junior
7
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.
5/29/2014 Felimone Amone Junior
8
Chaveamento obrigatrio
5/29/2014 Felimone Amone Junior
9
TSL
A instruo TSL uma chamada de sistema que bloqueia o acesso a
memoria at o termino da execuo da instruo
5/29/2014 Felimone Amone Junior
10
OBRIGADO
5/29/2014 Felimone Amone Junior
11

Você também pode gostar