Що таке перемикач контексту?

На початку розвитку обчислювальної техніки процесори були суто послідовними машинами. Це допомогло зберегти дизайн простим. Однак це також обмежувало продуктивність. Багатьом процесам потрібно запитувати дані з системної оперативної пам’яті або жорсткого диска. Хоча системна оперативна пам’ять є швидкою, вона все ще не така швидка, як ЦП, залишаючи її бездіяльною, чекаючи даних, доки відповідь не повернеться з оперативної пам’яті. Ситуація ще гірша з даними, які запитуються з жорсткого диска, запам’ятовуючого пристрою, який набагато повільніший за оперативну пам’ять. Тут ЦП може простоювати протягом значних періодів, очікуючи відповіді. На жаль, з послідовними процесорами цієї проблеми просто не уникнути.

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

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

Як працює перемикач контексту?

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

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

Вплив на продуктивність

Процес читання та запису даних під час вмикання або виведення потоку займає деякий час, хоча й небагато, оскільки використовується пам’ять, як правило, високошвидкісна. Однак існують додаткові витрати на продуктивність. Під час перемикання потоків дані в кеш-пам’яті процесора та буфери попереднього потоку можуть не мати відношення до нового потоку. Це може призвести до значного збільшення TLB ( Translation Lookaside Buffer ) і промахів кешу.

Цей ефект незначний, якщо два потоки були породжені одним процесом, оскільки вони, ймовірно, спільно використовуватимуть значні елементи пам’яті. TLB необхідно повністю скинути під час перемикання між потоками з різних методів. Це призводить до 100% відсотка промахів TLB, у той час як відсоток попадань кешу ЦП також значно знижується.

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

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

Висновок

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


Leave a Comment

Що робити, якщо Powerbeats Pro не заряджається у чохлі

Що робити, якщо Powerbeats Pro не заряджається у чохлі

Якщо ваші Powerbeats Pro не заряджаються, скористайтеся іншим джерелом живлення та очистіть навушники. Залиште кейс відкритим під час заряджання навушників.

Як встановити SSD-накопичувач на настільні та портативні ПК

Як встановити SSD-накопичувач на настільні та портативні ПК

Ви щойно купили SSD-накопичувач, сподіваючись оновити внутрішню пам'ять свого ПК, але не знаєте, як його встановити? Прочитайте цю статтю зараз!

Чи можна довіряти функціям конфіденційності Oculus Quest 2?

Чи можна довіряти функціям конфіденційності Oculus Quest 2?

Якщо ви хвилюєтеся, що ваші дані будуть передані іншим особам, ось що вам потрібно знати про налаштування конфіденційності Oculus Quest 2.

Як виправити код помилки GeForce Now 0xC272008F

Як виправити код помилки GeForce Now 0xC272008F

Ви готуєтесь до ігрового вечора, і це буде грандіозний вечір – ви щойно придбали «Зоряні війни: Злочинці» на потоковому сервісі GeForce Now. Відкрийте для себе єдиний відомий спосіб виправлення помилки GeForce Now з кодом 0xC272008F, щоб ви могли знову грати в ігри Ubisoft.

Як підключити ноутбук з Windows 11 до проектора/телевізора

Як підключити ноутбук з Windows 11 до проектора/телевізора

Прочитайте цю статтю, щоб дізнатися про простий покроковий процес підключення ноутбука до проектора або телевізора в ОС Windows 11 та Windows 10.

Як замінити батарейки в контролерах Oculus Quest 2

Як замінити батарейки в контролерах Oculus Quest 2

Якщо ви хочете продовжувати грати, важливо знати, як замінити батарейки на контролері Oculus Quest 2.

5 причин, чому ваш ноутбук перегрівається

5 причин, чому ваш ноутбук перегрівається

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

Все про iOS 26

Все про iOS 26

Apple представила iOS 26 – велике оновлення з абсолютно новим дизайном з матового скла, розумнішими можливостями та покращеннями звичних програм.

Найкращі ноутбуки для студентів у 2025 році

Найкращі ноутбуки для студентів у 2025 році

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

Як відновити доступ до жорсткого диска, виправити помилку неможливості відкрити жорсткий диск

Як відновити доступ до жорсткого диска, виправити помилку неможливості відкрити жорсткий диск

У цій статті ми розповімо вам, як відновити доступ до жорсткого диска, якщо він вийшов з ладу. Давайте продовжимо!