Разрешается получение доступа к данным высших уровней. К низшим - запрещены. Возможен вызов процедур разных уровней с помощью функции CALL, но строго контролируемым образом. Для этого процедура CALL должна содержать специальный селектор, который определяет дескриптор, называемый шлюзом вызова (call gate), который передает адрес вызываемой процедуры
38. Устройства ввода-вывода. Доступ к УВВ.
У каждого устройства ввода/вывода есть контроллер для общения с ЦП. Контроллер и процессор общаются через специальные регистры, располагающиеся на контроллере. При помощи управляющих регистров процессор управляет устройством вводы/вывода. Из регистров данных процессор может узнать состояние устройства, а так же выдаваемую информацию. Существует 2 альтернативных подхода для доступа к регистрам:
- в первом варианте каждому регистру назначается номер порта ввода/вывода и, при помощи специальных команд, происходит общение с этими регистрами. Специальные команды:
‡ in reg, port - считывает данные из порта в определенный регистр процессора;
‡ out port, reg - записывает данные из регистра процессора в определенный порт;
- второй подход состоит в отображении всех управляющих регистров на адресное пространство в памяти. Обычно для регистров отводятся адреса на вершине адресного пространства. Доступ к управляющим регистрам осуществляется с помощью обычных операций для работы с памятью.
Достоинства:
‡ для обращения к устройствам ввода/вывода не требуется специальных команд, например in и out;
‡ легко реализовывается защита от пользовательских процессов - достаточно исключить часть адресного пространства, на которую отображаются управляющие регистры из адресного пространства пользователей. Для доступа к определенному устройству, пользовательской программе будет дан доступ к странице памяти, на которую отображен соответствующий регистр;
‡ каждая команда процессора, которая обращается к памяти, может с тем же успехом обращаться к регистрам устройств ввода/вывода, например команда tsl.
Недостатки:
‡ в большинстве современных компьютеров используется кэширование памяти, поэтому необходима специальная аппаратура либо программные средства, которые позволяют запрещать кэширование для определенных страниц;
‡ при едином адресном пространстве все модули памяти и все устройства ввода/вывода должны изучать все обращения от процессора к памяти для того, чтобы определить, на какие обращения им реагировать.
39. Прямой доступ к памяти.
Прямой доступ к памяти (DMA)
Общаясь с устройствами ввода/вывода, ЦП должен устанавливать управляющие регистры и читать регистры данных, а так же реагировать на все аппаратные прерывания. Это значительно уменьшает эффективность использования компьютера за счет частых переключений контекста. Чтобы избавиться от этих недостатков используется система, называемая прямым доступом к памяти (Direct Memory Access). В ее основе лежит аппаратный DMA контроллер. DMA контроллер может получать доступ к шине данных независимо от ЦП. Он так же имеет управляющие регистры и регистры данных. Через эти регистры ЦП программирует контроллер DMA на выполнение операций ввода/вывода, например номер порта, количество байт, направление переноса и т.д.