Razpravljajmo o razlikah med razporedom prednostnega in nepreklicnega razporejanja na kratko s pomočjo primerjalne tabele, prikazane spodaj.
Primerjalna tabela
Podlaga za primerjavo | Predpogojno razporejanje | Nepreklicno razporejanje |
---|---|---|
Osnovno | Sredstva so dodeljena procesu za omejen čas. | Ko so viri dodeljeni procesu, ga proces zadrži, dokler ne zaključi svojega burst časa ali preklopi na stanje čakanja. |
Prekinite | Postopek se lahko prekine. | Proces ne moremo prekiniti, dokler se ne prekine ali preklopi v stanje čakanja. |
Lakota | Če proces visoke prioritete pogosto prispe v pripravljeno čakalno vrsto, lahko postopek nizke prioritete strada. | Če proces z dolgim časom burst-a izvaja CPU, potem lahko drugi stori z manj CPU razpočnega časa stradajo. |
Zgoraj | Predhodno razporejanje ima režijske stroške za načrtovanje procesov. | Nepreklicno razporejanje nima režijskih stroškov. |
Prožnost | Preventivno razporejanje je prilagodljivo. | Nepreventivno razporejanje je togo. |
Stroški | Predhodno razporejanje je povezano s stroški. | Nepreklicno razporejanje ni stroškovno povezljivo. |
Opredelitev prednostnega razporejanja
Predhodno razporejanje je tisto, ki se lahko izvede v okoliščinah, ko proces preklopi iz stanja delovanja v stanje pripravljenosti ali iz stanja čakanja v stanje pripravljenosti . Tukaj so viri (cikli CPU) dodeljeni procesu za omejeno časovno obdobje, nato pa se odvzamejo in proces se ponovno postavi v pripravljeno čakalno vrsto, če ima še vedno preostanek časa CPU. Proces ostane v pripravljeni čakalni vrsti, dokler ne dobi nove priložnosti za izvedbo.
Če proces z visoko prioriteto prispe v pripravljeno čakalno vrsto, mu ni treba čakati na trenutni proces, da bi dokončal svoj burst čas. Namesto tega se trenutni proces prekine sredi izvedbe in se postavi v pripravljeno čakalno vrsto, dokler proces z visoko prioriteto ne izkoristi ciklov procesorja. Na ta način vsak proces v pripravljeni čakalni vrsti dobi nekaj časa za zagon CPU. Zaradi tega je prilagodljivo razporejanje fleksibilno, vendar povečuje režijske stroške preklapljanja procesa iz stanja delovanja v stanje pripravljenosti in vise-verz.
Algoritmi, ki se ukvarjajo s preemptivno razporejanjem, so Round Robin. Najkrajša prva naloga (SJF) in razporejanje prednostnih nalog lahko ali pa ne sodita v okvir predhodnega razporejanja.
Vzemimo primer Preemptive Scheduling, poglejte sliko spodaj. Imamo štiri procese P0, P1, P2, P3. Od tistega, P2 pride v času 0. Torej je CPU dodeljen procesu P2, ker v čakalni vrsti ni nobenega drugega procesa. Medtem se je izvajal P2, P3 prispe v čas 1, zdaj pa preostali čas za postopek P2 (5 milisekund), ki je večji od časa, ki ga zahteva P3 (4 mili-sek). CPU je tako dodeljen procesorju P3.
Opredelitev časovnega razporeda, ki ni izločena
Nepreklicno razporejanje je tisto, ki ga je mogoče uporabiti v okoliščinah, ko se postopek konča, ali pa se postopek preklopi iz stanja izvajanja v stanje čakanja . V časovnem razporedu brez izjeme, ko so viri (CPU) dodeljeni procesu, proces obdrži CPU, dokler ne preneha ali doseže stanje čakanja.
Za razliko od predhodnega razporejanja, nepreferenčno razporejanje ne prekinja procesa, ki izvaja CPU sredi izvajanja. Namesto tega čaka, da proces dokonča svoj čas razpočenja CPE, nato pa lahko dodeli CPU drugemu procesu.
V Nepreventivnem razporejanju, če se proces z dolgim časom zapore CPU izvaja, bo moral drugi proces čakati dolgo časa, kar poveča povprečni čakalni čas procesov v pripravljeni čakalni vrsti. Vendar pa nepreventivno razporejanje nima dodatnih stroškov za preklapljanje procesov iz pripravljene čakalne vrste na CPE, vendar pa je načrtovanje togih, saj proces, ki se izvaja, sploh ni izločen za proces z višjo prioriteto.
Ključne razlike med predhodnim in nepreklicnim načrtovanjem
- Osnovna razlika med prednostnim in nepreventivnim razporejanjem je, da se v predhodnem razporejanju CPU dodeli procesom za omejen čas. Medtem ko je v nepreventivnem razporejanju, je procesor dodeljen procesu, dokler se ne konča ali preklopi v stanje čakanja .
- Postopek izvajanja v predhodnem razporejanju se prekine sredi izvršitve, medtem ko se postopek izvršitve v nepreventivnem razporejanju ne prekine sredi izvršitve.
- Preemptive Scheduling ima režijske stroške preklapljanja procesa iz stanja pripravljenosti v stanje delovanja, vise-verz in ohranjanje pripravljene čakalne vrste. Po drugi strani pa nepreventivno razporejanje nima dodatnih stroškov za preklop procesa iz stanja delovanja v stanje pripravljenosti.
- Pri prednostnem razporejanju, če proces z visoko prioriteto pogosto prispe v pripravljeno čakalno vrsto, mora proces z nizko prioriteto čakati dolgo in morda bo moral stradati. Po drugi strani pa je pri nepreventivnem razporejanju, če je CPU dodeljen procesu z večjim časom razpočenja, potem lahko procesi z majhnim časom počitka izginejo.
- Preemptivno razporejanje je precej prilagodljivo, ker je kritičnim procesom omogočen dostop do CPU, ko pridejo v pripravljeno čakalno vrsto, ne glede na to, kateri proces se trenutno izvaja. Nepreventivno razporejanje je togo, saj tudi če kritični proces vstopi v pripravljeno čakalno vrsto, proces, ki teče CPU, ni moten.
- Preemptive Scheduling je stroškovno asociativna, saj mora ohraniti celovitost skupnih podatkov, kar pa ne velja za časovno nepreklicno razporejanje.
Sklep:
Ne gre za to, da je prednostno razporejanje boljše od nepreventivnega razporejanja ali vise-verza. Vse je odvisno od tega, kako razporejanje zmanjša povprečno čakalno dobo procesov in poveča izkoriščenost CPE-ja.