Организация ввода-вывода. Часть 1. Виртуальные драйверы и виртуальное окружение WINDOWS. Рощин А.В. - 19 стр.

UptoLike

Составители: 

19
дескрипторов. Когда инструкция ввода или вывода выполняется в
защищенном режиме, процессор сравнивает IOPL сегмента с текущим
уровнем привилегий выполняемого сегмента кода (называемый CPL-
current privilege level, текущий уровень привилегий). Если CPL < IOPL,
сегмент имеет достаточно привилегий, и процессор выполняет
инструкцию. Если CPL > = IOPL, процессор использует IOPM как второй
уровень защиты. IOPM – побитовая карта портов: бит 1 означает "нет
доступа", бит 0 – "доступ разрешен
". Так, если CPL > = IOPL и бит IOPM
соответствующего порта сброшен, инструкция выполняется. Но если бит
IOPM этого порта установлен, процессор генерирует соответствующее
исключение.
Для Windows 95 IOPM – доминирующий механизм определения
привилегий для всех виртуальных машин. В виртуальных машинах DOS,
IOPM определяет привилегии ввода-вывода приложения, потому что
менеджер виртуальных машин VMM управляет приложениями DOS в
режимеV86, где процессор игнорирует IOPL и
учитывает только IOPM при
обработке инструкций ввода и вывода. В виртуальных машинах Win16 и
Win32, IOPM определяет привилегии ввода-вывода приложения, потому
что менеджер виртуальных машин VMM управляет всеми процессами
Win16 и Win32 с CPL > IOPL. Хотя приложения Win16 и Win32 работают в
защищенном режиме, где процессор проверяет IOPL, эта проверка всегда
кончается последующей проверкой IOPM.
Управляя IOPM, Windows 95 может перехватывать доступ к
определенным портам
при разрешении свободного доступа к другим
портам. Windows 95 использует эту способность для виртуализации
физических устройств, расположенных по адресам, которые следует
перехватить. При обработке доступа к устройству через виртуальный
драйвер устройства (VxD), Windows 95 может обслуживать раздельную
                                   19



дескрипторов. Когда инструкция ввода или вывода выполняется в
защищенном режиме, процессор сравнивает IOPL сегмента с текущим
уровнем привилегий выполняемого сегмента кода (называемый CPL-
current privilege level, текущий уровень привилегий). Если CPL < IOPL,
сегмент    имеет   достаточно   привилегий,   и   процессор   выполняет
инструкцию. Если CPL > = IOPL, процессор использует IOPM как второй
уровень защиты. IOPM – побитовая карта портов: бит 1 означает "нет
доступа", бит 0 – "доступ разрешен". Так, если CPL > = IOPL и бит IOPM
соответствующего порта сброшен, инструкция выполняется. Но если бит
IOPM этого порта установлен, процессор генерирует соответствующее
исключение.
     Для    Windows 95 IOPM – доминирующий механизм определения
привилегий для всех виртуальных машин. В виртуальных машинах DOS,
IOPM определяет привилегии ввода-вывода приложения, потому что
менеджер виртуальных машин VMM управляет приложениями DOS в
режимеV86, где процессор игнорирует IOPL и учитывает только IOPM при
обработке инструкций ввода и вывода. В виртуальных машинах Win16 и
Win32, IOPM определяет привилегии ввода-вывода приложения, потому
что менеджер виртуальных машин VMM управляет всеми процессами
Win16 и Win32 с CPL > IOPL. Хотя приложения Win16 и Win32 работают в
защищенном режиме, где процессор проверяет IOPL, эта проверка всегда
кончается последующей проверкой IOPM.
     Управляя IOPM, Windows 95 может перехватывать доступ к
определенным портам при разрешении свободного доступа к другим
портам. Windows 95 использует эту способность для виртуализации
физических устройств, расположенных по адресам, которые следует
перехватить. При обработке доступа к устройству через виртуальный
драйвер устройства (VxD), Windows 95 может обслуживать раздельную