Algoritmul de planificare prioritară: preventiv, non-preventiv EXEMPLU

Cuprins:

Anonim

Ce este programarea prioritară?

Planificarea prioritară este o metodă de planificare a proceselor care se bazează pe prioritate. În acest algoritm, programatorul selectează sarcinile pentru a funcționa conform priorității.

Procesele cu prioritate mai mare ar trebui să se desfășoare mai întâi, în timp ce locurile de muncă cu priorități egale se desfășoară pe bază de round-robin sau FCFS. Prioritatea depinde de cerințele de memorie, cerințele de timp etc.

În acest tutorial privind sistemul de operare, veți afla:

  • Ce este programarea prioritară?
  • Tipuri de planificare prioritară
  • Caracteristicile programării prioritare
  • Exemplu de programare prioritară
  • Avantajele programării prioritare
  • Dezavantaje ale programării prioritare

Tipuri de planificare prioritară

Planificarea prioritară împărțită în două tipuri principale:

Programare preventivă

În programarea preventivă, sarcinile sunt atribuite în principal cu prioritățile lor. Uneori este important să rulați o sarcină cu o prioritate mai mare înainte de o altă sarcină cu prioritate mai mică, chiar dacă sarcina cu prioritate mai mică este încă în curs de executare. Sarcina cu prioritate inferioară se menține de ceva timp și se reia când sarcina cu prioritate superioară își termină executarea.

Programare non-preventivă

În acest tip de metodă de planificare, CPU-ul a fost alocat unui proces specific. Procesul care menține CPU-ul ocupat, îl va elibera fie prin schimbarea contextului, fie prin terminare. Este singura metodă care poate fi utilizată pentru diverse platforme hardware. Asta pentru că nu are nevoie de hardware special (de exemplu, un cronometru), cum ar fi planificarea preventivă.

Caracteristicile programării prioritare

  • Un algoritm CPU care planifică procesele pe baza priorității.
  • Acesta a fost utilizat în sistemele de operare pentru efectuarea proceselor batch.
  • Dacă două joburi cu aceeași prioritate sunt GATA, acesta funcționează pe baza FIRST COME, FIRST SERVED.
  • În planificarea prioritară, este atribuit un număr fiecărui proces care indică nivelul său de prioritate.
  • Numărul este mai mic, cu atât prioritatea este mai mare.
  • În acest tip de algoritm de planificare, dacă sosește un proces mai nou, care are o prioritate mai mare decât procesul în curs de execuție, atunci procesul în curs de desfășurare este interzis.

Exemplu de programare prioritară

Luați în considerare urmarea a cinci procese P1 până la P5. Fiecare proces are prioritatea sa unică, timpul de spargere și ora de sosire.

Proces Prioritate Timp de rafală Timpul sosirii
P1 1 4 0
P2 2 3 0
P3 1 7 6
P4 3 4 11
P5 2 2 12

Pasul 0) La momentul = 0, ajung procesele P1 și P2. P1 are prioritate mai mare decât P2. Execuția începe cu procesul P1, care are timpul de explozie 4.

Pasul 1) La momentul = 1, nu ajunge un nou proces. Execuția continuă cu P1.

Pasul 2) La momentul 2, nu ajunge nici un proces nou, deci puteți continua cu P1. P2 se află în coada de așteptare.

Pasul 3) La ora 3, nu ajunge nici un proces nou, astfel încât să puteți continua cu P1. Procesul P2 încă în coada de așteptare.

Pasul 4) La momentul 4, P1 și-a terminat execuția. P2 începe executarea.

Pasul 5) La timp = 5, nu ajunge nici un proces nou, așa că continuăm cu P2.

Pasul 6) La ora = 6, ajunge P3. P3 are prioritate mai mare (1) comparativ cu P2 având prioritate (2). P2 este prevenit, iar P3 își începe execuția.

Proces Prioritate Timp de rafală Timpul sosirii
P1 1 4 0
P2 2 1 din 3 în așteptare 0
P3 1 7 6
P4 3 4 11
P5 2 2 12

Pasul 7) La ora 7, nu vine un nou proces, așa că continuăm cu P3. P2 se află în coada de așteptare.

Pasul 8) La ora = 8, nu ajunge nici un proces nou, deci putem continua cu P3.

Pasul 9) La momentul = 9, nu vine nici un proces nou, așa că putem continua cu P3.

Pasul 10) La intervalul de timp 10, nu vine nici un proces nou, așa că continuăm cu P3

Pasul 11) La momentul = 11, P4 ajunge cu prioritatea 4. P3 are prioritate mai mare, deci își continuă execuția.

Proces Prioritate Timp de rafală Timpul sosirii
P1 1 4 0
P2 2 1 din 3 în așteptare 0
P3 1 2 din 7 în așteptare 6
P4 3 4 11
P5 2 2 12

Pasul 12) La ora = 12, ajunge P5. P3 are o prioritate mai mare, deci continuă executarea.

Pasul 13) La timp = 13, P3 finalizează execuția. Avem P2, P4, P5 în coadă gata. P2 și P5 au prioritate egală. Ora de sosire a P2 este înainte de P5. Deci P2 începe executarea.

Proces Prioritate Timp de rafală Timpul sosirii
P1 1 4 0
P2 2 1 din 3 în așteptare 0
P3 1 7 6
P4 3 4 11
P5 2 2 12

Pasul 14) La momentul = 14, procesul P2 și-a încheiat execuția. P4 și P5 sunt în starea de așteptare. P5 are cea mai mare prioritate și începe executarea.

Pasul 15) La timp = 15, P5 continuă executarea.

Pasul 16) La momentul = 16, P5 este terminat cu execuția sa. P4 este singurul proces rămas. Începe execuția.

Pasul 17) La momentul = 20, P5 a finalizat execuția și nu rămâne niciun proces.

Pasul 18) Să calculăm timpul mediu de așteptare pentru exemplul de mai sus.

Timp de așteptare = ora de început - ora de sosire + timpul de așteptare pentru următoarea rafală

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

Avantajele programării prioritare

Iată, avantajele / avantajele utilizării metodei de planificare prioritară:

  • Metoda de planificare ușor de utilizat
  • Procesele sunt executate pe baza priorității, astfel încât prioritatea ridicată nu trebuie să aștepte mult timp, ceea ce economisește timp
  • Această metodă oferă un mecanism bun în care importanța relativă a fiecărui proces poate fi definită cu precizie.
  • Potrivit pentru aplicații cu cerințe de timp și resurse fluctuante.

Dezavantaje ale programării prioritare

Iată, dezavantaje / dezavantaje ale planificării prioritare

  • Dacă sistemul se blochează în cele din urmă, toate procesele cu prioritate redusă se pierd.
  • Dacă procesele cu prioritate ridicată necesită mult timp CPU, atunci procesele cu prioritate mai mică pot muri de foame și vor fi amânate pentru o perioadă nedeterminată.
  • Acest algoritm de planificare poate lăsa câteva procese cu prioritate redusă în așteptare la nesfârșit.
  • Un proces va fi blocat atunci când este gata de rulare, dar trebuie să aștepte procesorul, deoarece un alt proces rulează în prezent.
  • Dacă un nou proces cu prioritate superioară continuă să apară în coada de pregătire, atunci procesul care se află în starea de așteptare poate fi necesar să aștepte o perioadă lungă de timp.

Rezumat:

  • Planificarea prioritară este o metodă de planificare a proceselor care se bazează pe prioritate. În acest algoritm, programatorul selectează sarcinile pentru a funcționa conform priorității.
  • În Planificarea prioritară prioritară, sarcinile sunt atribuite în principal cu prioritățile lor.
  • În metoda de planificare prioritară non-preventivă, CPU-ul a fost alocat unui proces specific.
  • Procesele sunt executate pe baza priorității, astfel încât prioritatea ridicată nu trebuie să aștepte mult timp, ceea ce economisește timp
  • Dacă procesele cu prioritate ridicată necesită mult timp CPU, atunci procesele cu prioritate mai mică pot muri de foame și vor fi amânate pentru o perioadă nedeterminată.