Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АСВТ.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
105.52 Кб
Скачать

Получение доступа к портам в Windows 2000/xp

Windows 95/98 допускают беспрепятственный доступ к портам. Если программу, использующую команды работы с портами попытаться выполнить в Windows, основанной на ядре NT, то при обращении к порту выведется сообщение об ошибке, связанной с попыткой выполнения привилегированной команды. Это сообщение вызвано тем, что эти версии Windows блокируют прямое обращение к аппаратным ресурсам компьютера. Для обращения к портам Windows NT/2000/XP следует использовать специальный драйвер. Таким образом Windows отделяет уровень пользовательских программ от аппаратного ПО, что существенно повышает надежность и защищенность ОС. Обычные программы обязаны обращаться к драйверу, а драйвер блокирует одновременное использование аппаратных ресурсов, если программа не сообщит о возможности их разделения, именно так работают стандартные функции Windows для последовательных портов. Основа защиты ввода-вывода – это 4ех уровневая система привилегий процессора х86. Наиболее привилегированный уровень 00, наименее 03. ОС Windows использует только 2 крайних уровня: уровень 0 для режима ядра с полным доступом, уровень 3 для ограниченного режима пользователя. Текущий уровень привилегий СPL хранится в 2ух младших битах регистра cs. Защита ввода-вывода имеет 2 уровня проверок: в битах 12 и 13 регистра ef процессор хранит уровень привилегий, определяющий разрешение прямого доступа к портам ввода-вывода, устанавливает значение 0 для программ, выполняющихся на уровне ядра, для остальных выполняется вторая стадия проверки. Вторая стадия проверки защиты реализуется с помощью карты разрешений ввода-вывода IOPM, которая представляет собой битовый массив, каждый бит которого соответствует порту ввода-вывода, если бит равен 1, то доступ запрещен и при доступе к нему произойдет исключение, если бит равен 0, то к соответствующему порту предоставлен прямой беспрепятственный доступ. Таблица IOPM хранится в основной памяти. Адресное пространство может включать 65536 8битовых … таким образом Windows программа выполняющаяся с привилегиями «пользователь» может работать с портами через спец. Драйвер, для этого существует специальные функции API, которые предоставляют множество функций для возможностей работы с портами. Стандартная работа с портами Windows такова: Windows работает с портами также, как с файлами. Для открытия порта используется функция CreateFile, для закрытия CloseHandle. Для чтения и передачи также используются файловые функции Read(Write)File. Кроме файловых функций для коммуникационных портов Windows также предоставляет специальные функции. Схема работы с портом:

Для использования порта необходимо получить его идентификатор, с его помощью будет происходить все остальное обращение с портом. Windows-программа в режиме прямого доступа тратит примерно 30 тактов процессора. А для работы через драйвер от 6 до 12 тысяч тактов.

Оперативная память.

Иерархическая организация памяти.

программы

Когда компьютеры обходились без ОС, а о многозадачности никто и не слышал, программы приходилось загружать в память вручную, зато каждая из них монопольно владела всеми ресурсами компьютера, в том числе и RAM. С появлением многозадачных систем встала проблема разделения ресурсов, в первую очередь именно ОЗУ и что не маловажно защиты «владений» от случайного или преднамеренного воздействия других программ. В частности требовалось обеспечить независимость работы приложений от начального адреса загрузки и "втиснуть" множество одновременно выполняющихся программ в ограниченный объем ОЗУ. Решение этих задач потребовало создания многоуровневой иерархии в организации памяти, в результате чего непосредственный доступ к ней был утрачен. Таким образом сейчас ОЗУ – это целая подсистема компьютера, состоящая из множества взаимодействующих друг с другом логических и физических компонентов.

Менеджер виртуальной памяти

Менеджер куч

Библиотеки управления памятью

Диск

ОЗУ

Контроллер памяти

КЭШ контроллер

процессор

  1. На вершине иерархии находятся прикладные библиотеки управления памятью, реализующие унифицированный интерфейс с сервисом менеджера куч.

  2. Менеджер куч (менеджер динамической памяти) обеспечивает поддержку базовых операций с памятью: выделение блока памяти, его освобождение, изменение размеров блока и т.д.

  3. Уровнем ниже лежит менеджер виртуальной памяти, который в тесной координации с процессором реализует:

3.1. виртуальные адресные пространства, т.е. абстрагируется от реальных физических адресов и позволяет назначать ячейкам памяти произвольные адреса, благодаря этому множество одновременно запущенных приложений могут быть запущены по одним и тем же виртуальным адресам, при чем адресные пространства их не будут пересекаться. дальнейшее развитие идей виртуальных адресных пространств, любая ячейка виртуальной памяти может находиться как в ОЗУ, так и на дисковом накопителе.

3.2.

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