Bloqueio (computação) - Blocking (computing)

Na computação , um processo é uma instância de um programa de computador que está sendo executado. Um processo sempre existe exatamente em um estado de processo . Um processo que está bloqueado é aquele que está à espera de algum evento , como um recurso de ficarem disponíveis ou a conclusão de uma operação de I / O .

Em um sistema de computador multitarefa , as tarefas individuais ou threads de execução devem compartilhar os recursos do sistema. Os recursos compartilhados incluem: CPU, rede e interfaces de rede, memória e disco.

Quando uma tarefa está usando um recurso, geralmente não é possível, ou desejável, que outra tarefa o acesse. As técnicas de exclusão mútua são usadas para evitar esse uso simultâneo. Quando a outra tarefa é bloqueada, ela não pode ser executada até que a primeira tarefa termine de usar o recurso compartilhado.

Linguagens de programação e algoritmos de agendamento são projetados para minimizar o bloqueio de efeito geral. Um processo que bloqueia pode impedir o progresso de tarefas de trabalho locais. Nesse caso, o "bloqueio" costuma ser visto como algo indesejado. No entanto, tais tarefas de trabalho podem ter sido atribuídas a processos independentes, onde interromper um tem pouco ou nenhum efeito sobre os outros, uma vez que o agendamento continuará. Um exemplo é "bloquear em um canal ", em que esperar passivamente pela outra parte (sem votação ou loop de rotação) faz parte da semântica dos canais. Projetado corretamente, qualquer um deles pode ser usado para implementar sistemas reativos.

Deadlock significa que os processos esperam patologicamente uns pelos outros em um círculo. Como tal, não está diretamente associado ao bloqueio.

Quando ocorre o evento pelo qual o processo está aguardando ("está bloqueado em"), o processo avança do estado bloqueado para um iminente, como executável .

Veja também

Referências