Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Theme07.doc
Скачиваний:
5
Добавлен:
21.12.2018
Размер:
429.57 Кб
Скачать

Мал. 7.8 Трансляція лінійної адреси в мікропроцесорах і80x86.

Кожна з таблиць PDE і РТЕ складається з 1024 елементів (210=1024). У свою чергу, кожен елемент (дескриптор сторінки) має довжину 4 байти (32 біта), тому розмір цих таблиць саме відповідає розміру сторінки. Оцінимо тепер цю двохкрокову схему трансляції з позицій витрати пам'яті. Кожен дескриптор описує сторінку розміром 4 Кбайт. Отже, одна таблиця сторінок, що містить 1024 дескриптора, описує простір пам'яті в 4 Мбайт. Якщо наша задача користується віртуальним адресним простором, наприклад, у 50 Мбайт (припустимо, що мова йде про деякий графічний редактор, що обробляє зображення, що складається з великої кількості пикселов), то для опису цієї пам'яті необхідно мати 14 сторінок, що містять таблиці РТЕ. Крім цього, нам буде потрібно для цієї задачі ще одна таблиця PDE (теж розміром в одну сторінку), у якій 14 дескрипторів будуть вказувати на місцезнаходження згаданих таблиць РТЕ. Інші дескриптори PDE можуть бути не задіяні. Разом, для опису 50 Мбайт адресного простору задачі буде потрібно всього 15 сторінок, тобто 60 Кбайт пам'яті, що можна вважати прийнятним.

Якби не був використаний такий двохкроковий механізм трансляції, то втрати пам'яті на опис адресного простору могли б скласти 4(Кбайт) * 210 = 4 (Мбайт)! Очевидно, що це вже неприйнятне рішення.

Отже, мікропроцесор для кожної задачі, для якої в нього є TSS, дозволяє мати таблицю PDE і деяку кількість РТЕ. Оскільки це дає можливість адресуватися до будь-якого байта з 232, а шина адреси саме і дозволяє використовувати фізичну пам'ять з таким обсягом, то можна як би відмовитися від сегментного способу адресації. Іншими словами, якщо вважати, що завдання полягає з одного єдиного сегмента, що, у свою чергу, розбитий на сторінки, то фактично ми одержуємо тільки один сторінковий механізм роботи з віртуальною пам'яттю. Цей підхід одержав назву «плоскої пам'яті». При використанні плоскої моделі пам'яті спрощується створення і операційних системи, і систем програмування. Крім цього, зменшуються витрати пам'яті для підтримки системних інформаційних структур. Тому в абсолютній більшості сучасних 32-розрядних ОС, створюваних для мікропроцесорів i80x86, використовується плоска модель пам'яті.

5. Режим віртуальних машин для виконання додатків реального режиму.

Розробники розглянутого сімейства мікропроцесорів у своєму прагненні забезпечити максимально можливу сумісність архітектури пішли не тільки на те, щоб забезпечити можливість програмам, створеним для перших 16-розрядних ПК, без проблем виконуватися на комп'ютерах з більш пізніми моделями мікропроцесорів за рахунок введення реального режиму роботи. Вони також забезпечили можливість виконання 16-розрядних додатків реального режиму за умови, що сам процесор при цьому функціонує в захищеному режимі роботи й операційна система, використовуючи відповідні апаратні засоби мікропроцесора, організує мультипрограмний (мультизадачный) режим. Іншими словами, мікропроцесори i80x86 підтримують можливість створення операційних середовищ реального режиму при роботі мікропроцесора в захищеному режимі. Якщо умовно назвати 16-розрядні додатки DOS-додатками (оскільки в абсолютній більшості випадків це саме так), то можна сказати, що введено підтримку для організації віртуальних DOS-машин, що працюють разом зі звичайними 32-бітовими додатками захищеного режиму. Це навіть знайшло відображення в назві режиму роботи мікропроцесорів і80x86 — режим віртуального процесора i8086, іноді (для стислості) його називають режимом V86 чи просто віртуальним режимом, — при якому у захищеному режимі роботи може виконуватися код DOS-додатка. Мультизадачність при виконанні декількох програм реального режиму буде підтримана апаратними засобами захищеного режиму.

Перехід у віртуальний режим здійснюється за допомогою зміни біта VM (virtual mode) у регістрі EFLAGS. Коли процесор знаходиться у віртуальному режимі, для адресації пам'яті використовується схема реального режиму роботи - (сегмент: зсув) з розміром сегментів до 64 Кбайт, що можуть розташовуватися в адресному просторі розміром у 1 Мбайт, однак отримані адреси вважаються не фізичними, а лінійними. У результаті застосування сторінкової трансляції здійснюється відображення віртуального адресного простору 16-бітового додатка на фізичний адресний простір. Це дозволяє організувати рівнобіжне виконання декількох задач, розроблених для реального режиму, так ще і разом зі звичайними 32-бітовими додатками потребуючих захищеного режиму роботи.

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

Питання, зв'язане з операціями введення/виведення, які недоступні для звичайних додатків, зважується аналогічно. При спробі виконати неприпустимі команди введення/виведення виникають переривання, і необхідні операції виконуються операційною системою, хоча задача про цьому і «не підозрює». При виконанні команд IN, OUT, INS, OUTS, CLI, STI процесор, що знаходиться у віртуальному режимі і виконує код на рівні привілеїв третього (самого нижнього) кільця захисту, за рахунок виникаючих унаслідок цього переривань переводиться на виконання високо привілейованого коду операційної системи.

Таким чином, ОС можуть цілком віртуалізувати ресурси комп'ютера: і апаратні, і програмні, створюючи інше повноцінне операційне середовище; при існуванні так званих нативных додатків, створюваних по власних специфікаціях даної ОС. Дуже важливим моментом для організації повноцінної віртуальної машини є реалізація віртуалізації не тільки програмних, але й апаратних ресурсів. Так, наприклад, в ОС Windows NT ця задача виконана явно невдало, тоді як у OS/2 є повноцінна віртуальна машина як для DOS-додатків, так і для додатків, що працюють у середовищі специфікацій Win16. Правда, останнім часом це вже перестало бути актуальним, оскільки з'явилася велика кількість додатків, що працюють по специфікаціях Win32 API.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]