Prioritetinio planavimo algoritmas: prevencinis, nepreitinguojantis PAVYZDYS

Kas yra prioritetinis planavimas?

Prioriteto planavimas yra procesų planavimo metodas, pagrįstas prioritetu. Šiame algoritme tvarkaraštis pasirenka užduotis, kurios turi dirbti pagal prioritetą.

Pirmiausia turėtų būti vykdomi procesai, kuriems teikiamas didesnis prioritetas, o darbo vietos, kurių prioritetai yra vienodi, vykdomi pirmyn ar per visą laiką. Prioritetas priklauso nuo atminties, laiko poreikio ir kt.

Šioje „Operacinės sistemos“ pamokoje sužinosite:

  • Kas yra prioritetinis planavimas?
  • Prioritetinio planavimo tipai
  • Prioritetinio planavimo ypatybės
  • Pirmumo planavimo pavyzdys
  • Prioriteto planavimo privalumai
  • Prioriteto planavimo trūkumai

Prioritetinio planavimo tipai

Prioritetinis planavimas suskirstytas į du pagrindinius tipus:

Išankstinis planavimas

Taikant išankstinį planavimą, užduotys dažniausiai skiriamos pagal jų prioritetus. Kartais svarbu vykdyti užduotį su didesniu prioritetu prieš kitą žemesnio prioriteto užduotį, net jei vis dar vykdoma žemesnio prioriteto užduotis. Žemesnio prioriteto užduotis laikoma tam tikrą laiką ir atnaujinama, kai aukštesnio prioriteto užduotis baigia vykdyti.

Neplaninis planavimas

Šio tipo planavimo metodu procesorius buvo priskirtas konkrečiam procesui. Procesas, palaikantis procesoriaus užimtumą, atleis procesorių perjungdamas kontekstą arba nutraukdamas. Tai yra vienintelis metodas, kurį galima naudoti įvairioms aparatinės įrangos platformoms. Taip yra todėl, kad jai nereikia specialios aparatūros (pavyzdžiui, laikmačio), pavyzdžiui, prevencinio planavimo.

Prioritetinio planavimo ypatybės

  • Procesoriaus algoritmas, planuojantis procesus pagal prioritetą.
  • Jis operacinėse sistemose buvo naudojamas paketiniams procesams atlikti.
  • Jei dvi darbo vietos, turinčios tą patį prioritetą, yra PARUOŠTOS, ji veikia PIRMO ATEITIMO, PIRMO APTARNAVIMO pagrindu.
  • Planuojant prioritetus, kiekvienam procesui priskiriamas skaičius, nurodantis jo prioriteto lygį.
  • Mažesnis skaičius, didesnis yra prioritetas.
  • Šio tipo planavimo algoritme, jei gaunamas naujesnis procesas, kurio prioritetas yra didesnis nei šiuo metu vykstantis procesas, šiuo metu vykstantis procesas yra užkerta kelią.

Pirmumo planavimo pavyzdys

Apsvarstykite šiuos penkis procesus nuo P1 iki P5. Kiekvienas procesas turi savo unikalų prioritetą, serijos laiką ir atvykimo laiką.

Procesas Prioritetas Sprogo laikas Atvykimo laikas
P1 1 4 0
P2 2 3 0
P3 1 7 6
P4 3 4 11
P5 2 2 12

0 žingsnis) Tuo metu, kai = 0, gaunami procesai P1 ir P2. P1 turi didesnį prioritetą nei P2. Vykdymas prasideda procesu P1, kurio serijos laikas yra 4.

1 žingsnis) Tuo metu, kai = 1, naujas procesas nepasiekiamas. Vykdymas tęsiamas su P1.

2 žingsnis) 2 metu naujas procesas neatvyksta, todėl galite tęsti naudodami P1. P2 yra laukimo eilėje.

3 žingsnis) 3 metu naujas procesas neatvyksta, kad galėtumėte tęsti P1. P2 procesas vis dar laukimo eilėje.

4 žingsnis) 4 metu P1 baigė vykdyti. P2 pradeda vykdyti.

5 žingsnis) Tuo metu, kai = 5, naujas procesas neatvyksta, todėl mes tęsiame P2.

6 žingsnis) Tuo metu, kai = 6, atkeliauja P3. P3 yra aukštesnio prioriteto (1), palyginti su P2, turinčiu prioritetą (2). P2 yra uždraustas ir P3 pradeda vykdyti.

Procesas Prioritetas Sprogo laikas Atvykimo laikas
P1 1 4 0
P2 2 Laukiama 1 iš 3 0
P3 1 7 6
P4 3 4 11
P5 2 2 12

7 žingsnis) 7 metu neatvyksta naujas procesas, todėl mes tęsiame P3. P2 yra laukimo eilėje.

8 žingsnis) Kai laikas = 8, naujas procesas neatvyksta, todėl galime tęsti P3.

9 žingsnis) Tuo metu = 9, naujas procesas neatvyksta, kad galėtume tęsti P3.

10 žingsnis) 10 laiko intervalu naujas procesas neatliekamas, todėl mes tęsiame P3

11 žingsnis) Laiku = 11, P4 ateina su 4 prioritetu. P3 turi didesnį prioritetą, todėl tęsia jo vykdymą.

Procesas Prioritetas Sprogo laikas Atvykimo laikas
P1 1 4 0
P2 2 Laukiama 1 iš 3 0
P3 1 Laukiama 2 iš 7 6
P4 3 4 11
P5 2 2 12

12 žingsnis) Tuo metu = 12, ateina P5. P3 turi didesnį prioritetą, todėl tęsia vykdymą.

13 žingsnis) Tuo metu = 13, P3 užbaigia vykdymą. Mes turime P2, P4, P5 parengtoje eilėje. P2 ir P5 turi vienodą prioritetą. P2 atvykimo laikas yra iki P5. Taigi P2 pradeda vykdyti.

Procesas Prioritetas Sprogo laikas Atvykimo laikas
P1 1 4 0
P2 2 Laukiama 1 iš 3 0
P3 1 7 6
P4 3 4 11
P5 2 2 12

14 žingsnis) Tuo metu = 14, P2 procesas baigtas. P4 ir P5 yra laukimo būsenoje. P5 turi aukščiausią prioritetą ir pradeda vykdyti.

15 žingsnis) Tuo metu, kai 15, P5 tęsia vykdymą.

16 žingsnis) Tuo metu = 16, P5 bus baigtas vykdyti. P4 yra vienintelis likęs procesas. Tai pradeda vykdyti.

17 žingsnis) Tuo metu = 20, P5 baigė vykdyti ir neliko jokio proceso.

18 žingsnis) Apskaičiuokime aukščiau pateikto pavyzdžio vidutinę laukimo laiką.

Laukimo laikas = pradžios laikas - atvykimo laikas + kito serijos laukimo laikas

P1 = o - o = oP2 =4 - o + 7 =11P3= 6-6=0P4= 16-11=5Average Waiting time = (0+11+0+5+2)/5 = 18/5= 3.6

Prioriteto planavimo privalumai

Čia pateikiami prioritetinio planavimo metodo naudojimo pranašumai:

  • Lengva naudoti planavimo metodą
  • Procesai vykdomi remiantis prioritetu, todėl didelio prioriteto nereikia laukti ilgai, o tai taupo laiką
  • Šis metodas suteikia gerą mechanizmą, kai kiekvieno proceso santykinė svarba gali būti tiksliai apibrėžta.
  • Tinka toms programoms, kurių laikas ir ištekliai yra kintantys.

Prioriteto planavimo trūkumai

Čia yra prioritetinio planavimo trūkumai / trūkumai

  • Jei sistema galiausiai sugenda, visi žemo prioriteto procesai pasimeta.
  • Jei aukšto prioriteto procesai užima daug procesoriaus laiko, tada žemesnio prioriteto procesai gali badauti ir bus atidėti neribotam laikui.
  • Šis planavimo algoritmas gali palikti neribotą laiką kai kurių žemo prioriteto procesų.
  • Procesas bus užblokuotas, kai jis bus paruoštas paleisti, tačiau turės laukti procesoriaus, nes šiuo metu veikia kitas procesas.
  • Jei paruoštoje eilėje vis ateina naujas aukštesnio prioriteto procesas, laukiančiame procese gali tekti laukti ilgą laiką.

Santrauka:

  • Pirmumo planavimas yra procesų planavimo metodas, pagrįstas prioritetu. Šiame algoritme tvarkaraštis pasirenka užduotis, kurios turi dirbti pagal prioritetą.
  • Taikant prioritetinį išankstinį planavimą, užduotys dažniausiai priskiriamos pagal jų prioritetus.
  • Taikant „Priority Non-preemptive“ planavimo metodą, procesorius buvo priskirtas konkrečiam procesui.
  • Procesai vykdomi remiantis prioritetu, todėl didelio prioriteto nereikia laukti ilgai, o tai taupo laiką
  • Jei aukšto prioriteto procesai užima daug procesoriaus laiko, tada žemesnio prioriteto procesai gali badauti ir bus atidėti neribotam laikui.

Įdomios straipsniai...