3.2 - Process Scheduling (p.107)

  • Multiprogramming > Maximaliseren van het CPU gebruik.
  • Time-Sharing doel = De CPU zo snel laten schakelijk tussen processen dat de gebruiker ermee kan werken alsof ieder programma altijd werkt.
  • Process Scheduler = Selecteren van een process uit een lijst van beschikbare processen om deze uit te voeren door de CPU.
    • Bij meerdere processen moeten ze wachten totdat de CPU weer vrij is.

Scheduling Queues

  • Hoe werkt scheduling (algemene overview):

    1. Een process wordt gestart.
    2. Het process wordt in de job queue geplaatst.
    3. Wanneer het process geladen is in main memory wordt het in de ready queue geplaatst.
    4. Het process wordt in de CPU geladen wanneer het aan de beurt is. (Ook wel dispatched door de scheduler genoemd)
    5. De volgende mogelijheden kunnen zich voordoen:
      • Het process is afgerond. En wordt uit de cpu verwijderd.
      • Het process is interrupted. Bijvoorbeeld een ander process gaat voor, of de cpu tijd van het process is overschreden.
        • Het process gaat terug naar stap 3.
      • Het process creeert een sub/child process, dit process wacht totdat het subprocess is afgerond.
        • Het subprocess begint bij stap 1, het huidige process gaat terug naar stap 3.
      • Het process wacht voor de voltooiing van een (I/O) event.
        • Het subprocess gaat door naar stap 6.
    6. Het process wordt in de device queue van het desbetreffende I/O apparaat geplaatst.
    7. Wanneer het process aan de beurt is worden de gegevens voorhet process van het desbetreffende I/O apparaat gehaald.
    8. Het process word weer in de ready queue geplaatst.
  • Een process beweegt zich tussen de verschillende queues.

  • De scheduler verplaatst de processen aan de hand van het type scheduler dat wordt gebruikt.
    • Long-term scheduler = Bepaalt welke programmas in het geheugen worden geplaatst voor uitvoering. (aka job scheduler)
      • Doel: Maken van een gebalanseerde mix van processen, zoals I/O of CPU gerelateerd.
      • Doel: Beheert de graad van multiprogramming. Aantal binnenkomende processen moet gelijk zijn aan het aantal uitgaande processen.
    • Medium-term scheduler = Beheert het aantal processen in het geheugen en verplaatst deze naar secondaire opslag om ruimte vrij te maken voor andere processen. (aka Swapping)
      • Swapping gebeurt wanneer processen moeten wachten op bijvoorbeeld een IO request.
      • Swapping gebeurt ook om een goede mix te creeren van IO/CPU gerelateerde processen.
    • Short-term scheduler = Het verbeteren van het systeem performance door te beslissen welke processen er worden uitgevoerd. (aka CPU scheduler/dispatcher)
      • Wijst een process toe aan een CPU.

Context Switch

  • Context Switch = Mechanisme om de status/context van een CPU op te slaan en terug te zetten, zodat het process zich weer kan vervolgen na bijvoorbeeld een interrupt.
  • Een context switch is overhead, want het systeem voert niets nuttig uit wanneer er wordt geswitched.
  • Werkwijze:
    1. Process A wordt uitgevoerd in de CPU.
    2. Een interrupt vindt plaats.
    3. De status/context van van process A wordt opgeslagen (state save)
    4. Status/context van Process B wordt ingeladen in de CPU. (state restore)
    5. Process B is afgerond en wordt uit de CPU gehaald.
    6. De status/context van Process A wordt weer ingeladen in de CPU. (state restore)
      • Mits het natuurlijk aan de beurt is volgens de scheduler(s), dit kan ook best process C-Z zijn.
    7. Process A wordt verder uitgevoerd.

results matching ""

    No results matching ""