Preporučeno, 2019

Izbor Urednika

Razlika između pretpreventivnog i ne-preventivnog rasporeda u OS-u

Odgovornost je CPU raspoređivača da dodijeli proces CPU-u kad god je CPU u stanju mirovanja. CPU raspored odabire proces iz reda spremnosti i dodjeljuje proces CPU-u. Raspoređivanje koje se odvija kada se proces prebaci iz stanja rada u stanje pripravnosti ili iz stanja čekanja u stanje spremnosti, naziva se Preemptive Scheduling . Raspoređivanje koje se odvija kada se proces završi ili se prebaci s pokretanja na čekanje stanja ove vrste raspoređivanja CPU-a naziva se ne-preventivno planiranje . Osnovna razlika između preventivnog i nepreceptivnog raspoređivanja leži u samom imenu. To je preemptive raspoređivanje može biti preempted; procesi se mogu zakazati. U rasporedu bez preduslova procesi se ne mogu zakazivati.

Razgovarajmo ukratko o razlikama između rasporeda Preemptive i Ne-preventivnog rasporeda uz pomoć donjeg usporednog grafikona.

Tablica usporedbe

Osnova za usporedbuRaspoređivanje preferencijaNije predviđeno zakazivanje
Osnovni, temeljniResursi 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.
PrekinutiProces se može prekinuti između.Proces se ne može prekinuti dok se ne prekine ili prebaci u stanje čekanja.
GladovanjeAko 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.
gorePreemptivno raspoređivanje ima režijske troškove planiranja procesa.Raspored bez prethodnog odobrenja nema općih troškova.
savitljivostPreemptivno raspoređivanje je fleksibilno.Raspoređivanje koje nije preduvjet je kruto.
cijenaPreemptivno 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.

U međuvremenu, P3 je izvršavao, proces P1 stiže u vrijeme 2. Sada je preostalo vrijeme za P3 (3 milisekunde) manje od vremena koje zahtijeva proces P1 (4 milisekunde) i P2 (5 milisekundi). Tako je P3 dopušteno nastaviti. Dok se P3 nastavlja, proces P0 dolazi u vrijeme 3, sada je preostalo vrijeme za P3 (2 milisekunde) jednako vremenu koje zahtijeva P0 (2 milisekunde). Tako se P3 nastavlja i nakon što P3 završi, CPU je dodijeljen P0 jer ima manje vremena pucanja od drugih. Nakon završetka P0, CPU je dodijeljen P1, a zatim P2.

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.

Razmotrimo gore navedeni primjer raspoređivanja na način koji ne prethodi. Kako je u početku proces P2 stigao u vrijeme 0, tako je CPU dodijeljen procesu P2 potrebno je 6 milisekundi za izvršenje. Između svih procesa tj. P0, P1, P3 dolazi u red čekanja. No, svi čekaju da proces P2 dovrši svoje vrijeme pražnjenja procesora. Zatim proces koji stiže nakon P2 tj. P3 je zatim dodijeljen CPU dok ne završi je burst vrijeme. Slično tome, P1 se izvršava, a CPU se kasnije daje procesu P0.

Ključne razlike između pretpreventnog i ne-preventivnog rasporeda

  1. 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 .
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.

Top