Preventivno i nepreventivno planiranje
Ključne razlike između preventivnog i nepreventivnog rasporeda
- U Preemptive Schedulingu, CPU se dodjeljuje procesima na određeno vremensko razdoblje, a CPU bez preventivnog planiranja dodjeljuje se procesu dok ne završi.
- U Preemptive Schedulingu zadaci se mijenjaju na temelju prioriteta, dok se u non-preemptive Schedulingu ne mijenjaju.
- Preemptivni algoritam ima dodatne troškove prebacivanja procesa iz stanja spremnosti u stanje rada, dok Nepreemptivno planiranje nema takve troškove prebacivanja.
- Preventivno zakazivanje je fleksibilno, dok je nepreventivno zakazivanje rigidno.

Što je preventivno planiranje?
Preemptive Scheduling je metoda raspoređivanja gdje se zadacima uglavnom dodjeljuju njihovi prioriteti. Ponekad je važno pokrenuti zadatak s višim prioritetom prije drugog zadatka s nižim prioritetom, čak i ako se zadatak s nižim prioritetom još izvodi.
Tada se zadatak nižeg prioriteta zadržava neko vrijeme i nastavlja kada zadatak višeg prioriteta završi s izvršenjem.
Što je nepreventivno zakazivanje?
U ovoj vrsti metode raspoređivanja, CPU je dodijeljen određenom procesu. Proces koji drži CPU zauzet će osloboditi CPU ili promjenom konteksta ili prekidom.
To je jedina metoda koja se može koristiti za različite hardverske platforme. To je zato što ne treba specijalizirani hardver (na primjer, mjerač vremena) kao što je preventivno planiranje.
Non-Preemptive Scheduling događa se kada proces dobrovoljno uđe u stanje čekanja ili se prekine.
Preemptivno u odnosu na ne-preemptivno zakazivanje: usporedna tablica
Ovdje je izravna usporedba Preemptivnog i Nepreemptivnog rasporeda. Glavne razlike između Preemptive i Non-Preemptive Scheduling u OS-u su sljedeće:
Preventivno planiranje | Nepreventivno zakazivanje |
---|---|
Procesor se može unaprijed isključiti da izvrši različite procese usred bilo kojeg trenutnog procesa. | Jednom kada procesor započne svoje izvršenje, mora ga završiti prije nego što izvrši drugi. Ne može se pauzirati u sredini. |
Iskorištenje CPU-a učinkovitije je u usporedbi s nepreventivnim planiranjem. | Iskorištenost CPU-a manje je učinkovita u usporedbi s preventivnim planiranjem. |
Vrijeme čekanja i odgovora za preventivno planiranje je manje. | Vrijeme čekanja i vrijeme odgovora metode raspoređivanja bez prevencije je veće. |
Preventivno planiranje ima prioritet. Proces najvišeg prioriteta je proces koji se trenutno koristi. | Kada bilo koji proces uđe u stanje rada, stanje tog procesa se nikada ne briše iz planera dok ne završi svoj posao. |
Preventivno zakazivanje je fleksibilno. | Non-preemptive Scheduling je kruto. |
Primjeri: – Prvo najkraće preostalo vrijeme, Round Robin, itd. | Primjeri: First Come First Serve, Najkraći posao prvi, Prioritetno planiranje itd. |
Preemptive Scheduling algoritam može se unaprijed isključiti, što znači da se proces može zakazati | U nepreventivnom rasporedu proces se ne može zakazati |
U ovom procesu, CPU se dodjeljuje procesima za određeno vremensko razdoblje. | U ovom procesu, CPU se dodjeljuje procesu sve dok ne završi ili prijeđe u stanje čekanja. |
Preemptivni algoritam ima dodatne troškove prebacivanja procesa iz stanja spremnosti u stanje rada i obrnuto. | Non-preemptive Scheduling nema takve dodatne troškove prebacivanja procesa iz pokretanja u stanje spremnosti. |
Prednosti preventivnog rasporeda
Ovdje su prednosti/prednosti metode preventivnog zakazivanja:
- Metoda preventivnog planiranja je robusnija, pristupa tako da jedan proces ne može monopolizirati CPU
- Izbor tekućeg zadatka ponovno se razmatra nakon svakog prekida.
- Svaki događaj uzrokuje prekid pokrenutih zadataka
- OS osigurava da je upotreba CPU-a ista za sve pokrenute procese.
- U ovom slučaju, korištenje CPU-a je isto, tj. svi pokrenuti procesi će jednako koristiti CPU.
- Ova metoda raspoređivanja također improvizira prosječno vrijeme odgovora.
- Preemptive Scheduling je korisno kada ga koristimo za višeprogramsko okruženje.
Prednosti nepreventivnog rasporeda
Ovdje su prednosti/prednosti metode nepreventivnog zakazivanja:
- Nudi niske troškove planiranja
- Nastoji ponuditi visoku propusnost
- Konceptualno je vrlo jednostavna metoda
- Less potrebni računalni resursi za planiranje
Nedostaci preventivnog rasporeda
Slijede nedostaci preventivnog rasporeda:
- Potrebni su ograničeni računalni resursi za planiranje
- Planeru je potrebno više vremena da obustavi tekući zadatak, promijeni kontekst i otpremi novi dolazni zadatak.
- Proces s niskim prioritetom mora čekati dulje vrijeme ako neki procesi s visokim prioritetom stalno dolaze.
Nedostaci nepreventivnog rasporeda
Ovdje su mane/mane strane metode nepreventivnog raspoređivanja:
- To može dovesti do gladovanja, posebno za one zadatke u stvarnom vremenu
- Greške mogu uzrokovati zamrzavanje stroja
- Može napraviti u stvarnom vremenu i prioritetno planiranje težak
- Slabo vrijeme odgovora za procese
Primjer nepreventivnog rasporeda
U raspoređivanju SJF bez preempcije, nakon što je CPU ciklus dodijeljen procesu, proces ga zadržava dok ne dosegne stanje čekanja ili dok se ne prekine.
Razmotrite sljedećih pet procesa, od kojih svaki ima svoje jedinstveno vrijeme praska i vrijeme dolaska.
Proces čekanja | Vrijeme praska | Vrijeme dolaska |
---|---|---|
P1 | 6 | 2 |
P2 | 2 | 5 |
P3 | 8 | 1 |
P4 | 3 | 0 |
P5 | 4 | 4 |
Korak 0) U vrijeme = 0, P4 dolazi i počinje izvršavanje.
Korak 1) U trenutku = 1 dolazi proces P3. No, P4 još uvijek treba 2 izvršne jedinice za dovršetak. Nastavit će s izvršenjem.
Korak 2) U trenutku =2 dolazi proces P1 i dodaje se u red čekanja. P4 će nastaviti s izvršenjem.
Korak 3) U trenutku = 3, proces P4 će završiti svoje izvršenje. Uspoređuje se vrijeme praska P3 i P1. Proces P1 se izvršava jer je njegovo vrijeme pražnjenja kraće u usporedbi s P3.
Korak 4) U trenutku = 4, proces P5 dolazi i dodaje se u red čekanja. P1 će nastaviti s izvršenjem.
Korak 5) U trenutku = 5, proces P2 dolazi i dodaje se u red čekanja. P1 će nastaviti s izvršenjem.
Korak 6) U trenutku = 9, proces P1 će završiti svoje izvršenje. Uspoređuje se vrijeme praska P3, P5 i P2. Proces P2 se izvršava jer je njegovo vrijeme praska najniže.
Korak 7) U trenutku=10, P2 se izvršava, a P3 i P5 su u redu čekanja.
Korak 8) U trenutku = 11, proces P2 će završiti svoje izvršenje. Uspoređuje se vrijeme praska P3 i P5. Proces P5 se izvršava jer je njegovo vrijeme praska niže.
Korak 9) U trenutku = 15, proces P5 će završiti svoje izvršenje.
Korak 10) U trenutku = 23, proces P3 će završiti svoje izvršenje.
Korak 11) Izračunajmo prosječno vrijeme čekanja za gornji primjer.
Wait time P4= 0-0=0 P1= 3-2=1 P2= 9-5=4 P5= 11-4=7 P3= 15-1=14 Average Waiting Time= 0+1+4+7+14/5 = 26/5 = 5.2
Primjer preventivnog rasporeda
Razmotrite ovo nakon tri procesa u Kružno igranje
Proces čekanja | Vrijeme praska |
---|---|
P1 | 4 |
P2 | 3 |
P3 | 5 |
Korak 1) Izvršenje počinje s procesom P1, koji ima vrijeme praska 4. Ovdje se svaki proces izvršava 2 sekunde. P2 i P3 su još uvijek u redu čekanja.
Korak 2) U trenutku =2, P1 se dodaje na kraj reda i P2 počinje izvršavati
Korak 3) U vrijeme = 4, P2 se iskorištava i dodaje na kraj reda čekanja. P3 počinje s izvršavanjem.
Korak 4) U vrijeme = 6, P3 se iskorištava i dodaje na kraj reda čekanja. P1 počinje s izvršavanjem.
Korak 5) U trenutku=8, P1 ima vrijeme praska od 4. Završio je izvršenje. P2 započinje izvršenje
Korak 6) P2 ima vrijeme praska od 3. Već je izvršen u intervalu od 2. U trenutku = 9, P2 dovršava izvršenje. Zatim P3 počinje s izvođenjem dok ne završi.
Korak 7) Izračunajmo prosječno vrijeme čekanja za gornji primjer.
Wait time P1= 0+ 4= 4 P2= 2+4= 6 P3= 4+3= 7