Перемикання контексту

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Перемикання контексту – це процес зміни середовища, в якому відбувається активність. В інформаційних технологіях перемикання контексту може відбуватись в багатозадачних системах. Перемикання контексту процесу, це перемикання виконання від однієї програми до іншої, при тому не вимикаючи інші задачі, а також перемикання контексту між різними потоками в рамках виконання однієї програми (процесу).

Перемикання контексту дозволяє реалізовувати одночасне виконання процесів за допомогою одного центрального процесора, це важлива особливість багатозадачної операційної системи, але під час процесу перемикання контексту відбувається збереження середовища, стану поточного об'єкту (потоку, процесу), та завантаження нового, на це витрачається ресурси процесора. Часте перемикання контексту призводить до надмірної трати ресурсів, що приводить до уповільнення продуктивності.[1]

З точки зору процесора, який є безпосередньо виконавцем перемикання контексту, існують окремі стани, регістри та оптимізації для реалізації перемикання контексту.

Накладні витрати та оптимізація[ред. | ред. код]

Перемикання контексту потребує значних обчислювальних зусиль. Окрім користувацьких застосунків, воно також використовується для потреб операційної системи, обробки даних від внутрішніх та зовнішніх пристроїв, мережі, а також перехід між режимом ядра та користувача. Значна частина розробки операційних систем та процесорів спрямована на оптимізацію цього процесу.

Під час перемикання з одного процесу на інший виникає невелика затримка на виконання адміністративних операцій, таких як збереження та завантаження регістрів та адресних просторів, оновлення різних таблиць і списків. Точні дії під час перемикання контексту залежать від архітектури процесора, операційної системи та кількості ресурсів, необхідних для відтворення стану.

Зменшити витрати на перемикання контексту можна декількома методами: зменшити частоту та ймовірність потреби в перемиканні контексту та оптимізування самого процесу перемикання, в тому числі апаратні оптимізації для швидкого збереження та відновлення регістрів та адресних просторів.

Зменшенню вірогідності суттєво допомагає збільшення обчислювальних ядер (потоків) в процесорах, а також оптимізацією займається планувальник багатозадачності операційної системи.

Для оптимізації процесу використовуються більш легковажні потоки в рамках спільного процесу. Вони мають деякі однакові структури спільного процесу, тому перемикання контексту між ними витрачає менше часу, такий підхід надає перевагу в тому, що в системах з декількома процесорними ядрами можливе використання одночасно більше ніж одного ядра одним процесом.

Див. також[ред. | ред. код]

Примітки[ред. | ред. код]

  1. Tanenbaum, Andrew S.; Bos, Herbert (20 березня 2014). Modern Operating Systems (англ.) (вид. 4th). Pearson. ISBN 978-0133591620.

Посилання[ред. | ред. код]