Slides SO
UFOP / DECEA – João Monlevade
CEA437 – Sistemas Operacionais
Prof. Alex Damiany Assis
04/12/2013
Programação Concorrente
• Programa sequencial é executado por apenas um processo.
– Existe apenas um fluxo de controle durante a execução. Permite o rastreio, identificar a linha que esta sendo executada a cada momento.
Programação Concorrente
Programa concorrente é executado por diversos processo que cooperam entre si, isto é, trocam informações (trocar dados ou realizar sincronização).
– É necessária a interação entre processos para que o programa seja considerado concorrente. – Utiliza mecanismos rápidos para interação entre processos: variáveis compartilhadas e troca de mensagens.
Programação Concorrente
• Os processos concorrem (disputam) pelos recursos do hardware (processador, memória, periféricos, estrutura de dados, etc) e do sistema operacional.
• Os processos concorrem (cooperam) para o êxito do programa como um todo.
• Vários processos concorrem (existem simultaneamente) em um programa concorrente. Programação Concorrente
• A programação concorrente é mais complexa que a programação sequencial,
– apresenta todos os erros que aparecem em programas sequenciais, além dos que aparecem entre processos.
• Os erros são muito difíceis de reproduzir, pois dependem da velocidade relativa dos processos ou do momento em que o escalonador do
S.O.
realizou o chaveamento.
Programa sequencial acessando a impressora • O processo executa um laço que envia os dados para a porta serial, paralela ou usb da impressora, mas o buffer da impressora é pequeno – o processo fica preso até o fim da impressão. Disco e impressora nunca trabalham simultaneamente.
Programa concorrente acessando a impressora • O programa concorrente é mais eficiente, pois consegue manter o disco e impressora trabalhando simultaneamente. • O tempo total para realizar a impressão é menor.
Programa