Online planning:
Online planning is een techniek die wordt gebruikt in besturingssystemen waarbij een proces pas wordt gepland nadat het is gearriveerd en beschikbaar is geworden voor uitvoering. Dit houdt in dat de planner alleen die processen in aanmerking neemt voor planning die momenteel beschikbaar zijn in het hoofdgeheugen.
Sommige processen kunnen de gereedstaande wachtrij binnenkomen en sommige processen kunnen dynamisch uit de gereedstaande wachtrij vertrekken. Vanwege dit dynamische en onvoorspelbare karakter van online planning is het een uitdaging om de middelen die nodig zijn voor de uitvoering van een proces nauwkeurig in te schatten.
Enkele van de populaire algoritmen voor online planning zijn:
- Wie het eerst komt, het eerst maalt (FCFS)
- Kortste baan eerst (SJF)
- Ronde Robin (RR)
- Hoogste responsratio volgende (HRRN)
Offline planning:
In tegenstelling tot online planning houdt offline planning rekening met alle processen voordat ze daadwerkelijk worden uitgevoerd. Deze techniek kan worden toegepast wanneer toekomstige kennis van het gehele proces vooraf bekend is.
Op basis van de gegeven reeks processen creëert een offline planningsalgoritme een planning die bepaalt wanneer elk proces wordt uitgevoerd en voor hoe lang. Omdat de aankomst- en uitvoeringsdetails van de processen vooraf bekend zijn, kan offline planning de optimale planning bepalen.
Offline plannen is echter niet haalbaar in scenario's waarin processen dynamisch arriveren en hun gedrag tijdens de uitvoering niet vooraf kan worden voorspeld.
Veelgebruikte algoritmen voor offline planning zijn onder meer:
- Niet-preventieve Kortste Baan Eerst (SJF)
- Niet-preventieve prioriteitsplanning (prioriteit)
- Ronde Robin (RR)
Vergelijking:
| Kenmerk | Online plannen | Offline plannen |
|---|---|---|
| Kennis van procesaankomst | Vereist alleen actuele informatie over de processen | Vereist vooraf volledige kennis van alle processen |
| Aanpassingsvermogen | Kan op efficiënte wijze omgaan met dynamische aankomsten van processen | Kan zich niet aanpassen aan dynamische aankomsten van processen |
| Optimaliteit | Kan geen optimale schema's leveren | Kan optimale schema's bieden, afhankelijk van het algoritme |
| Complexiteit | Minder complex om te implementeren | Complexer te implementeren vanwege de behoefte aan gedetailleerde kennis van alle processen | |