Un blocco software è un problema del computer che può verificarsi nei sistemi multiprocessore. Questo blocco può causare un drastico calo delle prestazioni di un computer e impedire l’utilizzo di ulteriori capacità del processore. Nei moderni computer multiprocessore, è necessario utilizzare uno speciale software del sistema operativo per evitare il malfunzionamento del blocco del software.
Il verificarsi del blocco del software è stato descritto per la prima volta dallo scienziato IBM™ Stuart Madnick nel 1968. In questa fase iniziale della storia dei computer, Madnick predisse che i personal computer sarebbero diventati più piccoli e meno costosi nei prossimi decenni, ma avrebbero continuato a essere limitati a circa le stesse velocità di trasferimento dati. Questa previsione si è rivelata per lo più corretta e la potenza utile dei computer viene spesso aumentata semplicemente aggiungendo processori extra.
La causa principale del blocco del software non è un errore di per sé, ma piuttosto una funzionalità. In un computer con più processori collegati tra loro, non vi è alcun vantaggio nell’avere più processori che gestiscono ciascuno la stessa informazione. Infatti, processori diversi che tentano di modificare una singola origine dati possono danneggiare il record originale. Per impedire a più unità di aprire le stesse informazioni, è consentito l’accesso a un solo processore mentre i restanti componenti di elaborazione sono “bloccati” dal file.
Questo metodo di blocco è efficace per i computer con un numero ridotto di processori. L’approccio diventa tuttavia un problema nei dispositivi con un’ampia gamma di unità di elaborazione collegate. Il blocco del software limita notevolmente la scalabilità e l’efficacia dell’aggiunta di più processori ai computer, poiché esistono limiti alla velocità di distribuzione dei dati tra lo spazio di archiviazione e i processori.
Nessuna macchina, compreso un computer, è completamente efficiente; questa inefficienza intrinseca si aggrava nei computer multiprocessore. Un computer con sedici processori, ad esempio, potrebbe avere uno dei suoi processori sempre inattivo perché i dati non possono essere distribuiti con la rapidità necessaria. Ad un certo punto, l’inefficienza composta significa che non è più utile espandere il numero di processori in un computer. L’aggiunta di un migliaio di processori a un sistema è inutile, poiché la velocità dei dati è limitata e la maggior parte dei processori ridondanti sarebbe bloccata in un blocco software costante.
Il blocco del software può essere ridotto al minimo utilizzando un sistema operativo progettato specificamente per più processori. Il software specializzato è in grado di suddividere un’origine dati in molti pezzi diversi e di distribuire queste parti ai processori. Questo approccio riduce la necessità di bloccare i processori, poiché ogni unità può elaborare un piccolo componente dei dati originali. In sostanza, il software multiprocessore fa in modo che ogni unità di elaborazione abbia sempre un compito e mantiene il flusso dei dati in modo più distribuito e uniformemente disperso.