Multitasken

Als gebruiker zullen we dat we meerdere toepassingen gelijktijdig kunnen uitvoeren. Multiprogrammering zorgt voor een efficiënter CPU gebruik. Dit door een toepassing op te delen in processen. Het besturingssysteem zorgt ervoor dat het verschillende processen tegelijk in geheugen worden gehouden.
Het besturingssysteem kiest en begint één van deze processen uit te voeren. Uiteindelijk kan het zijn dat het proces moet wachten tot een bepaalde taak, zoals een I/O-bewerking, is voltooid. In een niet-multigeprogrammeerde systeem, zou de CPU inactief blijven. In een meervoudig geprogrammeerd systeem schakelt het besturingssysteem eenvoudig over naar een ander proces en voert het uit. Wanneer dat proces moet wachten, schakelt de CPU over naar een ander proces, enz.. Uiteindelijk eindigt het eerste proces met wachten en krijgt de CPU terug. Zolang er ten minste één proces moet worden uitgevoerd, is de CPU nooit inactief.
Multitasking is een logische uitbreiding van multiprogrammeren. Bij multitasken systemen, voert de CPU meerdere processen uit door ertussen te schakelen, maar de wisselingen komen vaak voor, waardoor de gebruiker een snelle reactietijd heeft. Bedenk dat wanneer een proces wordt uitgevoerd, het meestal slechts een korte tijd wordt uitgevoerd, tijd voordat het klaar is of I/O moet uitvoeren.
De uitvoer gaat naar een display voor de gebruiker en de invoer komt van een gebruiker toetsenbord, muis of touchscreen. Aangezien interactieve I/O doorgaans op “mensensnelheden” draait, kan het lang duren om te voltooien. Invoer kan bijvoorbeeld begrensd zijn door de typsnelheid van de gebruiker; zeven tekens per seconde is snel voor mensen, maar ongelooflijk traag voor computers.
In plaats van de CPU inactief te laten terwijl deze interactieve invoer plaatsvindt, zal het besturingssysteem de CPU snel naar een ander proces schakelen. Om meerdere processen tegelijkertijd in het geheugen te hebben, is een vorm van geheugenbeheer vereist.
Ten slotte vereist het gelijktijdig uitvoeren van meerdere processen dat hun vermogen om elkaar te beïnvloeden in alle fasen van het proces wordt beperkt.
Bij een multitaskingsysteem moet het besturingssysteem zorgen voor een redelijke responstijd. Een veelgebruikte methode hiervoor is virtueel geheugen, een techniek waarmee een proces kan worden uitgevoerd dat zich niet volledig in het geheugen bevindt. Het belangrijkste voordeel van virtueel geheugen is dat het gebruikers in staat stelt programma’s uit te voeren die groter zijn dan het daadwerkelijke fysieke geheugen.
Linux behoort tot de familie van timesharing-besturingssystemen. Het deelt de verwerkingstijd tussen verschillende programma’s en schakelt op een transparante manier voor de gebruiker van het ene naar het andere programma. Dit houdt in:
- gelijktijdige uitvoering van meerdere programma’s
- distributie van CPU-tijd door de planner
- vermindering van problemen als gevolg van een mislukte aanvraag
- verminderde prestaties wanneer er te veel programma’s actief zijn