Multiprogrammering

Multiprogrammering is een rudimentaire vorm van parallelle verwerking waarbij op een uniprocessor meerdere programma's tegelijk worden uitgevoerd. Aangezien er slechts één processor is, kunnen verschillende programma's niet echt gelijktijdig worden uitgevoerd. In plaats daarvan voert het besturingssysteem een deel van een programma uit, dan een deel van een ander programma, enzovoort. Voor de gebruiker lijkt het alsof alle programma's op hetzelfde moment worden uitgevoerd.

Als de machine de mogelijkheid heeft om na een bepaalde tijd een interrupt te veroorzaken, dan zal het besturingssysteem elk programma gedurende een bepaalde tijd uitvoeren, de controle terugkrijgen, en dan een ander programma gedurende een bepaalde tijd uitvoeren, enzovoort. Zonder dit mechanisme heeft het besturingssysteem geen andere keus dan een programma uit te voeren met de verwachting, maar niet de zekerheid, dat het programma uiteindelijk de controle aan het besturingssysteem zal teruggeven.

Als de machine de mogelijkheid heeft om het geheugen te beschermen, dan is het minder waarschijnlijk dat een fout in een programma de uitvoering van andere programma's zal verstoren. In een systeem zonder geheugenbeveiliging kan één programma de inhoud van het geheugen van andere programma's of zelfs het geheugen van het besturingssysteem veranderen. De resulterende systeemcrashes zijn niet alleen ontwrichtend, maar kunnen ook zeer moeilijk te debuggen zijn, omdat niet altijd duidelijk is welk van de vele programma's de fout heeft veroorzaakt.

Zie ook: Multithreading, multitasking, multiprocessing