Sistemas operacionais

Disponível somente no TrabalhosFeitos
  • Páginas : 5 (1119 palavras )
  • Download(s) : 0
  • Publicado : 27 de novembro de 2012
Ler documento completo
Amostra do texto
3. Sincronização entre Processos

(garantir a consistência dos dados)



Processos Cooperantes podem compartilhar dados na memória, arquivos.



Acessos concorrentes aos dados podem resultar em inconsistências.



Mecanismos para garantir consistência dos dados.



Exemplo:

Produtor

registerA= 5

Produtor

registerA= registerA + 1

registerA= 6

ConsumidorregisterB= counter

registerB= 5

Consumidor

registerB= registerB - 1

registerB= 4

Produtor

counter= registerA

counter= 6

Consumidor


registerA= counter

counter= registerB

counter= 4

Condições de corrida:
a.

Situações onde dois ou mais processos estão acessando dados compartilhados e o
resultado final depende da ordem de execução.

b.


A depuração deprogramas com condições de corrida é bastante difícil.

O Problema da Seção Crítica (SC)
o

Um sistema está com n processos e cada processo possui um trecho de seu código em
que manipula recursos compartilhados.

o

Problema da Seção Crítica: garantir a execução correta dos processos, executando SC
de forma mutuamente exclusiva no tempo.

Notas de Aula – Sistemas Operacionais

Prof.Marcos Alves

Página 1

o

Formato dos processos:

o

Condições para Execução de Seções Críticas


Exclusão mútua: apenas um processo pode executar uma seção crítica num
dado instante.



Progresso de execução: um processo que não esteja executando uma seção
crítica não pode impedir que outros o façam, ou seja, se nenhum processo está
na seção crítica, então um processo quequeira executá -la não pode ser
impedido, caso ele tenha permissão para tal. Além disso, quem sai da SC, não
pode indicar o próximo a entrar.



Espera limitada: um processo não pode ser impedido de executar uma seção
crítica por tempo indeterminado.

o

Espera ocupada:


Teste contínuo de uma variável até que ocorra uma mudança no seu valor.



A Espera ocupada desperdiçaciclos de processador, que outro processo
poderia utilizar produtivamente.

o

Assumimos que:


velocidade dos processos é maior que zero.



instruções de máquina são atômicas.



solução para dois processos.

Notas de Aula – Sistemas Operacionais

Prof. Marcos Alves

Página 2

Solução para o problema da Seção Crítica para múltiplos processos, por software
o

BakeryAlgorithm (Algoritmo da Padaria)



O cliente com o número menor é servido primeiro.



O algoritmo não garante que dois processos recebam números diferentes.



Em caso de empate o processo com o nome menor é servido primeiro.




Ao entrar na loja cada cliente recebe um número.

Pode ocorrer espera ocupada.

Variáveis compartilhadas:


escolhendo[0..n-1]: booleanoalterando num para conseguir senha



num[0..n-1]: inteiro senha do processo Pi

Notas de Aula – Sistemas Operacionais

Prof. Marcos Alves

Página 3



Quando num[i] = 0, Pi não está executando sua SC e não quer utilizá-la.



Quando escolhendo[i] = TRUE, Pi está alterando num[i].



(a,b) > (c,d) se a < c ou (a = c



escolhendo é inicializado com FALSE e num comzero.

e b < d)

Solução para o problema da Seção Crítica para múltiplos processos, por hardware
o

Sincronização através da Desabilitação das Interrupções



Garante que o processo executando a seção crítica não seja interrompido .



Problemas:

Notas de Aula – Sistemas Operacionais

Prof. Marcos Alves

Página 4



Usuário não deve ter o poder de desabilitar asinterrupções.



Em computadores com mais de um processador a desabilitação das
interrupções em um deles não garante a exclusão mútua.



Útil na implementação de partes do kernel

o

Instruções atômicas (de hw)


Muitas máquinas fornecem instruções especiais que podem ser utilizadas
para facilitar a sincronização.



Exemplos





TSL (Test and Set Lock) - testa e...
tracking img