Hva er en programvarelås?
En programvarelås er et dataproblem som kan oppstå i multiprosessorsystemer. Denne sperren kan føre til at datamaskinens ytelse faller dramatisk og forhindrer bruk av ekstra prosessorevne. I moderne multiprosessordatamaskiner må spesiell operativsystemprogramvare brukes for å unngå funksjonsfeil i programvaren.
Forekomsten av programvarelås ble først beskrevet av IBM ™ -forsker Stuart Madnick i 1968. På dette tidlige stadiet i datamaskinhistorien spådde Madnick at personlige datamaskiner ville bli mindre og rimeligere i løpet av de neste tiårene, men vil fortsette å være begrenset til omtrent de samme dataoverføringshastighetene. Denne prediksjonen viste seg å være for det meste riktig, og datamaskinens nyttige kraft økes ofte ved ganske enkelt å legge til ekstra prosessorer.
Den viktigste årsaken til sperring av programvare er ikke en feil i seg selv, men snarere en funksjon. I en datamaskin med flere prosessorer koblet sammen, er det ingen fordel å ha flere prosessorer som hver håndterer den samme informasjonen. Faktisk kan forskjellige prosessorer som hver prøver å endre en enkelt datakilde ødelegge den opprinnelige posten. For å forhindre at flere enheter åpner den samme informasjonen, er det bare en prosessor som har tilgang mens de gjenværende prosesseringskomponentene er "låst ut" av filen.
Denne lockout-metoden er effektiv for datamaskiner med et lite antall prosessorer. Tilnærmingen blir imidlertid et problem i enheter med et bredt spekter av koblede behandlingsenheter. Software lockout begrenser alvorlig skalerbarhet og effektivitet ved å legge til flere prosessorer til datamaskiner, fordi det er grenser for hvor raskt data kan distribueres mellom lagringsplass og prosessorer.
Ingen maskiner, inkludert en datamaskin, er fullstendig effektive; denne iboende ineffektiviteten blir sammensatt i multiprocessor-datamaskiner. En datamaskin med seksten prosessorer, for eksempel, kan ha en av prosessorene til enhver tid inaktiv fordi data ikke kan distribueres så raskt som nødvendig. På et tidspunkt betyr sammensatt ineffektivitet at det ikke lenger er nyttig å utvide antall prosessorer på en datamaskin. Det er ubrukelig å legge tusen prosessorer til et system, siden datahastigheten er begrenset og et flertall av de overflødige prosessorene vil sitte fast i konstant programvarelås.
Sperring av programvare kan minimeres ved å bruke et operativsystem som er spesielt designet for flere prosessorer. Spesialisert programvare kan dele en datakilde i mange forskjellige deler, og distribuere disse delene til prosessorene. Denne tilnærmingen reduserer behovet for å låse ut prosessorer, siden hver enhet kan behandle en liten komponent av de originale dataene. I hovedsak sørger multiprocessorprogramvare for at hver behandlingsenhet alltid har en oppgave, og holder dataene flyter på en mer distribuert og jevnt spredt måte.