Рецоммендед, 2020

Избор Уредника

Разлика између преемптиве и нон-превентног планирања у оперативном систему

Одговорност је ЦПУ распоређивача да додијели процес ЦПУ-у кад год је ЦПУ у стању мировања. ЦПУ распоређивач бира процес из реда спремности и додељује процес ЦПУ-у. Распоређивање које се дешава када се процес пребаци из стања рада у стање спремности или из стања чекања у стање спремности се зове Преемптиве Сцхедулинг . Распоређивање које се дешава када се процес заврши или се пребаци из покретања на чекање стања ове врсте распоређивања ЦПУ-а се зове Нон-Преемптиве Сцхедулинг . Основна разлика између превентивног и непрецептивног распоређивања лежи у њиховом самом имену. То је преемптивно распоређивање које се може избјећи; процеси се могу заказати. У Не-превентивном распоређивању, процеси се не могу заказати.

Дозволите нам да укратко разговарамо о разликама између распореда Преемптиве и Не-превентивног распореда уз помоћ табеле за упоређивање приказане испод.

Цомпарисон Цхарт

Основа за поређењеПреемптиве СцхедулингНепрекидно заказивање
БасицРесурси се додељују неком процесу на ограничено време.Када се ресурси доделе процесу, процес га задржава док не заврши своје бурст време или се пребаци на стање чекања.
ПрекидатиПроцес се може прекинути између.Процес се не може прекинути док се не прекине или прелази у стање чекања.
ГладовањеАко процес високог приоритета често стигне у ред чекања, процес ниског приоритета може изгладнити.Ако процес са дугим временом бурст-а изводи ЦПУ, онда други процес са мање времена пражњења процесора може гладовати.
ОверхеадПреемптивно распоређивање има режијске трошкове планирања процеса.Распоређивање без претходних обавеза нема режијске трошкове.
ФлексибилностПреемптивно заказивање је флексибилно.Непревентивно заказивање је ригидно.
ЦостПреемптивно планирање је повезано са трошковима.Непревентивно заказивање није трошковно асоцијативно.

Дефиниција Преемптиве Сцхедулинг

Преемптивно планирање је оно које се може урадити у околностима када се процес пребацује из стања рада у стање приправности или из стања чекања у стање спремности . Овде се ресурси (ЦПУ циклуси) додељују процесу у ограниченом временском периоду, а затим се одузимају, а процес се поново поставља у ред чекања поново ако још увек има преостало време пражњења процесора. Процес остаје у спремном реду док не добије следећу шансу за извршење.

Ако процес са високим приоритетом стигне у ред чекања, не мора да чека на тренутни процес да заврши своје бурст време. Уместо тога, тренутни процес је прекинут у средини извршења и смештен је у ред чекања док процес са високим приоритетом не користи процесорске циклусе. На овај начин, сваки процес у реду спреман добија неко време да покрене ЦПУ. То чини флексибилним планирање преемптивног планирања, али повећава оптерећење пребацивања процеса из стања у стање спремности у стање приправности и висе-стих.

Алгоритми који раде на преемптивни распоред су Роунд Робин. Најкраћи први посао (СЈФ) и заказивање приоритета могу или не морају бити под прелиминарним распоредом.

Узмимо пример Преемптиве Сцхедулинг-а, погледајте на слици испод. Имамо четири процеса П0, П1, П2, П3. Од тога, П2 стиже у време 0. Дакле, ЦПУ је додељен процесу П2 јер не постоји други процес у реду. У међувремену, П2 је извршавао, П3 је стигао у време 1, сада је преостало време за процес П2 (5 милисекунди) које је веће од времена које захтева П3 (4 мили-сек). Тако је ЦПУ додељен процесору П3.

У међувремену, П3 је извршавао, процес П1 стиже у време 2. Сада је преостало време за П3 (3 милисекунде) мање од времена које захтева процес П1 (4 милисекунде) и П2 (5 милисекунди). Дакле, дозвољено је да П3 настави. Док се П3 наставља процес П0 стиже у време 3, сада је преостало време за П3 (2 милисекунде) једнако времену које захтева П0 (2 милисекунде). Тако се П3 наставља и након што П3 заврши, ЦПУ је додељен П0 јер има мање времена за пуцање од других. По завршетку П0, ЦПУ је додељен П1, а затим П2.

Дефиниција распореда без превентивног приступа

Не-превентивно планирање је оно које се може применити у околностима када се процес заврши, или се процес пребацује из стања у чекање . У Не-превентивном распореду, када се ресурси (ЦПУ) додијеле процесу, процес задржава ЦПУ док се не заврши или досегне стање чекања.

За разлику од претходног распоређивања, непрецептивно распоређивање не прекида процес који изводи ЦПУ у сред извршавања. Уместо тога, он чека да процес заврши своје време пражњења процесора и онда може да додели процесор другом процесу.

У Не-превентивном распоређивању, ако се процес са дугим ЦПУ бурст временом извршава, други процес ће морати дуго чекати што повећава просјечно вријеме чекања процеса у реду спремности. Међутим, непрецептивно распоређивање нема оптерећење за пребацивање процеса са реда чекања на процесор, али чини распоређивање ригидним пошто процес у извршењу није чак преемптиран за процес са већим приоритетом.

Дозволите да решимо горњи пример распоређивања на начин који се не користи. Пошто је иницијално процес П2 стигао у време 0, тако да је ЦПУ додељен процесу П2 потребно је 6 милисекунди за извршење. Између свих процеса тј. П0, П1, П3 стиже у ред чекања. Али сви чекају да процес П2 заврши своје време пражњења процесора. Затим процес који стиже након П2 тј. П3 је онда додијељен ЦПУ-у док се не заврши његово бурст вријеме. Слично томе, П1 извршава, а ЦПУ се касније даје процесу П0.

Кључне разлике између распоређивања превентивног и непревентивног распореда

  1. Основна разлика између преемптиве и нон-преемптиве распореда је у томе што се у превентивном распореду ЦПУ додељује процесима за ограничено време. Док је у Не-превентивном распоређивању, ЦПУ је додељен процесу док се не заврши или пребаци у стање чекања .
  2. Процес извршавања у преемптиве распоређивању се прекида у средини извршења, док се процес извршавања у не-превентивном планирању не прекида у средини извршења.
  3. Преемптиве Сцхедулинг има оптерећење за пребацивање процеса из стања спремности у стање рада, висе-верз и одржавање реда спремности. С друге стране, непрецептивно распоређивање нема оптерећење за пребацивање процеса из стања у стање спремности.
  4. У преемптиве распоређивању, ако процес са високим приоритетом често долази у ред чекања, процес са ниским приоритетом мора чекати дуго, и можда ће морати да гладује. С друге стране, у непрецептивном распореду, ако је ЦПУ додељен процесу са већим временом бурст-а, онда процеси са малим временом пуцања можда морају гладовати.
  5. Преемптивно распоређивање је прилично флексибилно јер је критичним процесима дозвољен приступ ЦПУ-у док они долазе у ред чекања, без обзира на то који се процес тренутно извршава. Непревентивно планирање је ригидно, јер чак и ако критични процес уђе у ред чекања, процес који покреће ЦПУ није нарушен.
  6. Преемптиве Сцхедулинг је трошковно асоцијативан јер мора одржавати интегритет дијељених података што није случај са распоређивањем без превентивног приступа.

Закључак:

Није да је преемптивно заказивање боље од непрецептивног распоређивања или висе-стиха. Све зависи од тога како распоређивање минимизира просјечно вријеме чекања процеса и максимизира кориштење ЦПУ-а.

Top