Режим віртуальних машин для виконання додатків реального режиму.
Розробники розглянутого сімейства мікропроцесорів у своєму прагненні забезпечити максимально можливу сумісність архітектури пішли не тільки на те, щоб забезпечити можливість програмам, створеним для перших 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.
Дата добавления: 2016-07-27; просмотров: 2043;