Escolar Documentos
Profissional Documentos
Cultura Documentos
Ernesto Massa
Processos Independentes.
No afetam nem so afetados por outros processos.
Processos Cooperados.
Compartilham:
Memria; Arquivos; Dispositivos de E/S; Etc.
Processos Cooperados
Compartilhamento de dados.
Processo produtor de dados. Processo consumidor de dados,
Buffer:
Limitado: Produtor e Consumidor. Ilimitado: Somente Consumidor.
Implementao.
Via memria compartilhada; Via IPC (Interprocess Comunication - SO)
Buffer Circular
prxima entrada
4 8 7
5 6
Contador 5
Condies de Corrida
Mecanismo de Sincronizao.
Garante o compartilhamento de recursos e a comunicao entre os processos. Garante a integridade e a confiabilidade dos dados compartilhados.
Condies de Corrida:
Situaes onde dois ou mais processos esto acessando dados compartilhados. O resultado final pode variar de acordo com a ordem de execuo.
Condies de Corrida
Exemplo 1:
1 2
Processo A 3 7+1
Processo B 4 7-1
Condies de Corrida
Exemplo 2:
10
Processo A
2 8
5 4 3
7
prxima entrada 7
7
Processo B
8
3 7
Condies de Corrida
Regio Crtica:
Parte do cdigo onde feito acesso a recursos compartilhados, e que podem levar a condies de corrida.
Ex: Processo A.
Cdigo normal Incio da Seo Crtica (Protocolo de Entrada) Seo Crtica Trmino da Seo Crtica (Protocolo de Sada) Cdigo normal
Concorrncia em programas
Enquanto um processo estiver usando um recurso, os outros devem aguardar at que o recurso esteja liberado. Excluso Mtua.
Exclusividade no acesso a um determinado recurso.
A excluso mtua deve afetar os processos concorrentes quando um deles estiver em uma regio crtica.
Problemas de Sincronizao
Solues de Hardware
Instruo Test-and-Set.
Utilizao de uma varivel para testar a possibilidade de executar a regio crtica. O processo impedido de executar sua regio crtica executa um loop de espera.
Gasto de CPU.
Solues de Software
Varivel de Travamento;
Gera condies de corrida.
Estrita Alternncia.
Starvation.
Em geral, as solues por software resolvem a excluso mtua, mas geram a espera ocupada (Busy Wait):
Teste contnuo de uma varivel at que ocorra uma mudana no seu valor; O processo impedido de executar sua regio crtica executa um loop de espera.
Gasto de CPU.
Solues de Software
Semforos
Semforos
Semforos
Mutex
Mutex
Processo 2
Monitores
Mecanismo de sincronizao de alto nvel proposto por Hoare (1974) e Brinch Hansen (1975); Conjunto de procedimentos, variveis e estruturas de dados agrupados em um mdulo especial; Caracterstica mais importante a implementao automtica da excluso mtua:
Somente um processo pode estar ativo em um monitor em um determinado instante de tempo.
Monitores
A implementao da excluso mltipla de responsabilidade do compilador; Utilizao de variveis de condio com uma fila de processos associados a elas; Um processo em uma fila (bloqueado) s poder prosseguir quando outro processo executar um SIGNAL sobre a respectiva varivel de condio.
Monitores
A comunicao do processo com o monitor feita unicamente atravs de chamadas a seus procedimentos e dos parmetros passados para eles; Podem ser chamadas duas operaes:
Wait (variable) Signal (variable)
Monitores
Procedimento B
Teste de unicidade Corpo do procedimento Signal (B)
Etc... FIM
Troca de Mensagens
Mecanismo de comunicao e sincronizao entre processos. implementada pelo Sistema Operacional atravs das rotinas SEND e RECEIVE. SEND responsvel pelo envio de mensagem para o processo receptor:
SEND (Receptor, Mensagem).
Troca de Mensagens
Para garantir que uma mensagem no se perca, o receptor deve enviar uma mensagem de recebimento. Duas formas de endereamento:
Direto
Apenas dois processos trocam mensagens.
Indireto
Mailbox.
Endereamento Indireto
Comunicao Assncrona.
Necessidade de buffer de mensagens. Necessidade de mecanismos de sincronizao. Maior paralelismo na execuo dos processos.