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.

Š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.
Korak 1) U trenutku = 1, ne stiže nijedan novi proces. Izvršavanje se nastavlja s P1.
Korak 2) U trenutku 2 ne dolazi novi proces, tako da možete nastaviti s P1. P2 je u redu čekanja.
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.
Korak 4) U trenutku 4, P1 je završio svoje izvršenje. P2 započinje izvršenje.
Korak 5) U vremenu = 5, ne stiže nijedan novi proces, pa nastavljamo s P2.
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 |
Korak 7) U trenutku 7 ne stiže nijedan novi proces, pa nastavljamo s P3. P2 je u redu čekanja.
Korak 8) U trenutku = 8, ne stiže nijedan novi proces, pa možemo nastaviti s P3.
Korak 9) U vremenu = 9, ne dolazi novi proces, pa možemo nastaviti s P3.
Korak 10) U vremenskom intervalu 10 ne dolazi do novog procesa, pa nastavljamo s P3.
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 |
Korak 12) U trenutku = 12, stiže P5. P3 ima viši prioritet, pa nastavlja s izvršavanjem.
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 |
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.
Korak 15) U vremenu = 15, P5 nastavlja izvršavanje.
Korak 16) U vremenu = 16, P5 je završio sa svojim izvršavanjem. P4 je jedini preostali proces. On započinje izvršavanje.
Korak 17) U vremenu = 20, P4 je završio izvršavanje i nije preostao nijedan proces.
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.


















