НОУ ІНТУІТ, Лекція, Мультипрограмний режим роботи мікропроцесора

Отримана діаграма виконання програм представлена ​​рис. 6.2.

роботи

Побудувавши аналогічну діаграму роботи ЕОМ для Км = 3, отримаємо результати, подані у табл. 6.2 (Км = 1 відповідає однопрограмній роботі ЕОМ, і результати цього випадку можуть бути отримані розрахунковими методами).

Аналіз показує, що зі збільшенням коефіцієнта мультипрограмування пропускна здатність ЕОМ буде збільшуватися, прагнучи до певної межі, що визначається характеристиками ресурсів ЕОМ. У той самий час кожна програма виконуватиметься у загальному випадку триваліший час через необхідність очікування звільненняресурсів, зайнятих іншими програмами. При збільшеннікоефіцієнта мультипрограмуваннязміна значень показників ефективності залежить від того, в якому стані знаходиться система: навантаження або недовантаження. Якщо будь-якіресурсиЕОМ задіяні досить інтенсивно, то додавання нової програми, яка активно використовує ці ресурси, буде малоефективним.

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

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

Для підтримки роботи з сегментом стану задачі служить 16-розряднийрегістр задачіTR, до якого заноситьсяселектордескриптора TSS, і пов'язаний з TR програмно недоступний 64-розрядний "тіньовий" регістр, в який завантажуєтьсядескрипторTSS. Дескриптори сегментів стану задач зберігаються лише вглобальній таблиці дескрипторівGDT. Для перемикання задач використовуєтьсяшлюз задачі.

лекція

Поле селектора повернення забезпечує зв'язок даної задачі з програмою, що викликала її.Селектор повернення- цеселекторTSS попередньої задачі, при виконанні якої відбувся виклик даного завдання (TR попередньої задачі, якщо передбачається повернення до неї).

Біт пастки T використовується при налагодженні програмного забезпечення аналогічно біту TF в регістрі прапорів: якщо T = 1, то при перемиканні на це завдання виникає переривання.

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

Обсяг додаткової частини TSS залежить від кількості службової інформації ОС, що визначається характером розв'язуваного завдання, та розмірів бітової карти введення/виводу, що застосовується. Додаткова частина TSS може бути відсутня.

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

Після поля межі має бути вказана довжина щонайменше 104 байт ( довжина обов'язкової частини TSS ). Якщо зазначений розмір сегмента менше 104 байт, відбувається переривання.

Байт доступудескриптора TSS має такий вигляд (рис. 6.4):

Він має ряд особливостей порівняно з дескрипторами звичайних сегментів.

Біт зайнятостіB встановлюється в 1 при перемиканні на це завдання. Використовується для виявлення спроби виклику завдання, яке перервано. Перемикання завдань здійснюється лише якщо B = 0 .

При B = 1 виникає переривання. Установка B = 1 в дескрипторі TSS проводиться командами JMP і CALL , що перемикають процесор на виконання даної задачі. При цьому інші звернення до мультипрограмної системи до цього завдання будуть заборонені.

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

Значення M = 0 забезпечує сумісність з мікропроцесором i286, в якому вперше з'явився мультипрограмний режим роботи .