logo

Kortste taak eerst (SJF) planning

Tot nu toe planden we de processen op basis van hun aankomsttijd (in FCFS-planning). Het SJF-planningsalgoritme plant de processen echter op basis van hun burst-tijd.

Bij SJF-planning wordt het proces met de laagste burst-tijd, uit de lijst met beschikbare processen in de wachtrij, als volgende gepland.

Het is echter erg moeilijk om de burst-tijd te voorspellen die nodig is voor een proces, daarom is dit algoritme erg moeilijk te implementeren in het systeem.

Voordelen van SJF

  1. Maximale doorvoer
  2. Minimale gemiddelde wacht- en doorlooptijd

Nadelen van SJF

  1. Kan lijden onder het probleem van de hongerdood
  2. Het is niet implementeerbaar omdat de exacte Burst-tijd voor een proces niet van tevoren bekend kan zijn.

Er zijn verschillende technieken beschikbaar waarmee de CPU-bursttijd van het proces kan worden bepaald. We zullen ze later in detail bespreken.

Voorbeeld

In het volgende voorbeeld zijn er vijf taken met de namen P1, P2, P3, P4 en P5. Hun aankomsttijd en burst-tijd worden gegeven in de onderstaande tabel.

PID Aankomsttijd Burst-tijd Doorlooptijd Keer de tijd om Wachttijd
1 1 7 8 7 0
2 3 3 13 10 7
3 6 2 10 4 2
4 7 10 31 24 14
5 9 8 eenentwintig 12 4

Sindsdien arriveert er geen proces op tijdstip 0; er zal een leeg slot zijn in de Gantt-diagram van tijdstip 0 tot 1 (het tijdstip waarop het eerste proces arriveert).

Volgens het algoritme plant het besturingssysteem het proces dat de laagste burst-tijd heeft van de beschikbare processen in de wachtrij.

Tot nu toe hebben we slechts één proces in de wachtrij staan, dus de planner zal dit naar de processor plannen, ongeacht de burst-tijd.

diskette

Dit wordt uitgevoerd tot 8 tijdseenheden. Tot die tijd hebben we nog drie processen in de wachtrij staan, dus de planner zal het proces met de laagste burst-tijd kiezen.

Van de processen in de tabel zal P3 als volgende worden uitgevoerd, omdat dit de laagste burst-tijd heeft van alle beschikbare processen.

Dus zo zal de procedure verder gaan kortste baan eerst (SJF) planningsalgoritme.

os SJF-planningsalgoritme

Gemiddelde wachttijd = 27/5