Priporočena, 2024

Izbira Urednika

Razlika med prednostnim in neprednostnim načrtovanjem v OS

CPU scheduler je odgovoren, da proces dodeli CPU vsakič, ko je CPU v stanju mirovanja. Razporejevalnik CPU izbere postopek iz čakalne vrste za pripravo in proces dodeli CPU. Razporejanje, ki poteka, ko se proces preklopi iz stanja delovanja v stanje pripravljenosti ali iz stanja čakanja v stanje pripravljenosti, se imenuje predkupno razporejanje . Pri načrtovanju, ki poteka, ko se proces konča ali preklopi iz zagona na čakanje na stanje te vrste razporejanja CPU, se imenuje časovno nepreklicno razporejanje . Osnovna razlika med prednostnim in neprednostnim razporejanjem je v njihovem imenu. To je prednostno razporejanje, ki ga je mogoče izločiti; procesi se lahko načrtujejo. V razdelku Nepreklicno razporejanje ni mogoče načrtovati procesov.

Razpravljajmo o razlikah med razporedom prednostnega in nepreklicnega razporejanja na kratko s pomočjo primerjalne tabele, prikazane spodaj.

Primerjalna tabela

Podlaga za primerjavoPredpogojno razporejanjeNepreklicno razporejanje
OsnovnoSredstva 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.
PrekinitePostopek 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.
ZgorajPredhodno razporejanje ima režijske stroške za načrtovanje procesov.Nepreklicno razporejanje nima režijskih stroškov.
ProžnostPreventivno razporejanje je prilagodljivo.Nepreventivno razporejanje je togo.
StroškiPredhodno 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.

Medtem se je izvedel P3, proces P1 prispe v času 2. Sedaj je preostali čas za P3 (3 milisekunde) manjši od časa, ki ga zahtevajo procesi P1 (4 milisekund) in P2 (5 milisekund). Tako se lahko P3 nadaljuje. Medtem ko se P3 nadaljuje, proces P0 prispe v čas 3, zdaj pa je preostali čas za P3 (2 milisekundi) enak času, ki ga zahteva P0 (2 milisekundi). Torej se P3 nadaljuje in po zaključku P3 je CPU dodeljen P0, ker ima manj časa kot drugi. Ko se P0 konča, se CPU dodeli P1 in nato P2.

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.

Rešimo zgornji primer razporejanja na način, ki ni vnaprej. Ker je na začetku proces P2 prispel v čas 0, je CPU dodeljen procesu P2, za izvedbo pa je potrebnih 6 milisekund. Med vsemi procesi, npr. P0, P1, P3 pride v pripravljeno čakalno vrsto. Toda vsi čakajo, da proces P2 dokonča svoj procesni interval. Potem proces, ki prispe po P2, tj P3 se nato dodeli CPU, dokler ne konča, da je burst čas. Podobno se izvrši P1, CPU pa kasneje dobi proces P0.

Ključne razlike med predhodnim in nepreklicnim načrtovanjem

  1. 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 .
  2. Postopek izvajanja v predhodnem razporejanju se prekine sredi izvršitve, medtem ko se postopek izvršitve v nepreventivnem razporejanju ne prekine sredi izvršitve.
  3. 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.
  4. 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.
  5. 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.
  6. 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.

Top