Het besturingssysteem is de belangrijkste software en het hart van de computer, die niet alleen het geheugen en de processen binnen een computer beheert, maar ook de gebruikers toestaat om applicatiesoftware uit te voeren. Het is een verzameling collectieve programma's die de hardware van het systeem abstraheren en de gebruikers een complete virtuele machine bieden. Afgezien van de basistaken zoals het volgen van bestanden of mappen, het besturen van randapparatuur, het verzenden van uitvoer naar het weergavescherm, dient het besturingssysteem ook hogere doelen zoals multiprogrammering en multitasking om ervoor te zorgen dat gelijktijdig lopende programma's elkaar niet hinderen. De moderne besturingssystemen vergemakkelijken niet alleen parallelle verwerking, maar ook timesharing, wat slechts een concept van multiprogrammering is. Multitasking is slechts een rudimentaire vorm van multiprogrammering die in een andere context wordt gebruikt.
Multiprogrammering is de mogelijkheid voor meer dan één gebruiker om de computer tegelijkertijd te gebruiken met behulp van een enkele CPU. Het idee is om de processor effectief te gebruiken om meerdere, direct te gebruiken processen te maken, waarbij elk proces van een andere gebruiker is. Als het huidige proces om een of andere reden wordt afgebroken, omdat het op een bepaalde gebeurtenis moet wachten, wijst het besturingssysteem de CPU toe aan een ander proces in de wachtrij. De hele operatie wordt vergemakkelijkt door besturingssystemen te multiprogrammen om het CPU-gebruik te maximaliseren, zodat de leeglooptijd van de CPU wordt verkort. Het idee is om de CPU zo lang mogelijk bezig te houden.
Multitasking betekent gelijktijdige uitvoering van meerdere processen door één gebruiker op dezelfde computer met behulp van meerdere CPU's. In een multitasking-besturingssysteem kunt u bijvoorbeeld met één programma werken aan een Word-document terwijl u tegelijk met een ander programma naar muziek luistert. Multitasken is effectief wanneer programma's op een computer een hoge mate van parallellisme vereisen. Het is gebaseerd op het concept van timesharing omdat meerdere processen of taken dienovereenkomstig kunnen worden omgeschakeld op een regelmatig interval, zodat de gebruikers het idee krijgen dat ze gelijktijdig worden uitgevoerd.
De term multiprogrammering is een rudimentaire vorm van parallelle verwerking, wat betekent dat meerdere processen tegelijk tegelijkertijd op een enkele processor worden uitgevoerd. De term wordt gebruikt in moderne besturingssystemen wanneer meerdere programma's of processen op één processor draaien en het is de taak van het besturingssysteem om alle processen effectief en efficiënt te beheren. Multitasking verwijst naar de mogelijkheid van het besturingssysteem om meerdere taken tegelijk uit te voeren met behulp van meerdere CPU's. Het maakt in principe gebruik van twee of meer CPU's binnen een enkel systeem voor toewijzing van taken die gemeenschappelijke bronnen delen, inclusief CPU en geheugen.
Multiprogrammering is gebaseerd op het concept van contextomschakeling dat een standaardprocedure is die het schakelen van de CPU van het ene proces van thread naar het andere vergemakkelijkt met gebruikmaking van een enkele CPU. Het slaat de status van een actief proces voor de CPU op in het Process Control Block (PCB), zodat het proces vanuit dezelfde staat wordt hervat. Multitasking is echter gebaseerd op het concept van timesharing, een techniek die wordt gebruikt om elke gebruiker een deel van het tijdgedeelde systeem te bieden waarmee gebruikers dezelfde bronnen tegelijkertijd kunnen delen. Het is een logische uitbreiding van multiprogrammering.
Beide termen hebben bijna dezelfde betekenis en zijn de algemene termen die worden gebruikt in moderne besturingssystemen, maar met verschillende doelstellingen. Het concept van multiprogrammering is uitsluitend gebaseerd op het vermogen van de computer om programma's of instructies voor langere tijd op te slaan om de leeglooptijd van de CPU te verkorten. De procesallocatie gebeurt via het planningsalgoritme. Het besturingssysteem voert een deel van het ene programma tegelijk uit, gevolgd door een deel van een ander programma, enzovoort. In een multitasking-besturingssysteem staat de CPU meerdere processen tegelijk toe via timesharing en voert ze dienovereenkomstig uit.
In multiprogrammering besturingssysteem, is het idee om volledige transparantie tussen de gebruikers te bieden, omdat meerdere gebruikers dezelfde CPU delen die snel van de ene naar de andere gebruiker overschakelt om het CPU-gebruik te verbeteren. Het zorgt voor een efficiënte en effectieve toewijzing van middelen zonder interactie van de gebruiker met het systeem. Het besturingssysteem voert een deel van een programma uit gevolgd door een ander programma, maar alle programma's worden gelijktijdig uitgevoerd. In het multitasking-besturingssysteem worden gebruikers vervangen door programma's of processen en elk proces neemt een eerlijk deel van de CPU-tijd in beslag. Het proces verloopt zo snel dat meerdere taken simultaan worden uitgevoerd.
In een notendop worden beide termen vaak in combinatie met elkaar gebruikt om moderne besturingssystemen weer te geven, maar met verschillende doelstellingen en functionaliteit. Terwijl een multiprogrammeringsbesturingssysteem meer dan één programma tegelijk laat draaien met behulp van een enkele CPU, kan een multitasking-besturingssysteem meerdere processen of taken tegelijkertijd uitvoeren met behulp van meerdere CPU's. Multiprogrammering is gebaseerd op contextomschakeling waarbij de CPU niet inactief kan blijven en het CPU-gebruik maximaal wordt, terwijl multitasking gebaseerd is op timesharing omdat meerdere taken volgens prioriteit op regelmatige intervallen kunnen worden geschakeld voor maximale CPU-prestaties.