Najkratšia práca ako prvá (SJF): preventívny, nepreventívny príklad

Obsah:

Anonim

Čo je prvé plánovanie najkratšej práce?

Najkratšia práca ako prvá (SJF) je algoritmus, v ktorom sa pre ďalšie vykonávanie zvolí proces s najmenším časom vykonania. Táto metóda plánovania môže byť preventívna aj nepreventívna. Výrazne znižuje priemernú dobu čakania na ďalšie procesy čakajúce na vykonanie. Plná forma SJF je Najkratšia práca ako prvá.

V zásade existujú dva typy metód SJF:

  • Nepreventívne SJF
  • Preventívne SJF

V tomto výučbe operačného systému sa dozviete:

  • Čo je prvé plánovanie najkratšej práce?
  • Charakteristika plánovania SJF
  • Nepreventívne SJF
  • Preventívne SJF
  • Výhody SJF
  • Nevýhody / nevýhody SJF

Charakteristika plánovania SJF

  • Je spojená s každou úlohou ako jednotka času na dokončenie.
  • Táto metóda algoritmu je užitočná pri dávkovom spracovaní, kde čakanie na dokončenie úloh nie je kritické.
  • Môže zlepšiť priepustnosť procesu tým, že zabezpečí, že sa najskôr vykonajú kratšie úlohy, a preto budú mať pravdepodobne krátky čas na vybavenie.
  • Zlepšuje produkciu úloh tým, že ponúka kratšie úlohy, ktoré by sa mali vykonať najskôr, ktoré majú väčšinou kratšiu dobu spracovania.

Nepreventívne SJF

V nepreventívnom plánovaní, akonáhle je cyklus CPU pridelený procesu, proces ho drží, kým nedosiahne stav čakania alebo sa neukončí.

Zvážte nasledujúcich päť procesov, z ktorých každý má svoj vlastný jedinečný čas roztrhnutia a čas príchodu.

Procesný front Čas prasknutia Čas príchodu
P1 6 2
P2 2 5
P3 8 1
P4 3 0
P5 4 4

Krok 0) V čase = 0 dorazí P4 a začne vykonávanie.

Krok 1) V čase = 1 dorazí proces P3. Na dokončenie však P4 stále potrebuje 2 exekučné jednotky. Bude pokračovať v exekúcii.

Krok 2) V čase = 2 prichádza proces P1 a je pridaný do čakacieho radu. P4 bude pokračovať v exekúcii.

Krok 3) V čase = 3 proces P4 dokončí svoje vykonávanie. Porovnáva sa čas roztrhnutia P3 a P1. Proces P1 sa vykoná, pretože jeho čas roztrhnutia je menší v porovnaní s P3.

Krok 4) V čase = 4 dorazí proces P5 a je pridaný do čakacieho radu. P1 bude pokračovať v exekúcii.

Krok 5) V čase = 5 dorazí proces P2 a je pridaný do čakacieho radu. P1 bude pokračovať v exekúcii.

Krok 6) V čase = 9 proces P1 ukončí svoje vykonávanie. Porovnáva sa čas roztrhnutia P3, P5 a P2. Proces P2 sa vykoná, pretože jeho čas roztrhnutia je najnižší.

Krok 7) V čase = 10 sa vykonáva P2 a P3 a P5 sú v čakacej rade.

Krok 8) V čase = 11 proces P2 ukončí svoje vykonávanie. Porovnáva sa čas roztrhnutia P3 a P5. Proces P5 sa vykoná, pretože jeho čas roztrhnutia je nižší.

Krok 9) V čase = 15 proces P5 ukončí svoje vykonávanie.

Krok 10) V čase = 23 proces P3 dokončí svoje vykonávanie.

Krok 11) Vypočítajme priemernú dobu čakania pre vyššie uvedený príklad.

Wait timeP4= 0-0=0P1= 3-2=1P2= 9-5=4P5= 11-4=7P3= 15-1=14
Average Waiting Time= 0+1+4+7+14/5 = 26/5 = 5.2

Preventívne SJF

V preventívnom plánovaní SJF sa úlohy zaraďujú do poradia hneď, ako prídu. Spustí sa proces s najkratšou dobou prasknutia. Ak dorazí proces s ešte kratšou dobou zhluku, aktuálny proces sa odstráni alebo sa mu zabráni v vykonaní a kratšej úlohe sa pridelí cyklus CPU.

Zvážte nasledujúcich päť procesov:

Procesný front Čas prasknutia Čas príchodu
P1 6 2
P2 2 5
P3 8 1
P4 3 0
P5 4 4

Krok 0) V čase = 0 dorazí P4 a začne vykonávanie.

Procesný front Čas prasknutia Čas príchodu
P1 6 2
P2 2 5
P3 8 1
P4 3 0
P5 4 4

Krok 1) V čase = 1 dorazí proces P3. Ale P4 má kratší čas prasknutia. Bude pokračovať v exekúcii.

Krok 2) V čase = 2 prichádza proces P1 s časom roztrhnutia = 6. Čas roztrhnutia je viac ako v prípade P4. Preto bude P4 pokračovať v realizácii.

Krok 3) V čase = 3 proces P4 dokončí svoje vykonávanie. Porovnáva sa čas roztrhnutia P3 a P1. Proces P1 sa vykoná, pretože jeho čas roztrhnutia je nižší.

Krok 4) V čase = 4 dorazí proces P5. Porovnáva sa čas roztrhnutia P3, P5 a P1. Proces P5 sa vykoná, pretože jeho čas roztrhnutia je najnižší. Proces P1 je zabránený.

Procesný front Čas prasknutia Čas príchodu
P1 Zostáva 5 zo 6 2
P2 2 5
P3 8 1
P4 3 0
P5 4 4

Krok 5) V čase = 5 dorazí proces P2. Porovnáva sa čas roztrhnutia P1, P2, P3 a P5. Proces P2 sa vykoná, pretože jeho čas roztrhnutia je najmenší. Proces P5 je zabránený.

Procesný front Čas prasknutia Čas príchodu
P1 Zostáva 5 zo 6 2
P2 2 5
P3 8 1
P4 3 0
P5 3 zo 4 zostávajú 4

Krok 6) V čase = 6 sa vykonáva P2.

Krok 7) V čase = 7, P2 dokončí svoje vykonávanie. Porovnáva sa čas roztrhnutia P1, P3 a P5. Proces P5 sa vykoná, pretože jeho čas roztrhnutia je menší.

Procesný front Čas prasknutia Čas príchodu
P1 Zostáva 5 zo 6 2
P2 2 5
P3 8 1
P4 3 0
P5 3 zo 4 zostávajú 4

Krok 8) V čase = 10 P5 ukončí svoje vykonávanie. Porovnáva sa čas roztrhnutia P1 a P3. Proces P1 sa vykoná, pretože jeho čas roztrhnutia je kratší.

Krok 9) V čase = 15 P1 dokončí svoje vykonávanie. P3 je jediný zostávajúci proces. Začne sa s popravou.

Krok 10) V čase = 23 P3 dokončí svoje vykonávanie.

Krok 11) Vypočítajme priemernú dobu čakania pre vyššie uvedený príklad.

Wait timeP4= 0-0=0P1= (3-2) + 6 =7P2= 5-5 = 0P5= 4-4+2 =2P3= 15-1 = 14
Average Waiting Time = 0+7+0+2+14/5 = 23/5 =4.6

Výhody SJF

Tu sú výhody / výhody použitia metódy SJF:

  • SJF sa často používa na dlhodobé plánovanie.
  • Znižuje priemernú dobu čakania pri použití algoritmu FIFO (First in First Out).
  • Metóda SJF poskytuje najnižšiu priemernú dobu čakania na konkrétny súbor procesov.
  • Je to vhodné pre úlohy bežiace v dávkach, kde sú časy behu známe vopred.
  • Pre dávkový systém dlhodobého plánovania je možné z opisu úlohy získať odhad doby prasknutia.
  • V prípade krátkodobého plánovania musíme predpovedať hodnotu nasledujúceho sériového času.
  • Pravdepodobne optimálne z hľadiska priemerného času na vybavenie.

Nevýhody / nevýhody SJF

Tu sú niektoré nevýhody / nevýhody algoritmu SJF:

  • Čas dokončenia práce musí byť známy skôr, ale je ťažké ho predpovedať.
  • Často sa používa v dávkovom systéme na dlhodobé plánovanie.
  • SJF nie je možné z krátkodobého hľadiska implementovať na plánovanie CPU. Je to preto, že neexistuje žiadna konkrétna metóda na predpovedanie dĺžky nadchádzajúceho výbuchu CPU.
  • Tento algoritmus môže spôsobiť veľmi dlhé časy spracovania alebo hladovanie.
  • Vyžaduje znalosť toho, ako dlho bude proces alebo úloha prebiehať.
  • Vedie k hladu, ktorý neznižuje priemerný čas obratu.
  • Je ťažké poznať dĺžku nadchádzajúcej požiadavky CPU.
  • Uplynutý čas by sa mal zaznamenávať, čo má za následok vyššiu réžiu procesora.

Zhrnutie

  • SJF je algoritmus, v ktorom je pre ďalšie vykonávanie zvolený proces s najmenším časom vykonania.
  • Plánovanie SJF je spojené s každou úlohou ako jednotka času na dokončenie.
  • Táto metóda algoritmu je užitočná pri dávkovom spracovaní, kde čakanie na dokončenie úloh nie je kritické.
  • V zásade existujú dva typy metód SJF 1) Preventívny SJF a 2) Preventívny SJF.
  • V nepreventívnom plánovaní, akonáhle je cyklus CPU pridelený procesu, proces ho drží, kým nedosiahne stav čakania alebo sa neukončí.
  • V preventívnom plánovaní SJF sa úlohy zaraďujú do poradia hneď, ako prídu.
  • Aj keď sa začína proces s krátkym časom zhluku, aktuálny proces sa odstráni alebo sa mu zabráni v vykonaní a úloha, ktorá je kratšia, sa vykoná ako prvá.
  • SJF sa často používa na dlhodobé plánovanie.
  • Znižuje priemernú dobu čakania pri použití algoritmu FIFO (First in First Out).
  • Pri plánovaní SJF musí byť čas dokončenia úlohy známy skôr, ale je ťažké ho predvídať.
  • SJF nie je možné z krátkodobého hľadiska implementovať na plánovanie CPU. Je to preto, že neexistuje žiadna konkrétna metóda na predpovedanie dĺžky nadchádzajúceho výbuchu CPU.