Пребацивање контекста је техника или метод који користи оперативни систем да пребаци процес из једног стања у друго како би извршио своју функцију користећи ЦПУ у систему. Када се изврши пребацивање у систему, он чува статус старог покренутог процеса у облику регистара и додељује ЦПУ новом процесу да изврши своје задатке. Док је нови процес покренут у систему, претходни процес мора да чека у реду чекања. Извршење старог процеса почиње у тој тачки где га је зауставио други процес. Он дефинише карактеристике оперативног система са више задатака у којем више процеса дели исти ЦПУ за обављање више задатака без потребе за додатним процесорима у систему.
Потреба за пребацивањем контекста
Промена контекста помаже да се један ЦПУ дели у свим процесима како би се завршило његово извршавање и сачувао статус системских задатака. Када се процес поново учитава у систему, извршење процеса почиње на истој тачки где постоји конфликт.
Следе разлози који описују потребу за променом контекста у оперативном систему.
- Пребацивање једног процеса на други процес није директно у систему. Промена контекста помаже оперативном систему који се пребацује између више процеса да користи ресурсе ЦПУ-а за обављање својих задатака и чување контекста. Касније можемо да наставимо са сервисом процеса у истом тренутку. Ако не ускладиштимо податке или контекст тренутно покренутог процеса, сачувани подаци могу бити изгубљени током пребацивања између процеса.
- Ако процес високог приоритета падне у ред спремности, процес који је тренутно покренут ће бити затворен или заустављен процесом високог приоритета да би завршио своје задатке у систему.
- Ако било који покренути процес захтева И/О ресурсе у систему, тренутни процес ће бити пребачен од стране другог процеса да користи ЦПУ. А када је И/О захтев испуњен, стари процес прелази у стање спремности да сачека да се изврши у ЦПУ-у. Промена контекста чува стање процеса да би наставио своје задатке у оперативном систему. У супротном, процес треба да поново покрене своје извршење са нивоа иницијала.
- Ако дође до било каквих прекида током покретања процеса у оперативном систему, статус процеса се чува као регистри помоћу промене контекста. Након што разреши прекиде, процес прелази из стања чекања у стање спремности да би наставио са извршавањем у истој тачки касније, где је оперативни систем прекинут.
- Промена контекста омогућава једном ЦПУ-у да истовремено обрађује више захтева процеса без потребе за додатним процесорима.
Пример промене контекста
Претпоставимо да је више процеса ускладиштено у блоку за контролу процеса (ПЦБ). Један процес је у стању рада да би извршио свој задатак уз коришћење ЦПУ-а. Док се процес покреће, други процес стиже у ред спреман, који има висок приоритет да заврши свој задатак користећи ЦПУ. Овде смо користили пребацивање контекста које мења тренутни процес са новим процесом који захтева да ЦПУ заврши своје задатке. Приликом пребацивања процеса, промена контекста чува статус старог процеса у регистрима. Када се процес поново учита у ЦПУ, он почиње извршавање процеса када нови процес заустави стари процес. Ако не сачувамо стање процеса, морамо започети његово извршење на почетном нивоу. На овај начин, пребацивање контекста помаже оперативном систему да прелази између процеса, складишти или поново учита процес када то захтева извршавање својих задатака.
Окидачи за пребацивање контекста
Следе три типа покретача промене контекста, како следи.
- Прекида
- Мултитаскинг
- Прекидач кернел/корисник
Прекида : ЦПУ захтева да се подаци читају са диска, и ако има било каквих прекида, аутоматско пребацивање контекста мења део хардвера коме је потребно мање времена за руковање прекидима.
Мултитаскинг : Промена контекста је карактеристика мултитаскинга која омогућава да се процес пребаци са ЦПУ-а тако да се може покренути други процес. Приликом пребацивања процеса, старо стање се чува да би се наставило извршавање процеса у истој тачки у систему.
Прекидач кернел/корисник : Користи се у оперативним системима када се прелази између корисничког режима и режима језгра/корисника.
Шта је ПЦБ?
ПЦБ (Процесс Цонтрол Блоцк) је структура података која се користи у оперативном систему за складиштење свих података везаних за процес. На пример, када је процес креиран у оперативном систему, ажуриране информације процеса, информације о пребацивању процеса, окончани процес у ПЦБ-у.
Кораци за промену контекста
Постоји неколико корака који укључују промену контекста процеса. Следећи дијаграм представља пребацивање контекста два процеса, П1 на П2, када се прекид, потребе за И/О или процес заснован на приоритету догоди у реду за спремање ПЦБ-а.
Као што можемо да видимо на дијаграму, у почетку, П1 процес ради на ЦПУ-у да изврши свој задатак, а у исто време, други процес, П2, је у стању спремности. Ако је дошло до грешке или прекида или процес захтева улаз/излаз, П1 процес пребацује своје стање из покретања у стање чекања. Пре промене стања процеса П1, промена контекста чува контекст процеса П1 у облику регистара и програмског бројача у ПЦБ1 . Након тога, учитава стање П2 процеса из стања спремности ПЦБ2 у текуће стање.
Следећи кораци се предузимају када се процес П1 пребаци на процес 2:
- Прво, ово пребацивање контекста треба да сачува стање процеса П1 у облику програмског бројача и регистара на ПЦБ (Блок програмског бројача), који је у стању рада.
- Сада ажурирајте ПЦБ1 да обрађује П1 и помера процес у одговарајући ред, као што је ред спремности, И/О ред и ред чекања.
- Након тога, други процес улази у стање покретања, или можемо изабрати нови процес из стања спремности, који треба да се изврши, или процес има висок приоритет да изврши свој задатак.
- Сада морамо да ажурирамо ПЦБ (Процес Цонтрол Блоцк) за изабрани процес П2. То укључује пребацивање стања процеса из стања спремности у стање рада или из другог стања као што је блокиран, излаз или суспендован.
- Ако ЦПУ већ извршава процес П2, потребно је да добијемо статус процеса П2 да бисмо наставили његово извршавање у исто време када је дошло до прекида система.
Слично, процес П2 се искључује из ЦПУ-а тако да процес П1 може да настави са извршавањем. П1 процес се поново учитава са ПЦБ1 у радно стање да би наставио свој задатак у истој тачки. У супротном, информације се губе, а када се процес поново изврши, почиње да се извршава на почетном нивоу.