Skip to main content

O que é um bloqueio de software?

Um bloqueio de software é um problema do computador que pode ocorrer em sistemas multiprocessadores. Esse bloqueio pode causar uma queda drástica no desempenho de um computador e impedir o uso de recursos adicionais do processador. Nos computadores modernos com multiprocessadores, é necessário usar um software especial do sistema operacional para evitar o mau funcionamento do bloqueio do software.

A ocorrência de bloqueio de software foi descrita pela primeira vez pelo cientista da IBM ™ Stuart Madnick em 1968. Nesse estágio inicial da história dos computadores, Madnick previu que os computadores pessoais se tornariam menores e mais baratos nas próximas décadas, mas continuariam limitados a aproximadamente as mesmas velocidades de transferência de dados. Essa previsão mostrou-se na maior parte correta, e o poder útil dos computadores é aumentado com a adição de processadores extras.

A principal causa do bloqueio de software não é um erro em si, mas um recurso. Em um computador com vários processadores conectados, não há vantagem em ter vários processadores, cada um lidando com a mesma informação. De fato, diferentes processadores, cada um tentando modificar uma única fonte de dados, pode corromper o registro original. Para impedir que várias unidades abram as mesmas informações, somente um processador tem acesso permitido enquanto os componentes de processamento restantes estão "bloqueados" do arquivo.

Esse método de bloqueio é eficaz para computadores com um número baixo de processadores. A abordagem se torna um problema, no entanto, em dispositivos com uma ampla variedade de unidades de processamento vinculadas. O bloqueio do software limita severamente a escalabilidade e a eficácia da adição de vários processadores aos computadores, porque há limites para a rapidez com que os dados podem ser distribuídos entre o espaço de armazenamento e os processadores.

Nenhuma máquina, incluindo um computador, é completamente eficiente; essa ineficiência inerente se agrava nos computadores com multiprocessadores. Um computador com dezesseis processadores, por exemplo, pode ter um de seus processadores ocioso o tempo todo, porque os dados não podem ser distribuídos tão rapidamente quanto necessário. Em algum momento, a ineficiência composta significa que não é mais útil expandir o número de processadores em um computador. Adicionar mil processadores a um sistema é inútil, pois a velocidade dos dados é limitada e a maioria dos processadores redundantes fica presa no bloqueio constante do software.

O bloqueio do software pode ser minimizado usando um sistema operacional projetado especificamente para vários processadores. Um software especializado é capaz de dividir uma fonte de dados em várias partes diferentes e distribuir essas partes para os processadores. Essa abordagem reduz a necessidade de bloquear os processadores, pois cada unidade pode processar um pequeno componente dos dados originais. Essencialmente, o software multiprocessador garante que cada unidade de processamento sempre tenha uma tarefa e mantenha os dados fluindo de maneira mais distribuída e uniformemente dispersa.