O que é a concorrência nos sistemas operacionais

Quando pensamos em Sistemas operacionais multiprogramáveis logo lembramos do conceito de concorrência. Mas afinal, o que significa concorrência em sistemas operacionais?

O termo concorrência é dado ao sistema operacional que é capaz de usar o processador para executar tarefas ao mesmo tempo que outras operações, como é o caso das operações de Entrada e Saída. Desse modo, várias aplicações rodam ao mesmo tempo de forma concorrente.

Um sistema multriprogramável, por exemplo, armazena várias aplicaçõs na memória, esperando um “ok” do processador, assim que um programa pede uma operação de entrada e saída, o processador fica livre para atender outras aplicações.

Como funciona o sistema de concorrência

Agora que você sabe um pouco do que é o sistema de concorrência, vamos ver como ele funciona.

Interrupções e exceção: Movido sempre por algo externo ao sistema, uma interrupção é dos principais mecanismos de concorrência. Suas ações são geradas por operações de entrada e saída, entrada de dados pelo teclado, por exemplo. Já a exceção é gerada dentro do próprio programa, como a divisão por zero

Buffer: A operação do tipo buffer utiliza uma área da memória principal para realizar a transferência de dados entre a memoria e os dispositivos de entrada e saída. Com essa técnica, os dados de leitura são transferidos primeiramente para o Buffer, liberando os dispositivos de E/S para realizar uma nova operação.

Spool: A técnica de spooling utiliza uma área em disco como se fosse um grande buffer. Neste caso, dados podem ser lidos ou gravados em disco, enquanto programas são executados concorrentemente. Todos os sistemas operacionais utilizam esta técnica no gerenciamento de impressão.

Reentrância: Muito comum em sistemas atuais, a técnica de reentrância permite que vários usuários utilizem os mesmos programas ao mesmo tempo, como é o caso dos editores de texto, dentre outros. Assim cada usuário abre uma parte do código reentrante na memória e utiliza e grava seus dados exclusivos.

Se não fosse a reentrância, o mesmo código poderia ser aberto várias vezes na memória e haveria um grande desperdício de recursos.

Que tal continuar a leitura aprendendo tudo sobre a gerencia de processos em um sistema operacional?