Junior
Контекстти алмаштыруу эмне?
sobes.tech AI
AIден жооп
Контекст алмашуу (Context Switching) — бул иштетүү тутуму бир процесстин (же же агымдын) абалын сактап, башка процесстин (же же агымдын) абалын калыбына келтирүү процесси. Бул бир нече процесстин бир процессорду бөлүштүрүүсүнө мүмкүндүк берет.
Алгоритм төмөнкү кадамдарды камтыйт:
- Учурдагы контекстти сактоо: Процессордун регистрлери, буйрук саноочу (PC), стектин абалы жана башка маалыматтар анын сүрөттөмөсүнө (PCB - Процесс башкаруу блогу) сакталат.
- Кийинки процессти тандоо: Операциялык тутумдун пландагычы кийинки аткарылуучу процессти тандайт.
- Контекстти калыбына келтирүү: Тандалган процесстин сакталган абалы анын PCB'синен процессор регистрлери менен жүктөлөт.
Контекст алмашуунун чыгымдары (overhead):
- Абалды сактоо жана калыбына келтирүү үчүн сарпталган убакыт.
- Cache misses себептүү натыйжалуулук жоготуусу, анткени бир процесстин толтурулган кэш башка процесстин пайдалануусуна жараксыз болот.
- Планировщик көрсөтмөлөрүн аткаруу чыгымдары.
Мисал:
Бизде эки процесс бар деп элестетели, A жана B, алар бир процессордун ядросунда иштеп жатат.
// Башында, Процесс A иштеп жатат
// Процесс A CPU ресурстарын колдонуп жатат
// Окуя болот, ал алмашууну талап кылат, мисалы, Процесс A убакыт кванттын аяктоосу
// Процесс Aнын абалы (регистрлер, PC) сакталат
// Операциялык тутум Процесс B'ни ишке киргизүүгө тандайт
// Процесс Bнин абалы жүктөлөт
// Процесс B ишке кирет
Контекст алмашуу — бул операциялык тутумдардагы көп тапшырмалуу (multitasking) механизмдин негизги бөлүгү, ал бир физикалык процессордо бир нече процесстин параллелдик аткарылышынын иллюзиясын түзүүгө мүмкүндүк берет.