segunda-feira, 27 de junho de 2011

Condições de Disputa

     Em alguns SO, processo compartilham  a mesma área de processamento na memória principal ou o mesmo arquivos.

Ex.: Spool de impressão

       Existem dois processos. Um gera um nome de arquivo para ser impresso em um Diretório de Spool, um outro processo, Daemons de impressão, verifica constantemente este diretório para checar arquivos a serem impressos. Encontrando arquivos ele os remove e imprime.

       Também no meio deste processo existem duas variáveis que determina as próximas unidade o diretório de Sspool vazias e quais as próximas unidades a serem impressas.

 Ex.:
 
        Supondo que em algum momento a variável entra, esta  =7, e um processo A solicita a impressão de um arquivo.a, neste instante o escalonador de processo inte3rrompe o processo A e inicial um processo B que solicita  a impressão de um arquivo.b, este ele a variável entra = 7 e incrementa de 1, entra fica igual a 8, neste instante o escalonador volta a a da execução ao processo A. Para este processo o valor de entra é iguak a 7, e ele coloca seu arquivo.a no diretório de Spool 7. No mesmo lugar onde se havia alterado ante pelo processo B. Colocando em seu lugar o arquivo.a e não o arquivo.b. como conseqüência de tudo isso, o arquivo do processo B desaparece e não imprime. Condição de disputa.


 

Nenhum comentário:

Postar um comentário