2 - Compartilhamento de Recursos

No contexto da utilização de recursos compartilhados entre aplicações diferentes, é fundamental que exista alguma forma de comunicação que evite a disputa pelo uso dos recursos em processos que são executados de forma concorrente. Problemas no acesso a recursos compartilhados podem causar uma série de problemas, como a finalização involuntária dos aplicativos em execução ou até mesmo a geração de resultados incorretos após o processamento.

Uma parábola muito utilizada para exemplificar o problema no compartilhamento de recursos é a do produtor-consumidor. Imagine que dois processos compartilham um mesmo local para troca de informações, sendo que um processo, denominado produtor, gera os dados e grava na memória e o outro, chamado de consumidor, acessa o mesmo espaço de armazenamento para consumir os dados que foram gravados.

O que aconteceria se o produtor tentasse gravar uma nova informação num espaço de memória ainda ocupado? E qual seria o resultado se o consumidor tentasse ler o espaço compartilhado antes da gravação das informações?

Situações como esta, onde o resultado do processamento depende da sequência em que um determinado recurso compartilhado é acessado pelos processos, são denominadas condições de corrida.

Copyright © 2014 AIEC.