Система прерываний программ в пк
Важнейшая роль в реализации сложных режимов работы отводится системе прерывания программ.
Прерывание — это приостанов выполнения программы в процессоре с целью выполнения какой-то более важной или нужной в данный момент другой программы или процедуры, после завершения которой продолжается выполнение прерванной программы с момента ее прерывания. Прерывание позволяет компьютеру приостановить любое свое действие и временно переключиться на другое, как заранее запланированное, так и неожиданное, вызванное непредсказуемой ситуацией в работе машины или ее компонента. Каждое прерывание влечет за собой загрузку определенной программы, предназначенной для обработки возникшей ситуации — программы обработки прерывания.
Организация и управление прерываниями функционально во многом смыкается с управлением задачами — одной из базовых функций операционных систем. Основой для управления процессом одновременного решения нескольких задач (равно как и управления прерываниями) являются процедуры:
выбора очередной задачи или определения приоритета задачи;
сохранения информации о статусе задачи при ее прерывании (формирование слова состояния программы);
упреждения и устранения конфликтов между задачами (координации и синхронизации выполнения задач).
Последовательность действий процессора при реализации прерывания такова.
При появлении запроса на прерывание, запланированное заранее или неожиданное, процессор, как правило, после завершения выполнения текущей команды программы анализирует допустимость (разрешенность и приоритетность) данного вида прерывания. Если оно разрешено, процессор производит следующие действия:
запоминает в стековой памяти текущее состояние прерываемой программы (состояние некоторых регистров МПП, в частности регистров F, CS, IP, а в микропроцессорах МП80286 и выше — и слова состояния программы, хранящегося в другом регистре МПП);
посылает источнику запроса на прерывание запрос о причине (коде) прерывания;
анализирует код запрошенного прерывания (номер прерывания — Ni) и формирует адрес ячейки (AV), хранящей вектор прерывания (вектор-адрес программы обработки прерывания) по формуле AV = 4·Ni (векторы прерываний занимают начальную 1024-байтовую область ОП с адресами ячеек от 00000 до 00400h (шестнадцатеричный код) так, что адрес вектора вычисляется простым умножением номера прерывания на четыре, так как CS и IP занимают по 2 байта каждый);
считывает из ОП и записывает в регистры МПП (в регистры F, CS, IP ) вектор прерывания и его атрибуты;
сбрасывает (устанавливает в 0) флаги прерывания (IF) и трассировки (TF);
выполняет программу обработки прерывания (которую иногда называют драйвером прерывания);
после выполнения программы обработки прерывания возвращает из стековой памяти параметры прерванной программы в регистры МПП и восстанавливает процесс выполнения прерванной программы.
Видов (номеров) прерывания может быть всего 256, и, соответственно, векторов прерывания (адресов CS:IP программ обработки прерываний) в ОП насчитывается до 256. Классификация видов прерываний показана на рис. 18.4.
Рис. 18.4. Классификация видов прерываний
Прикладные прерывания временно устанавливаются пользователем при многопрограммной работе МП для указания приоритета выполнения прикладных программ (при появлении необходимости выполнения более приоритетной программы текущая менее приоритетная программа прерывается).
Псевдопрерывания служат для запоминания важных фиксированных адресов, которые могут быть использованы в программах, в частности, при условных и безусловных передачах управления (запоминание адресов передачи управления как векторов прерывания возможно благодаря аналогии выполнения прерывания и обращения к процедурам).
Аппаратные прерывания инициируются при обращениях к МП со стороны внешних устройств (таймера, клавиатуры, дисководов, принтера и т. д.) с требованием уделить им внимание и выполнить совместно с ними те или иные процедуры. Прерывания от таймера, например, повторяются 18 раз в секунду, от клавиатуры — при каждом программно не запланированном нажатии некоторых клавиш и т. п. Аппаратные прерывания не координируются с работой программы и могут быть весьма разнообразны. Для их систематизации и определения очередности выполнения при одновременном возникновении нескольких из них обычно используется контроллер прерываний.
Программные прерывания — это обычные процедуры, которые вызывает текущая программа для выполнения предусмотренных в ней стандартных подпрограмм, чаще всего подпрограмм — служебных функций работы с внешними устройствами, то есть фактически программные прерывания ничего не прерывают. Программные прерывания делятся на 2 большие группы, вызывающие служебные функции:
базовой системы ввода-вывода — прерывания BIOS;
операционной системы — прерывания DOS.
Программы обработки прерываний DOS, в отличие от программ обработки прерываний BIOS, не встроены в ПЗУ и для разных операционных систем могут быть разными. К программным прерываниям можно отнести также прерывания при пошаговом исполнении программы, при работе с контрольным остановом и т.д.
Технические прерывания (или, иначе, прерывания от схем контроля) возникают при появлении отказов и сбоев в работе технических средств ПК. Большинство технических прерываний не маскируются, то есть они разрешаются всегда, а некоторые из них относятся к категории «аварийных» (например, отключение питания), и при их возникновении даже не запрашивается причина прерывания, а просто, по возможности, спасаются важные промежуточные результаты — записываются в безопасное место, в НЖМД, например.
Логические прерывания возникают при появлении ошибок в выполняемых программах (деление на 0, потеря точности мантиссы, нарушение защиты памяти и т. п.). Многие из логических прерываний также относятся к категории немаскируемых.
Прерывания обслуживаются базовой системой ввода-вывода — модулем расширения BIOS и модулем обработки прерываний DOS. BIOS и блок расширения BIOS имеют дело в основном с не планируемыми техническими и логическими прерываниями, пользовательскими прикладными прерываниями, а также со многими планируемыми прерываниями, обслуживающими систему ввода-вывода, детализированными и не очень детализированными (прерывания, обслуживаемые BIOS, часто называют прерываниями нижнего уровня).
Модуль обработки прерываний DOS обслуживает в большинстве планируемые прерывания, в том числе и прерывания системы ввода-вывода. Прерывания DOS часто называют прерываниями верхнего уровня, так как, с одной стороны, в этих прерываниях меньше учитываются технические особенности элементов ПК, с другой стороны, при обработке этих прерываний часто случаются обращения к программам прерываний системы BIOS. Большинство прерываний BIOS имеют близкие аналоги среди прерываний DOS.
Следует сказать, что использование прерываний BIOS позволяет, как правило, более детализировано выполнить обращения к различным системным ресурсам ПК, к элементам информационных структур и их атрибутам. Однако прерывания DOS более просты в использовании при программировании. Поэтому начинающим программистам можно рекомендовать работать с прерываниями DOS, особенно с расширенными функциями DOS для работы с файлами. Схема организации приема запросов на прерывания показана на рис. 18.5.
Рис. 18.5. Организация приема запросов на прерывания
Для приема внешних прерываний имеются порты двух типов: NMI (None Masked Interrupt) для приема немаскируемых прерываний и INTR (Interrupt) — для приема прочих прерываний (INTR обычно используется для подсоединения контроллера прерываний). Если запрос на прерывание поступает по входу NMI, то прерывание не маскируется (имеет абсолютный приоритет) и сразу выполняется; по входу INTR прерывание разрешается, если в регистре флагов МПП флаг IF = 1.
Всего предусмотрено 256 типов (0–255) прерываний. Из них только первые 5 жестко закреплены в МП, остальные используются системами BIOS и DOS.
Тип 0 — прерывание возникает при делении на 0 или если частное от деления переполняет разрядную сетку МП.
Тип 1 — в режиме «трассировка» (при TF = 1) после выполнения каждой команды программы происходит останов.
Тип 2 — немаскируемое техническое прерывание.
Тип 3 — прерывание по команде INT, включенной в программу: останов и отображение содержимого регистров МПП.
Тип 4 — прерывание по команде INTO, включенной в программу, но только если при выполнении предыдущей команды произошло переполнение разрядной сетки.
Типы 8–15 — аппаратные прерывания, инициируемые внешними устройствами, поступают на входы IRQ0–IRQ7 контроллера прерываний (вход IRQ0 имеет высший приоритет, и прерывание, поступившее по этому входу, обрабатывается первым; всего уровней приоритета 8 и вход IRQ7 имеет низший приоритет).
Типы 16–31 — планируемые программные прерывания BIOS.
Типы 32–255 — программные прерывания DOS (жестко задействовано около 10, а вообще в разных версиях DOS их разное количество).
Прерывания с 0 по 31 и прерывание 64 относятся к прерываниям нижнего уровня, обслуживаемым BIOS; прерывания, начиная с 32 — являются прерываниями верхнего уровня (за исключением прерывания 64); причем прерывание 33 (21h) — это комплексное, чаще всего используемое в программах пользователя прерывание, имеющее около 100 разновидностей (служебных функций DOS).
В некоторых типах прерываний BIOS и DOS имеется много разных функций , иногда более 10. Так, прерывание 10 (Ah) включает 15 функций, прерывание 33 (21h) — около 100 функций: в DOS 1.0 — 47, в DOS 2.0 — 88, в DOS 3.0 и выше — 99 функций (вид функции в рамках каждого прерывания определяется содержимым регистра AH).
В работе [8] приведен список прерываний нижнего и верхнего уровня, а также служебных функций DOS наиболее часто используемого программистами прерывания 21h.
- Введение
- Раздел «Создание и эволюция эвм» Глава 1. Научные предпосылки создания эвм
- Управление и информация
- Информация и ее свойства
- Экономическая информация
- Три формы адекватности информации
- Меры информации
- Синтаксические меры информации
- Семантическая мера информации
- Прагматическая мера информации
- Показатели качества информации
- Репрезентативность
- Содержательность
- Достаточность
- Доступность
- Актуальность
- Своевременность
- Точность
- Достоверность
- Устойчивость
- Защищенность
- Полезность
- Информатика
- Наука информатика
- Информационные технологии
- Индустрия информатики
- Вопросы для самопроверки
- Глава 2. История создания вычислительной техники
- Механические счетные машины
- Электромеханические счетные машины
- Электронные вычислительные машины
- Вопросы для самопроверки
- Глава 3. Эволюция эвм
- Вопросы для самопроверки
- Глава 4. Основные классы вычислительных машин
- Большие компьютеры
- Серверы и рабочие станции
- Рабочие станции
- Серверы
- Малые компьютеры
- Микрокомпьютеры
- Персональные компьютеры
- Наколенные компьютеры
- Компьютеры-блокноты (ноутбуки)
- Нетбуки
- Планшетные компьютеры
- Райтеры
- Электронные книги Ридеры
- Карманные компьютеры
- Периферийные устройства кпк
- Коммуникаторы (смартфоны)
- Электронные секретари
- Электронные записные книжки
- Вычислительные системы
- Многомашинные и многопроцессорные вс
- Высокопараллельные многопроцессорные вычислительные системы
- Ассоциативные и потоковые вс
- Ассоциативные вычислительные системы
- Потоковые вычислительные системы
- Суперкомпьютеры
- Кластерные суперкомпьютеры
- Вопросы для самопроверки
- Раздел 2. «Информационно-логические основы построения эвм» Глава 5. Представление информации в эвм
- Представление чисел с фиксированной и плавающей запятой
- Алгебраическое представление двоичных чисел
- Прочие системы счисления
- Двоично-десятичная система счисления
- Шестнадцатеричная система счисления
- Выполнение арифметических операций в компьютере
- Особенности выполнения операций над числами с плавающей запятой
- Выполнение арифметических операций над числами, представленными в дополнительных кодах
- Особенности выполнения операций в обратных кодах
- Выполнение арифметических операций в шестнадцатеричной системе счисления
- Особенности представления информации в пк
- Вопросы для самопроверки
- Глава 6. Логические основы построения эвм
- Основы алгебры логики
- Логический синтез вычислительных схем
- Электронные технологии и элементы
- Полевые транзисторы
- Планарные микросхемы
- Электронные и логические схемы
- Триггер
- Регистр
- Дешифратор
- Логические операции, выполняемые в компьютере
- Or (или) — логическое сложение
- Xor (исключающее или)
- Not (не) — операция отрицания
- Вопросы для самопроверки
- Раздел 3 Архитектура персонального компьютера Глава 7. Основные блоки эвм и их назначение
- Структурная схема эвм
- Микропроцессор
- Системная шина
- Основная память
- Внешняя память
- Источник питания
- Внешние устройства
- Дополнительные интегральные микросхемы
- Элементы конструкции пк
- Функциональные характеристики эвм
- Производительность, быстродействие, тактовая частота
- Разрядность микропроцессора и кодовых шин интерфейса
- Типы системного и локальных и внешних интерфейсов
- Емкость оперативной памяти
- Виды накопителей на жестких магнитных дисках
- Тип и емкость накопителей на гибких магнитных дисках
- Наличие, виды и емкость кэш-памяти
- Аппаратная и программная совместимость с другими типами компьютеров
- Возможность работы в многозадачном режиме
- Надежность
- Глава 8. Микропроцессоры
- Микропроцессоры типа cisc
- Микропроцессоры Over Drive
- Микропроцессоры Pentium
- Микропроцессоры Pentium Pro
- Микропроцессоры Pentium mmx и Pentium II
- Микропроцессоры Pentium III
- Микропроцессоры Pentium 4
- Эффективные технологии в мп Intel
- Архитектура Intel Net Burst
- Многоядерные микропроцессоры
- Микропроцессоры линейки core
- Процессоры Core Penryn
- Микропроцессоры типа risc
- Микропроцессоры типа vliw
- Физическая и функциональная структура микропроцессора
- Устройство управления
- Арифметико-логическое устройство
- Микропроцессорная память
- Универсальные регистры
- Сегментные регистры
- Регистры смещений
- Регистр флагов
- Статусные флаги
- Управляющие флаги
- Интерфейсная часть мп
- Вопросы для самопроверки
- Глава 9. Системные платы и чипсеты
- Разновидности системных плат
- Чипсеты системных плат
- Чипсет i965 (Broadwater)
- Глава 10. Интерфейсная система пк
- Шины расширений
- Локальные шины
- Интерфейсы pci
- Интерфейс agp
- Периферийные шины
- Интерфейсы ide/ata
- Интерфейс scsi
- Интерфейс rs 232
- Интерфейс ieee 1284
- Универсальные последовательные интерфейсы
- Последовательная шина usb
- Стандарт ieee 1394
- Последовательный интерфейс sata
- Последовательный интерфейс sas
- Семейство последовательных интерфейсов pci Express
- Прикладные программные интерфейсы
- Беспроводные интерфейсы
- Интерфейсы IrDa
- Интерфейс Bluetooth
- Интерфейс wusb
- Семейство интерфейсов WiFi
- Семейство интерфейсов WiMax
- Интерфейс WiBro
- Прочие интерфейсы
- Вопросы для самопроверки
- Глава 11. Основная память пк
- Статическая и динамическая оперативная память
- Основная память
- Физическая структура основной памяти
- Оперативные запоминающие устройства
- Виды модулей оперативной памяти
- Типы оперативной памяти
- Постоянные запоминающие устройства
- Логическая структура основной памяти
- Вопросы для самопроверки
- Глава12. Внешние запоминающие устройства
- Размещение информации на дисках
- Адресация информации на диске
- Накопители на жестких магнитных дисках
- 0,85" Винчестеры Toshiba
- Дисковые массивы raid
- Накопители на гибких магнитных дисках
- Накопители на оптических дисках
- Неперезаписываемые оптические диски cd-rom
- Оптические диски с однократной записью
- Оптические диски с многократной записью
- Оптические универсальные диски dvd
- Маркировка скоростных характеристик cd и dvd
- Эффективные технологии хранения информации на cd и dvd
- Многослойный cd
- Millipede-диск
- Флуоресцентные оптические диски
- Особенности организации флуоресцентных дисков
- Прочие технологии
- Накопители на магнитооптических дисках
- Накопители на магнитной ленте
- Устройства флэш-памяти
- Твердотельные накопители на базе флэш-памяти
- Вопросы для самопроверки
- Глава 13. Видеотерминальные устройства
- Видеомониторы на элт
- Монохромные мониторы
- Цветные мониторы
- Виды развертки изображения на мониторе
- Цифровые и аналоговые мониторы
- Размер экрана монитора
- Вертикальная (кадровая) развертка
- Строчная развертка
- Разрешающая способность мониторов
- Частотная полоса пропускания
- Эргономичность электронно-лучевых мониторов
- Видеомониторы на плоских панелях
- Мониторы на жидкокристаллических индикаторах
- Tmos – мониторы
- Плазменные мониторы
- Электролюминесцентные мониторы
- Светоизлучающие мониторы
- Мониторы на основе «электронной бумаги»
- Стереомониторы
- Видеоконтроллеры
- Вопросы для самопроверки
- Глава 14. Внешние устройства пк
- Клавиатура
- Графический манипулятор мышь
- Принтеры
- Матричные принтеры
- Струйные принтеры
- Лазерные принтеры
- Термопринтеры
- Твердочернильные принтеры
- Сервисные устройства
- Сетевые принтеры
- С канеры
- Типы сканеров
- Форматы представления графической информации в пк
- Форматы растровой графики
- Д игитайзеры
- Основные характеристики дигитайзеров
- Плоттеры
- Типы плоттеров
- Вопросы для самопроверки
- Глава 15. Средства мультимедиа
- Системы речевого ввода и вывода информации
- Системы распознавания речи
- Системы, ориентированные на распознавание отдельных слов, команд и вопросов
- Системы распознавания предложений и связной речи
- Системы идентификации по образцу речи
- Механизм распознавания речи
- Системы синтеза речи
- Компьютерные средства обеспечения звуковых технологий
- Звуковые платы (карты)
- Компьютерные средства обеспечения видеотехнологий
- Вопросы для самопроверки
- Раздел 4. Компьютерные сети Глава 16. Основы построения компьютерных сетей
- Классификация и архитектура компьютерных сетей
- Виды компьютерных сетей
- Модель взаимодействия открытых систем
- Локальные вычислительные сети
- Виды локальных вычислительных сетей
- Одноранговые локальные сети
- Серверные локальные сети
- Корпоративные компьютерные сети
- Глобальная информационная сеть Интернет
- Протоколы, используемые в сети
- Программное обеспечение компьютерных сетей
- Информационное обеспечение сетей
- Вопросы для самопроверки
- Глава 17.Техническое обеспечение компьютерных сетей
- Серверы и рабочие станции
- Рабочие станции
- Серверы
- Маршрутизаторы и коммутирующие устройства
- Методы коммутации
- Коммутация сообщений
- Коммутация пакетов
- Методы маршрутизации
- Варианты адресации компьютеров в сети
- Методы маршрутизации, используемые в сетях
- Модемы и сетевые карты
- Модемы для аналоговых каналов связи
- Протоколы передачи данных
- Модемы для цифровых каналов связи
- Сетевые карты
- Линии и каналы связи
- Цифровые каналы связи
- Раздел 5. Программное управление Глава 18. Программное управление — основа автоматизации вычислительного процесса После изучения главы вы должны знать:
- Алгоритмы и языки программирования
- Состав машинных команд
- Пример программы на яск
- Программное обеспечение компьютера
- Системное программное обеспечение
- Операционные системы компьютеров
- Прикладное программное обеспечение
- Прикладные программы для офиса
- Корпоративные прикладные программы
- Режимы работы компьютеров
- Однопрограммный режим
- Многопрограммный режим
- Система прерываний программ в пк
- Адресация регистров и ячеек памяти в пк
- Относительная адресация
- Стековая адресация
- Вопросы для самопроверки
- Глава 19.Элементы программирования на языке Ассемблер
- Основные компоненты языка ассемблер Алфавит языка
- Константы (числа и строки) Только целые числа
- Строки (литералы)
- Команды (операторы)
- Директивы (псевдооператоры)
- Модификаторы
- Адресация регистров и ячеек памяти в Ассемблере
- Непосредственная адресация
- Прямая адресация регистров мпп
- Адресация ячеек оп
- Основные команды языка ассемблер
- Команды пересылки данных
- Арифметические команды
- Команды сложения, вычитания и сравнения
- Команды приращения
- Команды умножения
- Команды деления
- Логические команды
- Команды безусловной передачи управления
- Команды перехода к подпрограмме и выхода из подпрограммы
- Команда перехода к подпрограмме: call opr
- Команда выхода из подпрограммы
- Команды условной передачи управления
- Команды условной передачи управления для беззнаковых данных
- Команды условной передачи управления для знаковых данных
- Команды условной передачи управления для прочих проверок
- Команды управления циклами
- Команды прерывания
- Основные директивы ассемблера
- Директивы определения идентификаторов
- Директивы определения данных
- Директивы определения сегментов и процедур
- Директивы управления трансляцией
- Программирование процедур работы с устройствами ввода-вывода
- Программирование работы с дисплеем
- Видеооперации с прерыванием 21h dos
- Программирование работы с клавиатурой
- Некоторые аспекты создания исполняемых программ
- Процедуры формирования программы
- Структура программы на языке ассемблера для создания файла exe
- Программа вычисления квадратного корня
- Основные сведения о листинге программы
- Последовательность работы пк при выполнении программы
- Краткие сведения об отладчике программ debug
- Основные команды отладчика debug
- Вопросы для самопроверки
- Заключение. Перспективы развития информационных систем
- Литература