Prioritāro plānošanas algoritms: Preventīvs, nenoteikts PIEMĒRS

Kas ir prioritāro plānošana?

Prioritāšu plānošana ir procesu plānošanas metode, kuras pamatā ir prioritāte. Šajā algoritmā plānotājs izvēlas veicamos uzdevumus atbilstoši prioritātei.

Vispirms būtu jāveic procesi ar augstāku prioritāti, turpretim darbus ar vienādām prioritātēm veic, pamatojoties uz apriti vai FCFS. Prioritāte ir atkarīga no atmiņas prasībām, laika prasībām utt.

Šajā operētājsistēmas apmācībā jūs uzzināsit:

Prioritāšu plānošanas veidi

Prioritāšu plānošana ir sadalīta divos galvenajos veidos:

Preventīva plānošana

Preventīvajā plānošanā uzdevumi lielākoties tiek piešķirti atbilstoši to prioritātēm. Dažreiz ir svarīgi izpildīt uzdevumu ar augstāku prioritāti pirms cita zemākas prioritātes uzdevuma, pat ja zemākās prioritātes uzdevums joprojām darbojas. Zemākas prioritātes uzdevums tiek turēts kādu laiku un tiek atsākts, kad augstākās prioritātes uzdevums pabeidz tā izpildi.

Nepreventīva plānošana

Šāda veida plānošanas metodē CPU ir piešķirts konkrētam procesam. Process, kas notur centrālo procesoru, atbrīvos CPU, pārslēdzot kontekstu vai pārtraucot darbību. Tā ir vienīgā metode, ko var izmantot dažādām aparatūras platformām. Tas ir tāpēc, ka tam nav nepieciešama īpaša aparatūra (piemēram, taimeris), piemēram, iepriekšēja plānošana.

Prioritāšu plānošanas raksturojums

  • CPU algoritms, kas plāno procesus, pamatojoties uz prioritāti.
  • To izmanto operētājsistēmās sērijveida procesu veikšanai.
  • Ja divi darbi ar vienādu prioritāti ir GATAVI, tas darbojas PIRMAJĀ NĀKŠANĀ, PIRMĀ APKALPOJUMĀ.
  • Prioritāšu plānošanā katram procesam tiek piešķirts numurs, kas norāda tā prioritātes līmeni.
  • Samaziniet skaitu, jo augstāka ir prioritāte.
  • Šāda veida plānošanas algoritmā, ja tiek ieviests jaunāks process, kuram ir augstāka prioritāte nekā pašlaik notiekošajam procesam, tad pašlaik palaistajam procesam ir priekšroka.

Prioritāšu plānošanas piemērs

Apsveriet piecu procesu no P1 līdz P5. Katram procesam ir sava unikālā prioritāte, pārrāvuma laiks un ierašanās laiks.

ProcessPrioritāteSprādziena laiksIerašanās laiks
P1140
P2230
P3176
P434vienpadsmit
P52212

0 solis) Laikā = 0 tiek sasniegts process P1 un P2. P1 prioritāte ir augstāka nekā P2. Izpilde sākas ar procesu P1, kura pārrāvuma laiks ir 4.

1. darbība) Laikā = 1 nenotiek jauns process. Izpilde turpinās ar P1.

2. darbība) Otrajā laikā nenotiek jauns process, tāpēc varat turpināt ar P1. P2 atrodas gaidīšanas rindā.

3. darbība) Trešajā laikā nenotiek jauns process, lai jūs varētu turpināt ar P1. P2 process joprojām atrodas gaidīšanas rindā.

4. darbība) 4. brīdī P1 ir pabeidzis izpildi. P2 sāk izpildi.

5. darbība) Laikā = 5, jauns process nenāk, tāpēc mēs turpinām ar P2.

6. darbība) Laikā = 6, pienāk P3. P3 ir augstāka prioritāte (1), salīdzinot ar P2, kurai ir prioritāte (2). P2 ir preempted, un P3 sāk savu izpildi.

Process Prioritāte Sprādziena laiks Ierašanās laiks
P1140
P221 no 3 gaida0
P3176
P434vienpadsmit
P52212

7. solis) plkst laiks 7, nav jauns process, tāpēc mēs turpinām ar P3. P2 atrodas gaidīšanas rindā.

8. darbība) Laikā = 8, jauns process nenāk, tāpēc mēs varam turpināt ar P3.

9. darbība) Laikā = 9 jauns process nenāk, lai mēs varētu turpināt ar P3.

10. darbība) Laika intervālā 10 jauns process nenāk, tāpēc mēs turpinām ar P3

11. darbība) Laikā = 11, P4 ierodas ar 4. prioritāti. P3 prioritāte ir augstāka, tāpēc tā turpina izpildi.

Process Prioritāte Sprādziena laiks Ierašanās laiks
P1140
P221 no 3 gaida0
P312 no 7 gaida6
P434vienpadsmit
P52212

12. darbība) Laikā = 12, pienāk P5. P3 prioritāte ir augstāka, tāpēc tā turpina izpildi.

13. darbība) Laikā = 13, P3 pabeidz izpildi. Mums ir P2, P4, P5 gatavā rindā. P2 un P5 ir vienāda prioritāte. P2 ierašanās laiks ir pirms P5. Tātad P2 sāk izpildi.

Process Prioritāte Sprādziena laiks Ierašanās laiks
P1140
P221 no 3 gaida0
P3176
P434vienpadsmit
P52212

14. darbība) Laikā = 14 P2 process ir beidzis izpildi. P4 un P5 ir gaidīšanas stāvoklī. P5 ir visaugstākā prioritāte, un tā sāk izpildi.

15. darbība) Laikā = 15, P5 turpina izpildi.

16. darbība) Laikā = 16, P5 ir pabeigts ar tā izpildi. P4 ir palicis vienīgais process. Tas sāk izpildi.

17. darbība) Laikā = 20 P5 ir pabeidzis izpildi un neviens process nav palicis.

18. darbība) Aprēķināsim vidējo gaidīšanas laiku iepriekš minētajam piemēram.

Gaidīšanas laiks = sākuma laiks - ierašanās laiks + gaidīšanas laiks nākamajai sērijai

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

Prioritāšu plānošanas priekšrocības

Šeit ir priekšrocības/plusi, izmantojot prioritārās plānošanas metodi:

  • Viegli lietojama plānošanas metode
  • Procesi tiek veikti, pamatojoties uz prioritāti, tāpēc augsta prioritāte nav jāgaida ilgi, kas ietaupa laiku
  • Šī metode nodrošina labu mehānismu, kurā var precīzi definēt katra procesa relatīvo nozīmi.
  • Piemērots lietojumiem ar mainīgām laika un resursu prasībām.

Prioritāšu plānošanas trūkumi

Šeit ir prioritāšu plānošanas mīnusi/trūkumi

  • Ja sistēma galu galā avarē, visi zemas prioritātes procesi pazūd.
  • Ja augstas prioritātes procesi aizņem daudz CPU laika, tad zemākas prioritātes procesi var nomirt badā un tiks atlikti uz nenoteiktu laiku.
  • Šis plānošanas algoritms var atstāt dažus zemas prioritātes procesus gaidīt uz nenoteiktu laiku.
  • Process būs bloķēts, kad tas būs gatavs darbam, bet jāgaida CPU, jo pašlaik darbojas kāds cits process.
  • Ja gatavajā rindā turpina parādīties jauns augstākas prioritātes process, process, kas atrodas gaidīšanas stāvoklī, var būt jāgaida ilgu laiku.

Kopsavilkums:

  • Prioritāšu plānošana ir procesu plānošanas metode, kuras pamatā ir prioritāte. Šajā algoritmā plānotājs izvēlas veicamos uzdevumus atbilstoši prioritātei.
  • Prioritārajā plānošanā uzdevumi lielākoties tiek piešķirti atbilstoši to prioritātēm.
  • Prioritārajā neplānotās plānošanas metodē CPU ir piešķirts konkrētam procesam.
  • Procesi tiek veikti, pamatojoties uz prioritāti, tāpēc augsta prioritāte nav jāgaida ilgi, kas ietaupa laiku
  • Ja augstas prioritātes procesi aizņem daudz CPU laika, tad zemākas prioritātes procesi var nomirt badā un tiks atlikti uz nenoteiktu laiku.