Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otvety_PU.docx
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
1.17 Mб
Скачать

16. Инструкции ввода – вывода: обращение программы к пространству ввода-вывода, обмен данными с портами.

Для обращения программы к пространству ввода-вывода предназначены всего четыре инструкции процессора: IN (ввод из порта в регистр процессора), OUT (вы­вод в порт из регистра процессора), INS (ввод из порта в элемент строки памяти) и OUTS (вывод элемента из строки памяти в порт). Последние две инструкции, появившиеся с процессором 80286, могут использоваться с префиксом повтора REP, что обеспечивает быструю пересылку блоков данных между портом и памя­тью. Обмен данными с портами, при котором применяют строковые инструкции ввода-вывода, получил название PIO (программиро­ванный ввод-вывод). Скорость такого обмена превышает скорость стандартного канала прямого доступа (DMA), правда, DMA в отличие от РIO почти не занимает процессорного времени. Разрядность слова, передаваемого за одну инструкцию ввода-вывода, может со­ставлять 8, 16 или 32 бита. В зависимости от «выравненности» адреса по границе слова и разрядности данных используемой шины это слово может передаваться за один или несколько циклов шины с указанием соответствующего нарастающего адреса в каждом цикле обращения к памяти. Инструкции ввода-вывода порожда­ют шинные циклы обмена, в которых вырабатываются сигналы чтения порта/за­писи в порт.

(((В реальном режиме процессора программе доступно все пространство адресов ввода-вывода. В защищенном режиме 32-разрядных процессоров (частным случаем ко­торого является и виртуальный режим V86) имеется возможность программного ограничения доступного пространства ввода-вывода, определяя его максималь­ный размер (начиная с нулевого адреса и в пределах 64 К), а внутри разрешенной области доступ может быть разрешен или запрещен для каждого конкретного ад­реса. Размер области и карта разрешенных портов (IOPermission Bitmap) задает­ся операционной системой в дескрипторе сегмента состояния задачи (TSS). При обращении по неразрешенному адресу вырабатывается исключение процессора, а поведение его обработчика определяется операционной системой. Возможно снятие задачи-нарушителя. Возможен и другой вариант, когда по об­ращению к порту монитор операционной системы выполняет некоторые действия, создавая для программы иллюзию реальной операции ввода-вывода. Таким обра­зом виртуальная машина по операциям ввода-вывода может общаться с виртуальными устройствами. )))

17. Прерывание: аппаратное прерывание, программное прерывание и исключение.

Аппаратные прерывания обеспечивают реакцию процессора на события, проис­ходящие асинхронно по отношению к исполняемому программному коду. Аппаратные прерывания делятся на маскируемые (Маскируемые прерывания используются для сигнализации о событиях в устрой­ствах.) и немаскируемые (Немаскируемые прерывания в PC используются для сигнализации о фатальных аппаратных ошибках.). К аппаратным прерываниям относится и специфичное (и неиспользуемое прикладными программами) прерывание SMI для входа в режим системного управления (SMM).

Программные прерывания по сути прерываниями и не являются — это лишь короткая форма дальнего вызова ограниченного количества процедур, выполняемая инструкцией Int N (N=0-255). Программные прерывания, в частности, используются для вы­зовов сервисов BIOS и DOS.

Исключения генерируются процессором и сопроцес­сором, когда при исполнении инструкций возникают особые условия (например, деление на ноль или срабатывание защиты). Исключения занимают векторы пре­рываний 0-31, которые частично пересекаются с векторами аппаратных преры­ваний ведущего контроллера и NMI, а также с векторами сервисов BIOS. На исключениях строится защита и виртуальная память в многозадач­ных ОС защищенного режима.