Razgovarajmo ukratko o razlikama između rasporeda Preemptive i Ne-preventivnog rasporeda uz pomoć donjeg usporednog grafikona.
Tablica usporedbe
Osnova za usporedbu | Raspoređivanje preferencija | Nije predviđeno zakazivanje |
---|---|---|
Osnovni, temeljni | Resursi se dodjeljuju procesu za ograničeno vrijeme. | Kada se resursi dodijele procesu, proces ga zadržava sve dok ne završi svoje burst vrijeme ili se prebaci na stanje čekanja. |
Prekinuti | Proces se može prekinuti između. | Proces se ne može prekinuti dok se ne prekine ili prebaci u stanje čekanja. |
Gladovanje | Ako proces visokog prioriteta često stigne u red čekanja, proces niskog prioriteta može izgladniti. | Ako proces s dugim vremenom burst-a izvodi CPU, onda drugi proces s manje vremena pucanja CPU-a može gladovati. |
gore | Preemptivno raspoređivanje ima režijske troškove planiranja procesa. | Raspored bez prethodnog odobrenja nema općih troškova. |
savitljivost | Preemptivno raspoređivanje je fleksibilno. | Raspoređivanje koje nije preduvjet je kruto. |
cijena | Preemptivno raspoređivanje je povezano s troškovima. | Raspoređivanje koje nije preduvjet nije troškovno asocijativno. |
Definicija preferencijalnog rasporeda
Prethodno zakazivanje je ono koje se može učiniti u okolnostima kada se proces prebaci iz stanja rada u stanje spremnosti ili iz stanja čekanja u stanje spremnosti . Ovdje su resursi (CPU ciklusi) dodijeljeni procesu za ograničeno vrijeme, a zatim se oduzimaju, a proces se ponovno postavlja u spreman red opet ako još uvijek ima preostalog vremena pucanja CPU-a. Proces ostaje u spremnom redu dok ne dobije sljedeću priliku za izvršenje.
Ako proces s visokim prioritetom stigne u red spremnosti, ne mora čekati da trenutni proces dovrši svoje burst vrijeme. Umjesto toga, trenutni proces je prekinut u sredini izvršenja i postavljen je u red čekanja dok proces s visokim prioritetom ne koristi procesorske cikluse. Na taj način, svaki proces u redu spreman dobiva neko vrijeme za pokretanje CPU-a. To čini fleksibilno raspoređivanje preemptiva, ali povećava opterećenje prebacivanjem procesa iz stanja u stanje spremnosti u stanje pripravnosti i vise-stih.
Algoritmi koji rade na preemptive raspoređivanju su Round Robin. Najkraći prvi posao (SJF) i zakazivanje prioriteta mogu ili ne moraju biti uključeni u prethodno zakazivanje.
Uzmimo primjer Preemptive Scheduling, pogledajte donju sliku. Imamo četiri procesa P0, P1, P2, P3. Od toga, P2 dolazi u vrijeme 0. Tako je CPU dodijeljen procesu P2 jer ne postoji drugi proces u redu. U međuvremenu, P2 je izvršavao, P3 stiže u vrijeme 1, sada je preostalo vrijeme za proces P2 (5 milisekundi) koje je veće od vremena potrebnog za P3 (4 mili-s). Tako je CPU dodijeljen procesoru P3.
Definicija rasporeda bez prethodnog povlačenja
Planiranje koje nije preventivno je ono koje se može primijeniti u okolnostima kada se proces završi, ili se proces prebacuje iz stanja izvođenja u stanje čekanja . U ne-preventivnom rasporedu, nakon što su resursi (CPU) dodijeljeni procesu, proces zadržava CPU dok se ne završi ili dosegne stanje čekanja.
Za razliku od preventivnog raspoređivanja, raspoređivanje koje nije preduvjet ne prekida proces koji izvodi CPU u sred izvršavanja. Umjesto toga, čeka da proces dovrši svoje vrijeme pražnjenja procesora, a zatim može dodijeliti procesor drugom procesu.
U Non-preemptive raspoređivanju, ako se proces s dugim CPU burst time provodi, drugi proces će morati čekati dugo vremena što povećava prosječno vrijeme čekanja procesa u redu spremnosti. Međutim, raspoređivanje bez prethodnog izuzeća nema nikakvih dodatnih troškova za prebacivanje procesa s reda spremnosti na procesor, ali čini raspoređivanje rigidnim jer proces u izvršenju nije čak izuzeta za proces s višim prioritetom.
Ključne razlike između pretpreventnog i ne-preventivnog rasporeda
- Osnovna razlika između preemptive i non-preventivnog raspoređivanja je u tome što se u prethodnom zakazivanju CPU dodjeljuje procesima za ograničeno vrijeme. Dok je u rasporedu Non-preemptive, CPU je dodijeljen procesu dok ne završi ili se prebaci na stanje čekanja .
- Proces izvršavanja u preemptive raspoređivanju je prekinut u sredini izvršenja, dok se proces izvršavanja u ne-preventivnom raspoređivanju ne prekida u sredini izvršenja.
- Preemptive Scheduling ima opterećenje za prebacivanje procesa iz stanja spremnosti u stanje rada, vise-stih i održavanje reda spremnosti. S druge strane, raspoređivanje bez prethodnog odabira nema opterećenje za prebacivanje procesa iz stanja rada u stanje spremnosti.
- U preemptive raspoređivanju, ako proces s visokim prioritetom često dolazi u red čekanja, proces s niskim prioritetom mora čekati dugo, a možda će morati izgladnjivati. S druge strane, u ne-preventivnom rasporedu, ako je CPU dodijeljen procesu s većim vremenom raspršivanja, procesi s malim vremenom pucanja možda će morati gladovati.
- Preemptivno raspoređivanje je prilično fleksibilno jer je kritičnim procesima dopušten pristup CPU-u dok oni dolaze u red spremnosti, bez obzira na to koji se proces trenutno izvršava. Ne-preventivno raspoređivanje je kruto, jer čak i ako kritični proces uđe u red čekanja, proces koji se izvodi CPU-om nije poremećen.
- Preemptive Scheduling je troškovno asocijativan jer mora održavati integritet dijeljenih podataka što nije slučaj s rasporedom bez preventivnog pristupa.
Zaključak:
Nije da je preemptivno raspoređivanje bolje od nepreceptivnog raspoređivanja ili vise-stiha. Sve ovisi o tome kako raspoređivanje minimizira prosječno vrijeme čekanja procesa i maksimizira iskorištenost CPU-a.