Системный уровень является переходным. Программы этого уровня обеспечивают взаимодействие других программ компьютера с программами базового уровня и непосредственно с аппаратным обеспечением. От программ этого уровня зависят эксплуатационные показатели всей вычислительной системы. При подсоединении к компьютеру нового оборудования на системном уровне должна быть установлена программа, обеспечивающая для остальных программ взаимосвязь с устройством. Конкретные программы, предназначенные для взаимодействия с конкретными устройствами, называют драйверами.
Другой класс программ системного уровня отвечает за взаимодействие с пользователем. Благодаря ему можно вводить данные в вычислительную систему, руководить ее работой и получать результат в удобной форме. Это средства обеспечения пользовательского интерфейса, от них зависит удобство и производительность работы с компьютером.
Совокупность программного обеспечения системного уровня образует ядро операционной системы компьютера.
УРОК 21. Современные компьютерные устройства (7 класс)
Операционная система (ОС) – это комплекс программ, обеспечивающих:
· управление ресурсами, т.е. согласованную работу всех аппаратных средств компьютера;
· управление процессами, т.е. выполнение программ, их взаимодействие с устройствами компьютера, с данными;
· пользовательский интерфейс, т.е. диалог пользователя с компьютером, выполнение определенных простых команд-операций по обработке информации.
Операционная система имеет машинно-зависимое ядро (kernel) – небольшой набор программ, с помощью которых осуществляется более эффективное управление ЭВМ конкретного типа (семейство ЭВМ, тип процессора, конкретные аппаратные компоненты ЭВМ и внешние устройства). Наличие ядра операционной системы – это первое условие для возможности практической работы пользователя с вычислительной системой. Ядро операционной системы выполняет следующие функции: управление памятью, процессами ввода-вывода, файловой системой, организацию взаимодействия и диспетчеризацию процессов, учет использования ресурсов, обработку команд и т.д.
Остальные программы операционной системы стараются делать максимально независимыми от конкретной ЭВМ. Свойство программы, позволяющее переносить её без переделок с одной ЭВМ на другую, называется переносимостью (portability). Если программа является машинно-зависимой, то её переносимость определяется степенью совместимости ЭВМ. Переносимость программ имеет прямое влияние на коммерческие возможности программных продуктов.
Пользовательский и программный интерфейсы
Для упрощения доступа к ресурсам ЭВМ операционные системы поддерживают пользовательский и программный интерфейсы (рис. 6.2).
Рис. 6.2. Интерфейсы операционной системы
Пользовательский интерфейс (user interface)] – это набор команд и сервисных услуг, которые упрощают пользователю работу с ЭВМ.
Программный интерфейс (program interface) – это набор процедур, которые упрощают для программиста управление ЭВМ.
Процессорное время и организация памяти
Архитектура персонального компьютера
Для организации многозадачного режима операционная система должна некоторым образом распределять время работы процессора между одновременно работающими программами. Обычно используется так называемый вытесняющий режим многозадачной работы. При вытесняющем режиме каждая программа непрерывно работает в течение строго определённого промежутка времени кванта времени, по истечении которого процессор переключается на другую программу. Так как квант времени очень небольшой, то при достаточной производительности процессора создаётся иллюзия одновременной работы всех программ.
Одной из главных задач операционной системы является управление памятью. Когда основной памяти не хватает, все данные, которые не используются в данный момент, записываются в особый файл подкачки. Память, представленная файлом подкачки, называется внешней страничной памятью (external page storage).
Совокупность основной и внешней страничной памяти называется виртуальной памятью (virtual memory). Однако для программиста виртуальная память выглядит как единое целое, то есть рассматривается как неупорядоченный набор байтов. В этом случае говорят, что используется линейная адресация памяти.
Структура операционной системы
Современные операционные системы, как правило, имеют многоуровневое строение (рис. 6.3). Непосредственно с аппаратурой работает ядро операционной системы. Ядро (kernel) – это программа или совокупность связанных программ, которые используют аппаратные особенности ЭВМ. Таким образом, ядро является машинно-зависимой частью операционной системы.
Рис. 6.3. Уровни операционной системы
Ядро определяет программный интерфейс. На втором уровне находятся стандартные программы операционной системы и оболочка, которые работают с ядром и предоставляют пользовательский интерфейс. Программы второго уровня стараются делать машинно-независимыми. В идеале замена ядра равнозначна замене версии операционной системы.
Любые данные хранятся во внешней памяти ЭВМ в виде файлов. Файлами нужно управлять: создавать, удалять, копировать, изменять и др. Такие средства пользователю в виде пользовательского и программного интерфейсов предоставляет операционная система.
Способ организации файлов и управления ими называется файловой системой (file system). Файловая система определяет, например, какие символы могут использоваться для имени файла, каков максимальный размер файла, каково имя корневого каталога и др. Способ организации файлов влияет на скорость доступа к нужному файлу, на безопасность хранения файлов и др.
Одна и та же операционная система может работать одновременно с несколькими файловыми системами. Как правило, функции файловой системы реализуются средствами ядра операционной системы.
Файловая система может быть реализована в виде драйвера, с которым через операционную систему общаются все программы, читающие или записывающие информацию на внешние устройства.
Файловая система может включать в себя средства безопасности хранения информации. Например, файловая система NTFS имеет средства автоматического исправления ошибок и замены дефектных секторов. Специальный механизм отслеживает и фиксирует все действия, выполняемые над магнитными дисками, поэтому в случае сбоя целостность информации восстанавливается автоматически. Кроме этого, файловая система может иметь средства защиты информации от несанкционированного доступа.
Защита информации – это очень большая проблема. В рамках работы операционной системы под защитой информации подразумевается обеспечение целостности информации и защита от несанкционированного доступа. Обеспечение целостности возлагается в основном на файловую систему, а защита от несанкционированного доступа – на ядро.
Обычным механизмом такой защиты является использование паролей и уровней привилегий. Для каждого пользователя определяются границы доступа к файлам и приоритетность его программ. Наивысший приоритет имеет системный администратор.
Сетевые средства и распределённые системы
Составной частью современных операционных систем являются средства, которые позволяют связываться через вычислительную сеть с приложениями, работающими на других ЭВМ. Для этого операционная система решает в основном две задачи: обеспечения доступа к файлам на удалённых ЭВМ и возможности запуска программы на удалённой ЭВМ.
Первая задача наиболее естественно решается с помощью использования так называемой сетевой файловой системы (network file system – NFS), которая организует работу пользователя с удалёнными файлами так, как будто эти файлы находятся на магнитном диске самого пользователя.
Вторая задача решается с помощью механизма вызова удалённой процедуры (remote procedure call – RPC), который реализуется средствами ядра и также скрывает от пользователя разницу между локальными и удалёнными программами.
Наличие средств для управления ресурсами удалённых ЭВМ является основой для создания распределённых вычислительных систем. Распределённая вычислительная система (distributed computer system) – это совокупность нескольких связанных ЭВМ, работающих независимо, но выполняющих общее задание. Такую систему можно рассматривать как многопроцессорную.
Важной особенностью современных операционных систем является то, что в основу взаимодействия прикладной программы и операционной системы заложена модель «клиент-сервер». Все обращения пользовательской программы (клиента) к операционной системе обрабатываются специальной программой (сервером). При этом используется механизм, аналогичный вызову удаленной процедуры, что позволяет легко перейти от взаимодействия между процессами в пределах одной ЭВМ к распределенной системе.
Технология «plug and play»
Под технологией «plug and play» (PnP-технология) понимается способ взаимодействия между операционной системой и внешними устройствами. Операционная система проводит опрос всех периферийных устройств и должна получить от каждого устройства определённый ответ, из которого можно определить, какое устройство подключено и какой драйвер требуется для его нормальной работы. Цель использования данной технологии заключается в упрощении подключения новых внешних устройств. Пользователь должен быть избавлен от сложной работы по настройке внешнего устройства, требующей высокой квалификации.
Оболочка (shell) – система, изменяющая пользовательский интерфейс. Оболочка создаёт для пользователя интерфейс, отличный от такового самой операционной системы. Задача оболочки – упрощение некоторых общеупотребительных действий с операционной системой. Однако оболочка не заменит ОС, и потому пользователь-профессионал должен изучать также командный интерфейс самой ОС (рис. 6.4).
Рис. 6.4. Роль оболочки операционной системы
Утилита (utility) – это система, дополняющая пользовательский интерфейс. Утилиты реализуют важные функции по управлению ЭВМ, которые, как правило, недостаточно полно представлены в программах, поставляемых с операционной системой (рис. 6.5).
Рис. 6.5. Роль утилиты
Наиболее важными функциями утилит являются:
· обслуживание жёсткого диска: форматирование, восстановление удалённых файлов, дефрагментация, низкоуровневое редактирования дисков и др.;
· обслуживание файлов и каталогов: поиск, сортировка, копирование по определённому условию и т.д.;
· работа с архивами: создание архивов и их обновление, сжатие файлов;
· защита от компьютерных вирусов: обнаружение вирусов, лечение файлов;
· предоставление пользователю расширенной информации о ПЭВМ и ОС;
Источник: libraryno.ru
Периферийные устройства компьютера
Периферийное устройство – часть аппаратного обеспечения, конструктивно отделенная от основного блока вычислительной системы, от состава и характеристик которой во многом зависят возможность и эффективность применения ПК. Так, по назначению можно выделить следующие виды периферийных устройств:
- • внешние запоминающие устройства, или внешняя память ПК;
- • устройства ввода информации;
- • устройства вывода информации;
- • устройства передачи информации.
Периферийные устройства функционируют по командам центрального процессора и предназначены для внешней обработки данных, их подготовки, ввода, хранения, управления, защиты, вывода и передачи по каналам связи. К периферийным устройствам ПК относятся внешние устройства памяти, устройства вывода информации, устройства ввода информации, печатающие устройства, устройства дистанционной передачи данных, аудиосистемы.
Периферийное устройство может быть как физически внешним (принтер, сканер, внешний модем), так и находиться в системном блоке (накопители информации или внутренний модем).
Для длительного хранения информации компьютер оснащается внешними запоминающими устройствами, которые классифицируют по разным признакам:
- • по типу доступа:
- – с произвольным доступом (диски, флеш-карты);
- – с последовательным доступом (магнитные ленты);
Накопитель на жестких магнитных дисках (НЖМД, жесткий диск, винчестер [1] , англ. Hard Disk Drive, HDD) – устройство хранения информации, основанное на принципе магнитной записи.
Обычно НЖМД недоступен пользователю, так как устанавливается стационарно внутри компьютера в герметичном корпусе вместе с электронными схемами управления (рис. 3.13, а). Состоит из пакета магнитных пластин-дисков, установленных на одной оси (рис. 3.13, б). Двигатель вращает диски со скоростями от 3600 до 10 000 об/мин.
Особый привод (шаговый двигатель) позиционирует головки чтения/ записи.
Основные характеристики носителей информации:
- • емкость, т.е. максимальный объем данных, которые можно записать на носитель, у современных винчестеров – сотни гигабайт;
- • быстродействие, которое определяется временем доступа к данным и скоростью их передачи. У винчестеров скорость позиционирования головки над местом диска с нужными данными – около 10 мс, а скорость передачи данных (р) зависит от количества байтов в секторе («Д, количества сек-
Рис. 3.13. Накопитель на жестком диске:
а – со снятой крышкой корпуса; б – дорожки, сектора, пластины, головки
торов на дорожке (п2) и скорости вращения дисков (w в мин): . Скорость передачи информации увеличивается при установке в винчестере кеш-памяти (2, 4, 8 или 16 Мбайт).
Информация записывается на пластины, покрытые слоем ферромагнитного материала, под воздействием магнитного поля меняющего свойства так, что реализуются два устойчивых состояния, которые соответствуют двоичным цифрам 0 и 1.
Сначала носители, предназначенные для хранения информации, изготовители подвергают до установки в компьютер процессу разметки – форматирования (жесткие диски, оптические носители, устройства на основе флеш-памяти) для создания и адресации структур доступа к данным. При форматировании прежняя находившаяся на носителе информация теряется или уничтожается.
Форматирование жестких дисков выполняется в несколько этапов.
Форматирование низкою уровня выполняется на заводе- изготовителе. Поверхность дисков размечается намагничиванием на концентрические дорожки, дорожка разделяется на секторы (см. рис. 3.13, б). В каждый сектор записывается служебная информация, по которой определяется начало сектора и его номер для позиционирования головок. В будущем в сектор будут записываться сохраняемые данные, а в концы секторов – контрольные суммы для проверки целостности данных.
Информация записывается и считывается головками вдоль окружyостей-дорожек. Совокупность дорожек на всей «пачке» дисков, находящихся на одинаковом расстоянии от оси, образует цилиндр.
Высокоуровневое форматирование заключается в создании на диске главной загрузочной записи (Master Boot Record) с таблицей разделов. Каждому из разделов (это – логические диски) присваивается собственное имя (буквы английского алфавита). Одновременно создаются загрузочная запись (Boot Record), в которой отмечается, что на диске установлена операционная система, и логическая структура файловой системы. Размечаются кластеры – минимальное пространство (несколько смежных секторов), единицы размещения информации для файлов на диске. Обмен данными между диском и оперативной памятью осуществляется последовательно целым числом секторов.
При записи и чтении информации диск вращается вокруг оси, а механизм управления головкой подводит ее к дорожке, выбранной для записи или чтения данных. Диски относятся к носителям информации с произвольным (прямым) доступом, поскольку (в отличие от магнитной ленты) можно сразу обратиться к месту записи нужной информации.
Различают винчестеры типа IDE (Integrated Drive Electronics – встроенная управляющая электроника, находится в корпусе) и SCSI (Small Computer System Interface – интерфейс малых компьютерных систем).
Преимущества интерфейса SCSI: винчестер управляется адаптером, устанавливаемым на системной плате, и он может управлять также приводами компакт-дисков, сканерами, стримерами, другими внутренними и внешними устройствами.
Кроме жестких дисков, устанавливаемых внутри системного блока, существуют мобильные внешние, подключаемые компьютеру через USB-порт.
- [1] Термин «винчестер» возник из названия первой модели жесткого диска емкостью 16 Кбайт (1973), имевшего 30 дорожек по 30 секторов, что случайно совпало с калибром «30/30» известного охотничьего ружья «Винчестер».
Источник: studme.org
Компьютерная Энциклопедия
Вы здесь: Главная Введение
Введение
Взаимодействие программ с периферийными устройствами
Архитектура ЭВМ
- Базовая организация ЭВМ
- Процессор
- Память. Нижний уровень
- Память. Верхний уровень
- Ввод-вывод
- Кодирование символов
Компоненты ПК
- Устройства вывода информации
- Процессоры
- Системные платы
- BIOS: базовая система ввода-вывода
- Оперативная память
- Накопители на жёстких дисках
- Видеоадаптеры
- Устройства оптического хранения данных
- Аудиоустройства
Интерфейсы
Мини блог
- Операционные системы
- IT
- Сетевые технологии
Самое читаемое
- Арифметико логическое устройство (АЛУ)
- Страничный механизм в процессорах 386+. Механизм трансляции страниц
- Организация разделов на диске
- Диск Picture CD
- White Book/Super Video CD
- Прямой доступ к памяти, эмуляция ISA DMA (PC/PCI, DDMA)
- Карты PCMCIA: интерфейсы PC Card, CardBus
- Таблица дескрипторов прерываний
- Разъемы процессоров
- Интерфейс Slot A
http://callbacky.by/ виджет для заказа обратного звонка.
Введение
Взаимодействие программ с периферийными устройствами
Подробности Родительская категория: vvedenie Категория: Введение
Периферийные устройства могут подключаться к интерфейсам системного уровня (ISA, PCI, PCI-X, PCI-Express, AGP, LPC) или к периферийным интерфейсам (порты COM, LPT, Game; шины USB, FireWire, SCSI). Абстрагируясь от конкретной реализации подключения на системном уровне, можно говорить о логической системной шине PC-совместимого компьютера — интерфейсе со следующими базовыми свойствами:
- интерфейс обеспечивает транзакции обращения к пространствам памяти и ввода/вывода;
- в транзакциях фигурируют физические адреса пространств памяти и ввода/вывода;
- адресные пространства памяти и ввода/вывода являются «плоскими»: адрес выражается одним числом в диапазоне, определенном принятой разрядностью адресации. Любой адрес может принадлежать регистру (ячейке памяти) только одного устройства (или системной памяти, включающей ОЗУ и энергонезависимую память);
- транзакции могут инициироваться как центральным процессором (процессорами), так и активными устройствами (мастерами шины);
- все адресуемые элементы безусловно доступны центральному процессору; на адресуемость элементов со стороны мастеров шин могут накладываться специфические ограничения;
- устройства, подключенные к системной шине, могут посылать процессору (процессорам) запросы аппаратных прерываний.
Взаимодействие программ с устройствами, подключенными к системной шине, возможно следующими способами:
- через регистры устройств, отображенные на пространство памяти или пространство ввода/вывода;
- через области адресов памяти, принадлежащей устройству (физически расположенной на контроллере или адаптере устройства);
- через регистры конфигурационного пространства PCI (для устройств, подключенных к PCI, PCI-X, PCI-Express, AGP);
- через области системного ОЗУ, доступные активным устройствам-мастерам шины (обмен с использованием DMA);
- через аппаратные прерывания, сигнализируемые устройствами по доступным им линиям IRQx (ISA) или INTx# (PCI), а также по сообщениям MSI (PCI).
Обращения к регистрам конфигурационного пространства PCI (также «плоского») не относятся к базовым свойствам системной шины, поскольку программно они реализуются операциями обращения к пространству ввода/вывода и (или) памяти. С устройствами, подключенными к интерфейсам периферийного уровня, взаимодействие возможно только через их контроллеры (адаптеры), подключенные к системной шине. На системной шине «видны» и доступны только эти адаптеры и контроллеры. Способы взаимодействия с устройствами определяются интерфейсом контроллера. Особенности взаимодействия с устройствами шин USB и FireWire рассмотрены далее, интерфейсы хост-контроллеров этих шин рассмотрены в следующих темах.
Программное обеспечение компьютера состоит из ряда компонентов: прикладного ПО (исполняемые модули — .EXE-файлы), драйверов устройств, системных драйверов, динамически компонуемых модулей, BIOS. Эти компоненты имеют различные возможности взаимодействия с устройствами, состав используемых компонентов зависит от операционной системы и уровня разделяемости данного устройства. Между прикладным ПО и периферийными устройствами возможны следующие варианты отношений:
- одиночное монопольное подключение: ПУ подключено к системной шине (возможно, через промежуточный периферийный интерфейс). С этим устройством в любой момент времени может взаимодействовать лишь одно приложение. Это самый простой вариант в плане организации взаимодействия ПО и устройства;
- групповое монопольное подключение: группа конечных ПУ подключена через промежуточный интерфейс к одному контроллеру, подключенному к системной шине. С данными устройствами может в любой момент времени взаимодействовать только одно приложение. По сравнению с предыдущим вариантом, здесь появляется небольшое усложнение, связанное с выбором конкретного конечного устройства для текущей операции обмена. Промежуточный интерфейс должен обеспечивать адресацию, управляемую приложением;
- одиночное разделяемое подключение: единственное конечное ПУ, подключенное к системной шине, может использоваться несколькими приложениями и/или процессами. Каждое из приложений (процессов) взаимодействует с устройством так, как будто оно — единственный «клиент» данного устройства. В структуре ПО, обеспечивающего взаимодействие с данным устройством, должны присутствовать средства виртуализации данного устройства. Эти средства и создают приложениям иллюзию монопольного взаимодействия с устройством. Пример — дисплей, подключенный к графическому адаптеру, с поддержкой оконного интерфейса. Здесь каждое приложение в отведенном ему логическом окне выполняет вывод изображения, не заботясь о текущем положении окна. Другой пример — клавиатура, обеспечивающая ввод символов в активное приложение;
- множественное разделяемое подключение: множество конечных ПУ подключено через периферийный интерфейс к общему контроллеру, связанному с системной шиной. Возможно одновременное взаимодействие нескольких приложений (процессов) с различными конечными ПУ. Сложность заключается в разделяемости: все взаимодействия осуществляются через общий контроллер периферийного интерфейса. Дополнительно возможно и коллективное использование конечных ПУ, для чего требуется виртуализация этих устройств. Примеры подключения: шины SCSI, USB, FireWire.
Вполне очевидно, что с точки зрения логических связей прикладное ПО может взаимодействовать с устройством непосредственно лишь в монопольном варианте использования. Все остальные варианты требуют выделения специальных модулей — драйверов, решающих задачи организации разделяемого использования контроллера и/или виртуализации устройства. Однако и для монопольного варианта отделение драйвера от прикладного ПО полезно с точки зрения модульности: при должной организации интерфейса между драйвером и прикладным ПО переход на использование новой модели устройства и/или на иной интерфейс его подключения потребует только смены драйвера, но не переработки прикладного ПО.
Взаимодействие программ, выполняемых центральным процессором (хост-программ), с периферийными устройствами возможно тремя основными способами:
- программно-управляемый обмен;
- прямой доступ к памяти;
- прерывания.
Программно-управляемый обмен — PIO (Programmed Input-Output). В исполняемой программе (или драйверах, которыми она пользуется) присутствуют инструкции ввода/вывода для портов устройства или инструкции обращений к областям памяти, находящейся в устройстве.
Реальное физическое взаимодействие с устройством (и вызываемые этим изменения состояния устройств) происходит в момент выполнения этих инструкций. Такая жесткая синхронизация программы и устройства из рассматриваемых шин имеется в PCI/PCI-X, когда устройство является ведомым (target).
Из интерфейсов, не рассмотренных в данной книге, такой способ обмена используется в LPT и COM портах (в режимах без FIFO и DMA), а также в шине ATA (при доступе к регистрам устройства и обмене данными в режиме PIO). Данный способ взаимодействия позволяет предельно упростить интерфейсную часть периферийного устройства. Расплатой за это упрощение является нагрузка на центральный процессор. Отметим, что применительно к шине PCI (и всем ее «родственникам») программно-управляемый обмен не позволяет приблизиться к декларированной высокой пропускной способности шины. Причиной тому является неспособность процессора породить длинные пакетные транзакции на шине PCI (см. главу 2), поэтому следует избегать данного способа взаимодействия при интенсивном обмене данными;
Прямой доступ к памяти — DMA (Direct Memory Access). Обмен между системной памятью (ОЗУ) и устройством выполняется без непосредственного участия процессора. Обмен осуществляет контроллер прямого доступа, для устройств шины PCI (и всех ее «родственников») контроллер является частью устройства — мастера шины (Bus Master). Штатного централизованного контроллера DMA, как это было в архитектуре ISA, для шины PCI нет. В зависимости от того, кто является инициатором обмена, различают два варианта прямого доступа:
- DMA по инициативе хоста (Host Initiated DMA). Задание на пересылку каждого блока формирует программа, исполняемая на ЦП; она же сообщает контроллеру DMA параметры сеанса (начальный адрес, длину блока и направление передачи) записью в его регистры. Физические операции обмена синхронизируются с устройством — оно своими внутренними сигналами запускает обмен и, если требуется, управляет потоком (вводит сигнал готовности). Этот вариант требует довольно простых аппаратных средств устройства, расплата за упрощение — необходимость привлечения ЦП к организации каждого сеанса (обычно по прерываниям). Это не очень эффективно при передаче больших объемов данных, которые могут располагаться в разных не смежных страницах физической памяти;
- DMA по инициативе устройства (Target Initiated DMA). Здесь хост-программа формирует в памяти программу ввода/вывода для устройства, обычно представляющую собой связанный список дескрипторов передач, и указывает устройству на начало списка. Контроллер устройства считывает эти дескрипторы из ОЗУ и по ним организует сеансы передачи данных между устройством и буферами в ОЗУ, описанными дескрипторами передач. Формирование программы может быть статическим или динамическим. В первом случае хост-программа передает устройству указатель на готовый список дескрипторов и не имеет права его модифицировать до тех пор, пока устройство не отработает список до конца. Так, например, работает PCI-контроллер шины ATA. При динамическом формировании хост может добавлять новые дескрипторы (в конец списка), постоянно «подбрасывая» контроллеру новые задания. Так работают контроллеры шины USB и FireWire, PCI-контроллеры локальных сетей и ряд других. Работа устройства по программе требует усложнения его контроллера, но эти затраты окупаются повышением производительности и эффективности ввода/вывода. При этом стараются минимизировать число прерываний центрального процессора, инициируемых устройством.
Прерывания (Interrupts) — сигнализация от устройства (его контроллера) центральному процессору (процессорам в мультипроцессорных системах) о некоторых событиях, требующих программных действий хоста. Эти события асинхронны по отношению к программному коду, исполняемому процессором.
Прерывания требуют приостановки выполнения текущего потока инструкций (с сохранением состояния) и запуска исполнения процедуры-обработчика прерывания ISR (Interrupt Service Routine). Эта процедура первым делом должна идентифицировать источник прерывания (а их может быть и несколько), затем выполнить действия, связанные с реакцией на событие.
Если события должны вызывать некоторые действия прикладной программы, то обработчику прерывания следует только подать сигнал (через ОС), запускающий (или пробуждающий) поток инструкций, выполняющий эти действия. Собственно процедура ISR должна быть оптимизирована по затраченному времени.
Обслуживание прерываний, особенно в защищенном режиме, в PC-совместимых компьютерах на процессорах x86 связано со значительными накладными расходами. По этой причине их число стараются сократить. Значительные хлопоты доставляет идентификация источника прерывания — в архитектуре PC-совместимых компьютеров для этого используются традиционные, но неэффективные механизмы. В ряде случаев прерывания от устройств заменяют поллингом — программно-управляемым опросом состояния устройств. При этом состояния множества устройств опрашивают по прерыванию от таймера.
В компьютерных системах с «интеллектуальной» системой ввода/вывода (I2O—Intelligent Input-Output) кроме центрального процессора имеется процессор ввода/вывода (IOP — Input-Output Processor). Этот процессор обычно имеет сокращенную систему команд, ориентированную на задачи управления вводом/выводом. В круг этих задач входит пересылка блоков данных, подсчет четности (для дисковых массивов RAID 3 и 5), преобразование данных между форматами Big Endian (популярный в телекоммуникациях) и Little Endian (принятый в процессорах Intel). Процессор ввода/вывода может работать как в общем адресном пространстве, так и иметь свое обособленное адресное пространство для управляемой подсистемы ввода/вывода. Взаимодействие процессора ввода/вывода со своими устройствами ведется теми же тремя основными способами, что были описаны ранее.
Врядовых компьютерах обычно ограничиваются прямым управлением шиной (bus mastering), которое позволяет контроллерам ПУ (или их интерфейсам) самим обращаться к системным ресурсам, выполняя необходимые обмены данными и управляющей информацией. Для этого контроллер ПУ должен взять на себя (на время) роль инициатора транзакций на интерфейсе, связывающем его с центром (главным образом, с памятью).
Поскольку традиционно этот интерфейс является шинным, такой активный контроллер называют мастером шины (bus master), даже если он подключается к выделенному двухточечному интерфейсу (порту AGP). Чаще всего прямое управление шиной используется для прямого доступа к оперативной памяти. Прямое управление шиной может использоваться и для сигнализации прерываний (MSI на шине PCI, см. главу 3). В новых версиях шины PCI-X и в PCI Express появилась возможность равнорангового взаимодействия устройств (без участия процессора) — обмена сообщениями. При этом в адресации сообщений не фигурируют адреса пространства памяти или ввода/вывода — обращения адресуются по идентификатору устройства (DIM — Device Identified Messages).
Источник: perscom.ru