
- •Процессор Intel в реальном режиме.
- •Регистры процессора.
- •Сегментные регистры.
- •Регистр флагов.
- •Способы адресации.
- •Архитектура компьютера.
- •Основные блоки процессора.
- •Организация памяти в микропроцессоре.
- •Страничная адресация. Адресация в защищенном режиме.
- •Механизм защиты.
- •Прерывания и исключения.
- •Обработчики прерываний и прерывания от внешних устройств.
- •Контроллер прерываний.
- •Прерывания в защищенном режиме.
- •Программирование на уровне портов ввода-вывода.
- •Маскирование и размаскирование.
- •Получение доступа к портам в Windows 2000/xp
- •Оперативная память.
- •Устройство и принципы функционирования озу
- •Типы микросхем памяти.
Получение доступа к портам в 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 тысяч тактов.
Оперативная память.
Иерархическая организация памяти.
программы
Менеджер виртуальной памяти
Менеджер куч
Библиотеки управления
памятью
Диск
ОЗУ
Контроллер памяти
КЭШ контроллер
процессор
На вершине иерархии находятся прикладные библиотеки управления памятью, реализующие унифицированный интерфейс с сервисом менеджера куч.
Менеджер куч (менеджер динамической памяти) обеспечивает поддержку базовых операций с памятью: выделение блока памяти, его освобождение, изменение размеров блока и т.д.
Уровнем ниже лежит менеджер виртуальной памяти, который в тесной координации с процессором реализует:
3.1. виртуальные адресные пространства, т.е. абстрагируется от реальных физических адресов и позволяет назначать ячейкам памяти произвольные адреса, благодаря этому множество одновременно запущенных приложений могут быть запущены по одним и тем же виртуальным адресам, при чем адресные пространства их не будут пересекаться. дальнейшее развитие идей виртуальных адресных пространств, любая ячейка виртуальной памяти может находиться как в ОЗУ, так и на дисковом накопителе.
3.2.