Wat is een softwarevergrendeling?
Een softwarevergrendeling is een computerprobleem dat kan optreden in multiprocessorsystemen. Door deze vergrendeling kunnen de prestaties van een computer drastisch dalen en kan het gebruik van extra processorcapaciteit worden voorkomen. In moderne computers met meerdere processors moet speciale besturingssysteemsoftware worden gebruikt om een storing in de software te voorkomen.
Het optreden van software-lockout werd voor het eerst beschreven door IBM ™ wetenschapper Stuart Madnick in 1968. In dit vroege stadium van de computergeschiedenis voorspelde Madnick dat personal computers de komende decennia kleiner en goedkoper zouden worden, maar beperkt zouden blijven tot grofweg dezelfde gegevensoverdrachtssnelheden. Deze voorspelling bleek meestal correct te zijn en de bruikbare kracht van computers wordt vaak vergroot door eenvoudigweg extra processors toe te voegen.
De primaire oorzaak van softwarevergrendeling is niet per se een fout, maar eerder een functie. In een computer met meerdere processors aan elkaar gekoppeld, heeft het geen voordeel dat meerdere processors elk hetzelfde stuk informatie verwerken. Verschillende processors die elk proberen een enkele gegevensbron te wijzigen, kunnen het oorspronkelijke record zelfs beschadigen. Om te voorkomen dat meerdere eenheden dezelfde informatie openen, heeft slechts één processor toegang terwijl de resterende verwerkingscomponenten worden "vergrendeld" van het bestand.
Deze vergrendelingsmethode is effectief voor computers met een laag aantal processors. De aanpak wordt echter een probleem bij apparaten met een breed scala van gekoppelde verwerkingseenheden. Softwarevergrendeling beperkt de schaalbaarheid en effectiviteit van het toevoegen van meerdere processors aan computers aanzienlijk, omdat er limieten zijn aan hoe snel gegevens kunnen worden verdeeld tussen opslagruimte en de processors.
Geen enkele machine, inclusief een computer, is volledig efficiënt; deze inherente inefficiëntie wordt verergerd in computers met meerdere processors. Een computer met zestien processors kan bijvoorbeeld een van zijn processors te allen tijde inactief hebben omdat gegevens niet zo snel kunnen worden verspreid als nodig is. Op een gegeven moment betekent samengestelde inefficiëntie dat het niet langer nuttig is om het aantal processors in een computer uit te breiden. Het toevoegen van duizend processors aan een systeem is nutteloos, omdat de gegevenssnelheid beperkt is en een meerderheid van de redundante processors vast zou zitten in een constante software-lockout.
Software-lockout kan worden geminimaliseerd door een besturingssysteem te gebruiken dat specifiek is ontworpen voor meerdere processors. Gespecialiseerde software is in staat een gegevensbron in veel verschillende delen op te splitsen en deze delen naar de verwerkers te distribueren. Deze aanpak vermindert de noodzaak om processors te blokkeren, omdat elke eenheid een klein onderdeel van de oorspronkelijke gegevens kan verwerken. In wezen zorgt multiprocessorsoftware ervoor dat elke verwerkingseenheid altijd een taak heeft en worden gegevens op een meer gedistribueerde en gelijkmatig verspreide manier doorgestuurd.