O Produtor e o Consumidor

Este artigo tem por finalidade apresentar um problema clássico em sistemas operacionais, a relação "o produtor e o consumidor", que visa por em prática a gerência de processos concorrentes em um sistema operacional. Problema: um processo escreve em um buffer limitado, enquanto outro lê e limpa o mesmo, preservando a integridade dos dados.

[ Hits: 95.438 ]

Por: Ricardo Bocchi em 27/01/2010 | Blog: http://ricardobocchi.blogspot.com/


Compilação e execução



Para compilar o programa, em um terminal use o seguinte comando:

gcc -lpthread NomePrograma.c -O NomePrograma

Para executar:

./NomePrograma

Programa sendo executado em minha máquina:
Linux: O Produtor e o Consumidor

Conclusão

Com este artigo pode-se perceber que programação concorrente não é um "bicho de sete cabeças", desde que se tenham certos cuidados necessários com a área crítica dos processos. O professor de sistemas operacionais, Guilherme Dal Pizzol, costuma dizer:

"O programa com programação concorrente vai funcionar um ano sem dar um erro sequer, mas quando estiveres na praia, tomando sol, aquela cerveja gelada, vão ligar por que houve algum problema de acesso na seção crítica."

Então nunca, em hipótese alguma, deve-se falar e nem pensar nestas duas frases:

"Resolvi. Esse processo nunca vai chegar aqui antes do outro."
"Isso nunca vai acontecer!"

Lembre-se, isso é informática.

Também percebe-se que, com a biblioteca Pthreads do Posix, temos muita facilidade e flexibilidade com o código, que não se tornou extenso, e tão pouco muito complexo, e já prevendo várias situações de possíveis erros. Portanto, o que era pra ser uma simples pesquisa sobre programação concorrente, acabou se tornando um excelente material de aprendizado, que tem como objetivo compartilhar com quem tenha interesse no assunto. Para isso, espera-se que, quem venha a ler esse artigo, consiga realmente entender os procedimentos aqui mencionados.

Caso haja dúvidas, sintam-se à vontade em perguntá-las. E se houver críticas construtivas serão sempre bem vindas.

Por hoje é só, pretendo em breve disponibilizar um material completo e didático sobre Árvores de Busca Binária Balanceada. Obrigado a todos e até a próxima!

Página anterior    

Páginas do artigo
   1. O problema, uma breve introdução
   2. A solução, uma breve introdução
   3. Lógica e estruturação da solução - o produtor
   4. Lógica e estruturação da solução - o consumidor
   5. Código comentado na íntegra
   6. Compilação e execução
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

A duplicação do buffer de saída na chamada de sistema fork() do Linux

Bug afeta todas as distros

Algum humor e C++ Design Patterns (parte 2)

Programação de Jogos com SDL

Tutorial OpenGL v3.0

  
Comentários
[1] Comentário enviado por pink em 29/01/2010 - 12:51h

Ótimo, meus parabéns.... sem comentários....
Aguardo pelo próximo artigo....

[2] Comentário enviado por saitam em 15/05/2010 - 16:54h

Ótimo artigo bem didático. Parabéns
Aguardo pelo próximo artigo [2]

[3] Comentário enviado por Claudinei_Jr em 03/04/2013 - 18:06h

Ótimo Artigo, super didático!
Parabéns!
Contribuiu muito com minhas pesquisas sobre o assunto!!!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts