logo

Перемикання контексту в ОС (операційна система)

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

Необхідність перемикання контексту

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

Нижче наведено причини, які описують необхідність перемикання контексту в операційній системі.

мультиплексор два до одного
  1. Перемикання одного процесу на інший відбувається не безпосередньо в системі. Перемикання контексту допомагає операційній системі, яка перемикається між декількома процесами, використовувати ресурси центрального процесора для виконання своїх завдань і зберігання свого контексту. Ми можемо відновити обслуговування процесу в той самий момент пізніше. Якщо ми не зберігаємо дані або контекст поточного процесу, збережені дані можуть бути втрачені під час перемикання між процесами.
  2. Якщо процес з високим пріоритетом потрапляє в чергу готовності, поточний процес буде вимкнено або зупинено процесом з високим пріоритетом для виконання своїх завдань у системі.
  3. Якщо будь-який запущений процес потребує ресурсів вводу/виводу в системі, поточний процес буде переключено іншим процесом для використання ЦП. І коли вимога вводу-виводу задовольняється, старий процес переходить у стан готовності до очікування свого виконання в ЦП. Перемикання контексту зберігає стан процесу для відновлення його завдань в операційній системі. В іншому випадку процес повинен перезапустити своє виконання з початкового рівня.
  4. Якщо під час виконання процесу в операційній системі виникають будь-які переривання, стан процесу зберігається у вигляді реєстрів за допомогою перемикання контексту. Після вирішення переривань процес переходить із стану очікування в стан готовності, щоб продовжити виконання в тій самій точці пізніше, де сталася перерва операційної системи.
  5. Перемикання контексту дозволяє одному центральному процесору обробляти декілька запитів процесів одночасно без необхідності використання додаткових процесорів.

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

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

Тригери перемикання контексту

Нижче наведено три типи тригерів перемикання контексту.

файл json
  1. Перериває
  2. Багатозадачність
  3. Перемикач ядро/користувач

Перериває : ЦП запитує дані для читання з диска, і якщо є будь-які переривання, автоматичне перемикання контексту перемикає частину апаратного забезпечення, яке вимагає менше часу для обробки переривань.

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

Перемикач ядро/користувач : використовується в операційних системах під час перемикання між режимом користувача та режимом ядра/користувача.

Що таке друкована плата?

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

Кроки для перемикання контексту

Перемикання контексту процесів включає кілька етапів. На наступній діаграмі показано перемикання контексту двох процесів, P1 на P2, коли переривання, потреби вводу/виводу або процес на основі пріоритету відбувається в черзі готовності PCB.

Що таке перемикання контексту в операційній системі

Як ми бачимо на діаграмі, спочатку процес P1 виконується на ЦП для виконання свого завдання, і в той же час інший процес, P2, знаходиться в стані готовності. Якщо сталася помилка або переривання, або процес потребує введення/виведення, процес P1 перемикає свій стан із запущеного на стан очікування. Перед зміною стану процесу P1 перемикання контексту зберігає контекст процесу P1 у вигляді регістрів і програмного лічильника до PCB1 . Після цього він завантажує стан процесу P2 зі стану готовності PCB2 до запущеного стану.

1нф 2нф 3нф

Під час перемикання процесу P1 на процес 2 виконуються такі дії:

  1. По-перше, перемикання контексту потребує збереження стану процесу P1 у вигляді програмного лічильника та регістрів на PCB (блок програмного лічильника), який знаходиться у робочому стані.
  2. Тепер оновіть PCB1 до процесу P1 і перемістіть процес до відповідної черги, наприклад черги готовності, черги введення/виведення та черги очікування.
  3. Після цього інший процес переходить у стан виконання, або ми можемо вибрати новий процес зі стану готовності, який потрібно виконати, або процес має високий пріоритет для виконання свого завдання.
  4. Тепер нам потрібно оновити PCB (блок керування процесом) для вибраного процесу P2. Це включає в себе перемикання стану процесу з готового на запущений або з іншого стану, як-от заблоковано, вийти або призупинити.
  5. Якщо процесор уже виконує процес P2, нам потрібно отримати статус процесу P2, щоб відновити його виконання в той самий момент часу, коли відбувається системне переривання.

Подібним чином процес P2 вимикається з ЦП, щоб процес P1 міг продовжити виконання. Процес P1 перезавантажується з PCB1 у робочий стан, щоб відновити виконання завдання в тій самій точці. В іншому випадку інформація втрачається, і коли процес виконується знову, він починає виконання на початковому рівні.