Algoritam za raspoređivanje prioriteta: preemptivni, nepreemptivni

⚡ Pametni sažetak

Raspoređivanje prioriteta je metoda raspoređivanja CPU-a koja odabire procese na temelju prioriteta, prvo izvršavajući zadatke višeg prioriteta. Može biti preemptivno ili nepreemptivno, a procesi s jednakim prioritetom obrađuju se po principu tko prvi dođe, prvi se posluži ili kružno.

  • 🎯 Definicija: Procesi se raspoređuju po prioritetu, pri čemu se zadaci višeg prioriteta izvršavaju prije onih nižeg prioriteta.
  • 🔢 Prioritetni broj: Manji broj obično znači veći prioritet.
  • ⏸️ Preventivno: Dolazak višeg prioriteta može prekinuti trenutno pokrenuti proces nižeg prioriteta.
  • ▶ ️ Nepreventivno: Izvršavanje procesa zadržava CPU dok se ne završi ili ne promijeni kontekst.
  • ✅ Prednost: Važni procesi se izvode brzo, usklađujući relativnu važnost s vremenom procesora.
  • ⚠️ Nedostatak: Procesi niskog prioriteta mogu gladovati i čekati unedogled.

Algoritam prioritetnog rasporeda

Što je prioritetno zakazivanje?

Prioritetno raspoređivanje je metoda raspoređivanja procesa koja se temelji na prioritetu. U ovom algoritmu planer odabire zadatke koji će raditi prema prioritetu.

Procesi s višim prioritetom trebaju se provesti prvi, dok se poslovi s jednakim prioritetima provode na kružnoj ili FCFS osnovi. Prioritet ovisi o zahtjevima memorije, vremenskim zahtjevima itd.

Vrste prioritetnog rasporeda

Prioritetno raspoređivanje podijeljeno je u dvije glavne vrste:

Preventivno planiranje

U Preemptive Scheduling, zadaci su uglavnom dodijeljeni sa svojim prioritetima. Ponekad je važno pokrenuti zadatak s višim prioritetom prije drugog zadatka nižeg prioriteta, čak i ako je zadatak nižeg prioriteta još uvijek u tijeku. Zadatak nižeg prioriteta zadržava se neko vrijeme i nastavlja kada zadatak višeg prioriteta završi s izvršenjem.

Nepreventivno zakazivanje

U ovoj vrsti metode raspoređivanja, CPU je dodijeljen određenom procesu. Proces koji drži CPU zauzetim oslobodit će ga promjenom konteksta ili završetkom. To je jedina metoda koja se može koristiti za različite hardverske platforme. To je zato što ne treba poseban hardver (na primjer, timer) kao preventivno raspoređivanje.

Karakteristike prioritetnog rasporeda

  • CPU algoritam koji raspoređuje procese na temelju prioriteta.
  • Koristi se u Operating sustavi za izvođenje šaržnih procesa.
  • Ako su dva posla s istim prioritetom SPREMNI, radi na a PRVI DODJE PRVI JE POSLUZEN osnova.
  • U raspoređivanju prioriteta, broj se dodjeljuje svakom procesu koji označava njegovu razinu prioriteta.
  • Što je broj manji, to je prioritet veći.
  • U ovoj vrsti algoritma raspoređivanja, ako stigne noviji proces koji ima viši prioritet od trenutno pokrenutog procesa, tada se trenutno pokrenuti proces preemptira.

Primjer rasporeda prioriteta

Razmotrimo sljedećih pet procesa od P1 do P5. Svaki proces ima svoj jedinstveni prioritet, vrijeme rafala i vrijeme dolaska.

Proces Prioritet Vrijeme praska Vrijeme dolaska
P1 1 4 0
P2 2 3 0
P3 1 7 6
P4 3 4 11
P5 2 2 12

Korak 0) U vremenu = 0, stižu procesi P1 i P2. P1 ima veći prioritet od P2. Izvršavanje počinje s procesom P1, koji ima vrijeme burst-a 4.

Prioritetno raspoređivanje

Korak 1) U trenutku = 1, ne stiže nijedan novi proces. Izvršavanje se nastavlja s P1.

Prioritetno raspoređivanje

Korak 2) U trenutku 2 ne dolazi novi proces, tako da možete nastaviti s P1. P2 je u redu čekanja.

Prioritetno raspoređivanje

Korak 3) U vremenu 3 ne stiže nijedan novi proces, tako da možete nastaviti s P1. Proces P2 je još uvijek u redu čekanja.

Prioritetno raspoređivanje

Korak 4) U trenutku 4, P1 je završio svoje izvršenje. P2 započinje izvršenje.

Prioritetno raspoređivanje

Korak 5) U vremenu = 5, ne stiže nijedan novi proces, pa nastavljamo s P2.

Prioritetno raspoređivanje

Korak 6) U trenutku = 6, stiže P3. P3 ima viši prioritet (1) u usporedbi s P2 koji ima prioritet (2). P2 je preemptan i P3 započinje svoje izvršavanje.

Proces Prioritet Vrijeme praska Vrijeme dolaska
P1 1 4 0
P2 2 1 od 3 na čekanju 0
P3 1 7 6
P4 3 4 11
P5 2 2 12

Prioritetno raspoređivanje

Korak 7) U trenutku 7 ne stiže nijedan novi proces, pa nastavljamo s P3. P2 je u redu čekanja.

Prioritetno raspoređivanje

Korak 8) U trenutku = 8, ne stiže nijedan novi proces, pa možemo nastaviti s P3.

Prioritetno raspoređivanje

Korak 9) U vremenu = 9, ne dolazi novi proces, pa možemo nastaviti s P3.

Prioritetno raspoređivanje

Korak 10) U vremenskom intervalu 10 ne dolazi do novog procesa, pa nastavljamo s P3.

Prioritetno raspoređivanje

Korak 11) U trenutku = 11, P4 stiže s prioritetom 4. P3 ima viši prioritet, pa nastavlja s izvršavanjem.

Proces Prioritet Vrijeme praska Vrijeme dolaska
P1 1 4 0
P2 2 1 od 3 na čekanju 0
P3 1 2 od 7 na čekanju 6
P4 3 4 11
P5 2 2 12

Prioritetno raspoređivanje

Korak 12) U trenutku = 12, stiže P5. P3 ima viši prioritet, pa nastavlja s izvršavanjem.

Prioritetno raspoređivanje

Korak 13) U vremenu = 13, P3 završava izvršavanje. U redu čekanja imamo P2, P4 i P5. P2 i P5 imaju jednak prioritet. Vrijeme dolaska P2 je prije P5, pa P2 započinje izvršavanje.

Proces Prioritet Vrijeme praska Vrijeme dolaska
P1 1 4 0
P2 2 1 od 3 na čekanju 0
P3 1 7 6
P4 3 4 11
P5 2 2 12

Prioritetno raspoređivanje

Korak 14) U vremenu = 14, proces P2 je završio svoje izvršavanje. P4 i P5 su u stanju čekanja. P5 ima najviši prioritet i započinje izvršavanje.

Prioritetno raspoređivanje

Korak 15) U vremenu = 15, P5 nastavlja izvršavanje.

Prioritetno raspoređivanje

Korak 16) U vremenu = 16, P5 je završio sa svojim izvršavanjem. P4 je jedini preostali proces. On započinje izvršavanje.

Prioritetno raspoređivanje

Korak 17) U vremenu = 20, P4 je završio izvršavanje i nije preostao nijedan proces.

Prioritetno raspoređivanje

Korak 18) Izračunajmo prosječno vrijeme čekanja za gornji primjer.

Vrijeme čekanja = vrijeme početka – vrijeme dolaska + vrijeme čekanja za sljedeći niz

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

Prednosti prioritetnog rasporeda

Evo prednosti/prednosti korištenja metode prioritetnog raspoređivanja:

  • Jednostavna metoda zakazivanja.
  • Procesi se izvršavaju na temelju prioriteta, tako da visoki prioritet ne mora dugo čekati, što štedi vrijeme.
  • Ova metoda pruža dobar mehanizam gdje se relativna važnost svakog procesa može precizno definirati.
  • Prikladno za aplikacije s promjenjivim zahtjevima vremena i resursa.

Nedostaci prioritetnog rasporeda

Evo nedostataka/nedostataka prioritetnog raspoređivanja:

  • Ako se sustav na kraju sruši, svi procesi niskog prioriteta se gube.
  • Ako procesi s visokim prioritetom oduzimaju puno CPU vremena, procesi s nižim prioritetom mogu izgladnjeti i bit će odgođeni na neodređeno vrijeme.
  • Ovaj algoritam zakazivanja može ostaviti neke procese niskog prioriteta da čekaju na neodređeno vrijeme.
  • Proces će biti blokiran kada bude spreman za pokretanje, ali mora čekati CPU jer je trenutno u tijeku neki drugi proces.
  • Ako novi proces višeg prioriteta nastavi dolaziti u redu čekanja, tada će proces koji je u stanju čekanja možda morati čekati dugo vremena.

Pitanja i odgovori

Do gladovanja dolazi kada procesi niskog prioriteta čekaju neograničeno jer oni višeg prioriteta stalno pristižu. Starenje to rješava postupnim povećanjem prioriteta procesa koji su dugo čekali, tako da se svaki proces na kraju pokrene.

U većini operativnih sustava, niži broj prioriteta znači viši prioritet. Na primjer, proces s prioritetom 1 izvršava se prije procesa s prioritetom 3. Međutim, neki sustavi to rade obrnuto, stoga uvijek provjerite korištenu konvenciju.

Prioritet se može dodijeliti interno korištenjem čimbenika poput memorijskih potreba, vremenskih zahtjeva i opterećenja CPU-a ili eksterno od strane korisnika ili administratora na temelju važnosti, troškova ili rokova. Može biti statičan (fiksan) ili dinamičan (mijenja se tijekom izvođenja).

Umjetna inteligencija može dinamički dodijeliti i prilagoditi prioritete procesa učenjem obrazaca radnog opterećenja i rokova. To pomaže važnim poslovima da se završe na vrijeme, a istovremeno smanjuje rizik od nedostatka resursa, poboljšavajući ukupnu propusnost i brzinu odziva u složenim, promjenjivim sustavima.

Da. Umjetna inteligencija može pratiti vrijeme čekanja i automatski povećati prioritet procesa koji dugo čekaju, djelujući poput pametnog starenja. Predviđanjem zagušenja, bolje uravnotežuje pravednost i performanse od fiksnih pravila, tako da poslovi niskog prioriteta ne odgađaju se zauvijek.

Sažmite ovu objavu uz: