2.5. Перемикання контексту
Перемикання контексту відбувається в
момент, коли процесор перемикається
з одного процесу на інший. При перемиканні
контексту система зберігає контекст
біжучого процесу і встановлює контекст
наступного процесу, вибраного для
використання процесором. БУП- блок
перерваного процесу при цьому обновляється,
а також змінюється значення поля стану
процесу (тобто признак стану виконання
замінюється признакам іншого стану:
готовності, блокування або зомбі).
Зберігається та оновлюється вміст
регістрів процесора, стан стеку, дані
про ідентифікації (про привілеї)
користувача та процесу, а також про
стратегії планування і облікова
інформація.
Система повинна відслідковувати статус
пристроїв вводу-виводу процесу
та інших ресурсів, а також стан всіх
структур даних, пов’язаних з керуванням
пам’яттю. Вивантажений (перерваний)
процес розміщується у відповідну чергу.
Переривання контексту відбувається у
випадках, коли:
процес вивантажується;
процес добровільно відмовляється від
процесора;
процес робить запит до пристрою
вводу-виводу або повинен очікувати
наступної події;
процес переходить з режиму користувача
в режим ядра.
Коли вивантажений процес знову обирається
для використання процесором, його
контекст відновлюється, і виконання
продовжується з місця, на якому він був
зупинений в попередньому сеансі.