5.1 - Basic Concepts (p.193)
- Het bezighouden van de CPU om de effectieviteit van het systeem te verhogen.
- Multiprogramming is nodig om dit te behalen.
Scheduling bepaalt welk process wanneer gebruik mag maken van de CPU.
CPU burst/Burst time = Rekentijd op de CPU.
I/O burst = I/O verwerkingstijd.
Short-Term scheduling regelt welke processen worden geselecteer om te worden uitgevoerd op de CPU.
Scheduling wordt uitgevoerd wanneer een van deze mogelijkheden zich voordoen:
- Een process gaat van de running state naar de waiting state (bv.: door een IO request)
- Een process gaat van de running state naar de ready state. (bv.: bij een interrupt)
- Een process gaat van de waiting state naar de ready state. (bv.: bij het voltooien van een IO request)
- Wanneer een process voltooit/eindigt.
Nonpreemptive/cooperative = Situatie 1 en 4, uitvoerende processen kunnen niet worden "gepauzeerd" en blijven in running state.
Preemptive = Situatie 2 en 3, uitvoerende processen kunnen worden "gepauzeerd". (kost meer geheugen omdat de gepauzeerde processen bewaard moeten blijven)
Dispatcher = Modulke in de scheduler dat geeft controle over de CPU aan het geselecteerde process. Dit bevat oa het volgende:
- Wisselen van context
- Wisselen tussen user/kernel mode
- Veranderen van locatie in het user program om het progamma te herstarten.