Zaklepanje programske opreme je računalniška težava, ki se lahko pojavi v večprocesorskih sistemih. Ta zaklepanje lahko povzroči drastičen padec zmogljivosti računalnika in prepreči uporabo dodatnih zmogljivosti procesorja. V sodobnih večprocesorskih računalnikih je treba uporabiti posebno programsko opremo operacijskega sistema, da se prepreči napaka pri zaklepanju programske opreme.
Pojav zaklepanja programske opreme je prvi opisal IBM™ znanstvenik Stuart Madnick leta 1968. Na tej zgodnji stopnji računalniške zgodovine je Madnick napovedal, da bodo osebni računalniki v naslednjih nekaj desetletjih postali manjši in cenejši, vendar bodo še naprej omejeni na približno enake hitrosti prenosa podatkov. Ta napoved se je izkazala za večinoma pravilno, uporabna moč računalnikov pa se pogosto poveča s preprostim dodajanjem dodatnih procesorjev.
Glavni vzrok za zaklepanje programske opreme ni napaka sama po sebi, temveč funkcija. V računalniku z več procesorji, ki so med seboj povezani, ni prednosti, če ima več procesorjev, ki obdelujejo isti del informacij. Pravzaprav lahko različni procesorji, ki poskušajo spremeniti en sam vir podatkov, pokvarijo izvirni zapis. Da preprečite, da bi več enot odpiralo iste informacije, je dovoljen dostop samo enemu procesorju, medtem ko so preostale komponente obdelave “zaklenjene” iz datoteke.
Ta metoda zaklepanja je učinkovita za računalnike z majhnim številom procesorjev. Pristop pa postane problem pri napravah s širokim naborom povezanih procesnih enot. Zaklepanje programske opreme močno omejuje razširljivost in učinkovitost dodajanja več procesorjev v računalnike, ker obstajajo omejitve glede hitrosti porazdelitve podatkov med prostorom za shranjevanje in procesorji.
Noben stroj, vključno z računalnikom, ni popolnoma učinkovit; ta prirojena neučinkovitost se v večprocesorskih računalnikih še poslabša. Računalnik s šestnajstimi procesorji, na primer, ima lahko enega od svojih procesorjev ves čas nedejavnega, ker podatkov ni mogoče distribuirati tako hitro, kot je potrebno. Na neki točki sestavljena neučinkovitost pomeni, da ni več koristno širiti števila procesorjev v računalniku. Dodajanje tisoč procesorjev v sistem je neuporabno, saj je hitrost podatkov omejena in bi bila večina odvečnih procesorjev obtičala v nenehnem zaklepanju programske opreme.
Zaklepanje programske opreme je mogoče zmanjšati z uporabo operacijskega sistema, ki je posebej zasnovan za več procesorjev. Specializirana programska oprema lahko razdeli vir podatkov na številne različne dele in te dele razdeli procesorjem. Ta pristop zmanjša potrebo po zaklepanju procesorjev, saj lahko vsaka enota obdela majhno komponento izvirnih podatkov. V bistvu večprocesorska programska oprema zagotavlja, da ima vsaka procesna enota vedno nalogo, in ohranja pretok podatkov na bolj porazdeljen in enakomerno razpršen način.