Как изменить очередность прерывания устройств компьютера. IRQ - Interrupt Request: Прерывания это сигналы, которые сообщают процессору, что нужно обработать поступивший от устройства запрос. Действия для изменения приоритета IRQ

01.07.2020

Системные процессы, о которых рядовые пользователи компьютеров, часто не имеют представления, очень часто могут вызвать повышенные нагрузки на вычислительные ресурсы компьютера. К таковым, в частности, относятся так называемые системные прерывания. Что это такое, большинство не знает и часто пытается завершить работу данной службы непосредственно в «Диспетчере задач», где и отображается загрузка центрального процессора и оперативной памяти. Несколько забегая вперед, следует сказать, что заниматься такими вещами не стоит ни в коем случае. Но как тогда привести систему в чувство? Об этом предлагается поговорить более подробно, тем более, что при рассмотрении основного вопроса попутно могут обнаружиться и другие проблемы, связанные с некорректным функционированием «железных» компонентов, самих операционных систем Windows и установленного в их среде программного обеспечения. Но обо всем по порядку.

что это такое?

Прежде чем предпринимать какие бы то ни было шаги по устранению возникающих неполадок, следует выяснить, что собой представляет этот системный компонент. В «Диспетчере задач» за его функционирование отвечает процесс «Системные прерывания», который работает постоянно.

Но что это такое? Не вдаваясь в технические подробности и говоря о том, что это, системные прерывания можно сравнить с некой лакмусовой бумажкой или индикатором, который сигнализирует о том, что в системе наблюдаются сбои в работе какого-то оборудования. Кроме того, повышение нагрузки на ресурсы может быть связано еще с несовместимостью программной и аппаратной части компьютера. В обычном своем состоянии нагрузка на процессор со стороны этого процесса обычно не превышает пяти процентов или чуть больше, чего вполне достаточно для проведения диагностики всех используемых в данный момент «железных» устройств на предмет корректного функционирования в Если же нагрузка возрастает выше указанного лимита, необходимо срочно выявлять причину и устранять проблемы с оборудованием.

Как это работает: простейшее объяснение

Но давайте разберем, что собой представляют системные прерывания в Windows 7 или других модификациях на простом примере. Сразу следует отметить тот факт, что относительно программного обеспечения работу этого компонента связывают с неисполняемыми элементами программ, которые могут загружаться, например, в оперативную память (динамические библиотеки, драйверы устройств и т. д.).

Предположим, у вас на компьютере установлена какая-то современная игра, но видеокарта соответствует лишь минимальным ее системным требованиям, или конфигурация находится ниже этого порога. Если графический чип не справляется с обработкой программных компонентов, что ведет к повышению на него нагрузки, в дело включаются системные прерывания. За их счет обработка команд перенаправляется на центральный процессор, который и пытается помочь видеокарте справиться с возросшим числом обращений. Соответственно, и со стороны описываемого процесса в «Диспетчере задач» наблюдается увеличение нагрузки. И нередко возникновение таких ситуаций приводит не только к зависанию всей системы, но и даже к появлению синих экранов. То же самое относится и к случаям, когда оборудование начинает выходить из строя. К сожалению, при поломках «железных» компонентов системы все это в равной степени может относиться к любому из них (например, сыпется жесткий диск, дают сбои планки оперативной памяти и т. д.).

Системные прерывания грузят процессор: что делать в первую очередь?

Исходя из приведенных выше теоретических сведений, перейдем к практическим мерам, которые позволяют устранить возникающие проблемы и исправить такие ситуации. Что предпринять в первую очередь? Как ни странно это звучит, но иногда бывает достаточно выполнить самую обычную перезагрузку, что позволяет деактивировать все сторонние программные компоненты. Но ведь при повторном запуске какого-то приложения ситуация может повториться. В этом случае сразу же следует проверить состояние драйверов, используя для этого «Диспетчер устройств». Вполне возможно, что конфликт между программной и аппаратной частью как раз и был спровоцирован именно ими.

По возможности установите управляющее программное обеспечение для проблемных устройств, которые в «Диспетчере» могут быть помечены желтым треугольником с восклицательным знаком, и обновите драйверы для всего остального оборудования, используя для этого автоматизированные утилиты вроде Driver Booster.

Отслеживание нагрузок при помощи специальной утилиты

В случае, если действия с установкой и обновлением драйверов желаемого результата не дадут, придется использовать другие методы. Увы, в инструментарии Windows-систем таких средств нет.

Поэтому, если замечено, что системные прерывания грузят ресурсы, большинство специалистов рекомендует воспользоваться небольшой программой под названием DPC Latency Checker, которая представлена в портативном виде и не требует установки на ПК. В ней первым делом необходимо включить сканирование, после чего в результатах проверки будут приведены рекомендации по устранению проблем. Однако чаще всего связаны они только с завершением каких-то процессов, соответствующих и программам, и используемому в данный момент оборудованию, или будет выдана рекомендация обратиться к «Диспетчеру устройств». А вот его-то нам и нужно использовать, оставив диагностическую утилиту активной в качестве своеобразного средства изменения отслеживания нагрузок. Не путайте нагрузки, показанные в этой программе, с теми, которые видны в «Диспетчере задач».

Отключение компонентов в «Диспетчере устройств»

Что касается этого раздела управления оборудованием, суть устранения проблем сводится к тому, что последовательно отключать установленные в системе устройства с последующей проверкой нагрузок вышеупомянутой утилитой.

Обратите внимание, что категорически запрещается отключать оборудование, представленное в разделах «Компьютер», «Процессоры» и «Системные устройства», поскольку такие действия могут привести к несанкционированному завершению работы и перезагрузке компьютера. Чего доброго, еще и вся операционная система выйдет из строя.

Для остальных компонентов, предварительно включив в меню вида показ скрытых устройств, каждый компонент через меню ПКМ следует отключать, а затем заново активировать диагностику в программе отслеживания нагрузок. Когда в результатах тестирования после деактивации какого-то устройства нагрузка упадет до нормы, и будет понятно, что именно этот компонент является сбойным. Если не помогает переустановка драйвера, устройство придется заменить.

Что делать, если проблема с нагрузкой не устраняется?

Но что это? Системные прерывания все равно дают повышенную нагрузку на процессор. Что еще могло повлиять на возникновение такой ситуации? Почему-то (а это так и есть) в большинстве случаев первопричиной такого поведения системы называют проблему с устаревшим или встроенным в материнскую плату звуковым оборудованием, для которого задействовано улучшение саундэффектов.

Как вариант - в настройках звука средствами Windows, отключите данный пункт, что автоматически приведет к деактивации всех установленных эффектов. Заметьте, они относятся именно к программному, а не к аппаратному типу, поэтому отключение основного устройства может и не дать результата.

Проблемы с первичными системами ввода/вывода

Наконец, многие специалисты не исключают и появление неполадок в работе первичных систем BIOS/UEFI, которые могут быть связаны с устареванием оригинальной прошивки. В этом случае новое и более современное оборудование может определяться некорректно. Как уже понятно, выходом станет загрузка и инсталляция обновления для прошивки. Но, если запустить такие процессы для UEFI можно непосредственно в работающей операционной системе, с экспериментами в BIOS следует быть крайне осторожным. Несоответствующая прошивка или некорректная установка могут привести и к тому, что вся компьютерная система перестанет работать.

Краткие итоги

Это вкратце и все, что касается системных вызовов прерываний. Исходя из всего вышесказанного, устранять возникающие проблемы рекомендуется с задействованием указанной диагностической программы с последовательным отключением оборудования. При необходимости сбойные компоненты придется менять. В качестве дополнительного инструмента, который может быть использован для выявления проблем с планками оперативной памяти, целесообразно применять утилиту Memtest86+, однако без необходимых знаний толку от нее не будет никакого.

Прерывания подразделяются на аппаратные (маскируемые и немаскируемые) и программные. Программные прерывания, собственно, прерываниями не являются, это способ вызова определенных процедур. Но процессором программные прерывания обрабатываются как один из типов прерываний.

То, что в соответствии с PCI-спецификациями должны уметь все PCI-карты, но в действительности очень редко реализуется, называется "IRQ-Sharing". Теоретически это означает, что несколько компонент должны довольствоваться одним и тем же IRQ. Но поскольку лишь немногие PCI-карты общаются друг с другом столь гармонично, "Windows 9x" ставит в соответствие каждой карте, насколько это возможно, собственный IRQ. Сложности конфигурирования системных ресурсов, их распределения между сетевыми и звуковыми картами, 3D-ускорителями, стандартными последовательными и параллельными устройствами, а ныне еще видео — и DVD-декодерами постепенно ослабляются с массовым внедрением USB-шины, точнее массовым распространением USB-периферии. Правда, шина USB сама занимает один IRQ. Но зато она обязана включить в систему без дальнейшего расходования ресурсов все периферийные устройства, будь то мышь, клавиатура, сканер или видеокамера.

Еще один термин. "Polling mode" — работа устройства без использования прерываний. Это встречается при работе с простыми SCSI-контроллерами на шине ISA.

Устройство

Комментарии

Системный таймер

Системное прерывание. Генерируется 91 раз за 5 сек. В данном качестве применяется со времени первого PC.

Клавиатура

Системное прерывание, генерируемое контроллером клавиатуры.

Контроллер прерываний

Каскадировано (связано) с IRQ9. Могут возникнуть конфликты, когда одновременно на IRQ2 и IRQ9 должны работать различные устройства. Его использование системой сохраняется для совместимости.

Используется вторым коммуникационным адаптером (UART2). Какое же устройство будет его генерировать? Это может быть второй последовательный порт COM2 (интегрирован на материнской плате), внутренний модем, настроенный на COM2 или COM4, или инфракрасный адаптер. Можно отключить UART2, но присвоить IRQ3 ничему не удастся. Делит одно и то же IRQ3 с COM4 (при наличии последнего). Возможен конфликт при одновременном использовании.

Устройство

Комментарии

Используется первым коммуникационным адаптером. Все практически идентично: генерируется первым последовательным портом COM1, модемом на COM1 или COM3 (за исключением инфрапорта). Делит одно и то же IRQ4 с COM3 (при наличии последнего). В системах с подключенной к COM1 мышью использовать COM3 не следует.

свободен

Прерывание изначально предназначалось для использования вторым параллельным портом LPT2. Практического применения такое решение не нашло, поэтому IRQ5 перешло в разряд свободных. В IBM XT на IRQ5 "висел" жесткий диск. Через некоторое время "Creative Labs", создавая звуковую карту "Sound Blaster Pro", нашла применение прерыванию. С тех пор IRQ5 стало излюбленным для большинства звуковых ISA-карт. Звуковые PCI-карты также иногда используют это прерывание для эмуляции "SB Pro". IRQ5 можно привязать к слоту PCI.

Устройство

Комментарии

Контроллер FDD-дисковода

Прерывание используется контроллером флоппи-дисковода, начиная с первых ПК. Однако прерывание все равно не может быть использовано: ISA-карты на работу с ним не рассчитаны, и к слоту PCI привязать его нельзя.

По умолчанию прерывание первого параллельного порта LPT1. При отключенном порте (если принтер отсутствует или рассчитан на USB) может использоваться различными устройствами: сетевыми, ISDN-картами. Это также "запасное" место для звуковых карт.

Часы реального времени (RTC)

Системное прерывание со времени первых IBM AT.

свободен

Каскадировано с IRQ2. В остальном может использоваться по усмотрению.

свободен

Может быть использовано по усмотрению. Устаревшие IDE-контроллеры на старых звуковых картах иногда используют это IRQ.

Устройство

  • Articles
  • IRQ - как решить проблему с прерываниями

    Представим например такую ситуацию, что у вас установлен Dial-Up модем на ПК, всё работает нормально до тех пор, пока модемом не подключаетесь к Интернету, курсор мышки сидящей на PC/2 порте начинает самопроизвольно двигаться. После этого (через некоторое) время ПК перезагружался. При том ни переустановка драйверов, ни установка заново Windows не помогает.
    Такая проблема присуще IRQ, когда несколько устройств мешают друг-другу работать.
    Итак, прерывания или IRQ (Interrupt Request) - это сигналы, которые сообщают процессору, что нужно обработать поступивший от устройства запрос, а посылает процессору оные сигналы контроллер этого самого устройства, т.е. при помощи IRQ процессор реагирует на различные события.
    Так вот, ошибки или конфликты возникают, когда несколько устройств (если драйвер хотя бы к одному устройству написан “криво”) пытаются работать на одном прерывании.
    Это очень проблематично, потому что многие современные устройства, особенно звуковые карты, контроллеры, TV-тюнеры, ... несут на себе сразу несколько устройств. Даже самые простые звуковые карты имеют на плате не менее четырех устройств.
    В таблице ниже показано, как выглядит карта прерываний в современном компьютере.

    IRQ

    Описание

    0
    1

    Клавиатура

    2

    Контроллер IRQ 8-15

    3
    4
    5

    LPT2, звуковые платы ISA и PCI или сетевая карта. Современные звуковые платы занимают это прерывание исключительно ради совместимости со старыми программами. Также доступно для использования другими устройствами

    6

    Контроллер FDD

    7
    8
    9

    Звуковая или сетевая карты, или свободен

    10

    Свободен

    11

    Шина USB или SCSI. Для других устройств это прерывание может стать доступным только после отключения этих шин в BIOS

    12

    PS/2 (для мыши)

    13

    Раньше был сопроцессор, а сейчас резервируется под старые программы

    14

    Основной контроллер HDD

    15

    Дополнительный контроллер HDD


    Стоит заметить, что дополнительные прерывания могли (и могут) быть высвобождены путем отключения различных занимающих их устройств. Чтобы убедится в правоте зашел в “Сведения о системе” (Пуск > Все программы > Стандартные > Служебные > Сведения о системе).
    Выбрал слева в окне “Ресурсы аппаратуры” и пункт “Прерывания IRQ” и точно модем не на своем прерывании (IRQ отвечающее за СОМ-порты).
    При загрузке системы BIOS раздает прерывания следующим образом: линии IRQ всех устройств, которые поддерживают технологию Plug and Play, а это все современные устройства, получают по одному свободному прерыванию. Если прерывания кончились, а неохваченные устройства еще есть, BIOS раздает их по второму кругу, потому и получается, что несколько устройств получили одно прерывание.
    После распределения BIOS номеров IRQ для устройств, в раздаче начинает участвовать Windows. Для этого надо всегда иметь самые свежие драйверы материнской платы.
    Это очень важно, особенно, если вы собрали/купили современный компьютер с материнской платой на новом или относительно новом чипсете. Для нормальной работы системы, особенно когда прерывания используются совместно, нужно, чтобы Windows распознала чипсет и загрузила IRQ Miniport.
    После этого я перегрузил ПК и зашел в BIOS. Нашел специальный раздел “PnP/PCI Configurations”, в котором собраны настройки ресурсов (может иметь похожее название) в разделе “Advanced”.
    Кроме параметров, распределяющих IRQ, DMA и другие ресурсы, в этом разделе могут присутствовать настройки, влияющие на работу видеосистемы и некоторых других устройств.
    В современных системных платах все ресурсы распределяются автоматически, а количество параметров в разделе PnP/PCI Configurations может быть сокращено до двух-трех наиболее важных параметров. В нем несколько пунктов:
    “Plug and Play OS” или “PNP OS Installed” - этот параметр определяет, кто будет распределять ресурсы: BIOS или операционная система. Возможные значения:
    Yes - BIOS будет конфигурировать устройства, необходимые для загрузки, а остальные настроит операционная система, которая должна поддерживать Plug and Play;
    No - настройка всех устройств и распределение ресурсов будут выполнены с помощью BIOS.
    Начиная с Windows ХР, операционные системы Windows имеют специальный интерфейс конфигурирования - ACPI (Advanced Configuration and Power Interface), который позволяет показывать в системе до 256 IRQ (240 адресов, как бы сказать по мягче: “виртуальные”, т.е. действительно они “раскиданы" на адресах IRQ 0-15).

    Михаил Тычков aka Hard

    Доброго времени суток.

    Давайте рассмотрим такую вот ситуевину: процессор обрабатывает какие-то данные, не важно какие. В этот момент у какого-нить устройства тоже появились данные для обработки. Че делать? Надо просить процессор, что бы тот соизволил обратить на просьбу внимание и решил бы, сейчас обрабатывать эти данные или потом. Так вот эта просьба и есть IRQ или прерывания (вообще-то существуют два типа прерываний: аппаратные (внешние) и программные (внутренние), но поскольку мой раздел называется «Железо и сети», то разговор я буду вести только об аппаратных прерываниях). Строго говоря IRQ – это каналы запросов прерывания, которые используются всевозможными девайсами для того, что бы сообщить процессору о том, что необходимо обработать определенный запрос. Физически, IRQ представляют собой отдельно проложенные линии (проводники) и соответствующие этим линиям контакты в интерфейсах. Все это находится, ессесно на материнской плате. Линии IRQ предназначены только для передачи запросов прерывания.

    А ну-ка разберемся, как вся эта фигня с IRQ происходит. Итак, после получения запроса прерывания, камень сохраняет в стеке содержимое регистров. Затем он обращается к таблице векторов прерываний, где есть список адресов памяти программ, соответствующих определенным номерам прерываний. От номера прерывания зависит, какая программа будет запущена. В основном этими программами являются драйвера, относящиеся к устройствам, пославшим запрос (а уж драйвера туго знают свое дело и разберутся, что дальше делать). После всего этого, процедура обработки возвращает из стека то, с чем работал камень, а проще говоря, отдается управление системой той программе, что работала до запроса прерывания. И так постоянно. Сама таблица находится в оперативной памяти и состоит из 256 элементов по 4 байта и начинается с адреса 0000:0000. Занимает она 1024 Кбайт. Надеюсь, что Вы усвоили простую истину: если необходимо обработать хотя бы один новый байт от какого-либо устройства, необходимо сначала обработать IRQ этого устройства.

    Что бы не было путаницы у IRQ есть иерархия или говоря другим языком – приоритеты. Чем меньше номер прерывания, тем выше приоритет и наоборот, чем больше номер прерывания, тем ниже приоритет. IRQ всего 16. Самый высокий приоритет у IRQ 0, а самый низкий у IRQ 15. Приведу таблицу иерархии:

    Стандартная функция

    Системный таймер

    Контроллер клавиатуры

    Программируемый контроллер прерываний

    Последовательный порт COM 2

    Последовательный порт COM 1

    Стандартный контроллер гибких дисков

    Параллельный порт LPT

    CMOS и часы

    Звуковая или сетевая карты или свободен

    Свободен

    USB или SCSI или свободен

    PS/2 совместимый порт мыши

    Сопроцессор

    Основной контроллер IDE

    Дополнительный контроллер IDE

    А хотите посмотреть свои прерывания? Выберите «Пуск – Выполнить», наберите «msinfo32». В появившимся окне «Сведения о системе», слева, выберите вкладку «Ресурсы аппаратуры – Прерывания IRQ».

    С прерываниями случаются и геморрои. Если произойдет генерация большого количества IRQ, то стек может переполниться и тогда…. тогда Вы потянитесь к кнопочке . Ежели такая фигня будет происходить часто, то необходимо в файле Config.sys увеличить параметр Stacks. Кроме, этого двум различным устройствам PCI может быть назначено одно и то же прерывание. Теоретически такое не должно происходить, но вот на практике случается. В этом случае Вам придется самому назначить прерывание одному из заглючивших устройств. Как это сделать? Жмем . Выскакивает окно «Свойства: Система». Выбираем вкладку «Устройства», ищем в списке то устройство, IRQ которого будем подправлять и жмем на него пару раз мышью. Выскочит окно его свойств, где выберем вкладку «Ресурсы» и снимем галку «Автоматическая настройка». Затем чуть ниже выбираем «Запрос на прерывания» и кликаем опять два раза мышью. Появится окно, где можно изменить номер IRQ. Ни фиг себе и сложно. Но… Назначать прерывания надо с умом. Сверьтесь с таблицей: какие IRQ для чего предназначены. Посмотрите у себя, какие свободны. Может так случится, что свободных прерываний у Вас и не будет. Думаете – все, жопа? Нет! Новых IRQ Вы конечно не добавите, но подумайте, все ли устройства Вам необходимы. Например, как часто Вы используете порты COM. Я ими последние года три не пользуюсь вообще. Ну и на фиг их из системы. Это можно сделать из BIOS. И вот Вам свободные IRQ. Короче, в решении подобной проблемы надо приложить голову и все у Вас получится. А всяких там кулых спецов хочу предупредить сразу - не пишите мне письма типа: «После твоей статьи клиенты пачками стали нести к нам в магазин компы с развороченными настройками!». Я не отвечаю за действия людей, у которых голова и руки растут из того же места, что и ноги. Когда-то я и сам в этом ни черта не смыслил, но ведь разобрался же. Причем мне никто ничего не объяснял. Дорогу осилит идущий!

    Двигаемся дальше. Вообще, следует отметить, что каналы запросов прерывания относятся к системным ресурсам. Дам короткое но очень меткое определение: системными ресурсами называются коммуникационные каналы, адреса и сигналы, используемые узлами компьютера для обмена данными с помощью шин. Вот так вот просто и понятно. К системным ресурсам кроме IRQ относятся: адреса памяти, каналы прямого доступа к памяти и адреса портов ввода/вывода. Но об этом в других статьях. А на сегодня все. Удачи в Ваших начинаниях.

    Для обработки событий, происходящих асинхронно по отношению к выполнению программы, лучше всего подходит механизм прерываний .

    Прерывание можно рассматривать как некоторое особое событие в системе, требующее моментальной реакции. Например, хорошо спроектированные системы повышенной надежности используют прерывание по аварии в питающей сети для выполнения процедур записи содержимого регистров и оперативной памяти на магнитный носитель, с тем чтобы после восстановления питания можно было продолжить работу с того же места.

    Кажется очевидным, что возможны самые разнообразные прерывания по самым различным причинам. Поэтому прерывание рассматривается не просто как таковое, с ним связывают число, называемое номером типа прерывания или просто номером прерывания. С каждым номером прерывания связывается то или иное событие. Система умеет распознавать, какое прерывание, с каким номером произошло и запускает соответствующую этому номеру процедуру.

    Программы могут сами вызывать прерывания с заданным номером. Для этого они используют команду INT. Это так называемые программные прерывания. Программные прерывания не являются асинхронными, так как вызываются из программы (а она-то знает, когда она вызывает прерывание!).

    Программные прерывания удобно использовать для организации доступа к отдельным, общим для всех программ модулям. Например, программные модули операционной системы доступны прикладным программам именно через прерывания, и нет необходимости при вызове этих модулей знать их текущий адрес в памяти. Прикладные программы могут сами устанавливать свои обработчики прерываний для их последующего использования другими программами. Для этого встраиваемые обработчики прерываний должны быть резидентными в памяти.

    Аппаратные прерывания вызываются физическими устройствами и приходят асинхронно. Эти прерывания информируют систему о событиях, связанных с работой устройств, например о том, что наконец-то завершилась печать символа на принтере и неплохо было бы выдать следующий символ, или о том, что требуемый сектор диска уже прочитан его содержимое доступно программе. Использование прерываний при работе с медленными внешними устройствами позволяют совместить ввод/вывод с обработкой данных в центральном процессоре и в результате повышает общую производительность системы. Некоторые прерывания (первые пять в порядке номеров) зарезервированы для использования самим центральным процессором на случай каких-либо особых событий вроде попытки деления на ноль, переполнения и т.п.

    Иногда желательно сделать систему нечувствительной ко всем или отдельным прерываниям. Для этого используют так называемое маскирование прерываний . Но некоторые прерывания замаскировать нельзя, это немаскируемые прерывания.

    Заметим еще, что обработчики прерываний могут сами вызывать программные прерывания, например, для получения доступа к сервису BIOS или DOS (сервис BIOS также доступен через механизм программных прерываний).

    Составление собственных программ обработки прерываний и замена стандартных обработчиков DOS и BIOS является ответственной и сложной работой. Необходимо учитывать все тонкости работы аппаратуры и взаимодействия программного и аппаратного обеспечения. При отладке возможно разрушение операционной системы с непредсказуемыми последствиями, поэтому надо очень внимательно следить за тем, что делает Ваша программа.

    Для того чтобы связать адрес обработчика прерывания с номером прерывания, используется таблица векторов прерываний , занимающая первый килобайт оперативной памяти - адреса от 0000:0000 до 0000:03FF. Таблица состоит из 256 элементов - FAR-адресов обработчиков прерываний. Эти элементы называются векторами прерываний . В первом слове элемента таблицы записано смещение, а во втором - адрес сегмента обработчика прерывания.

    Прерыванию с номером 0 соответствует адрес 0000:0000, прерыванию с номером 1 - 0000:0004 и т.д.

    Инициализация таблицы происходит частично BIOS после тестирования аппаратуры и перед началом загрузки операционной системой, частично при загрузке DOS. DOS может переключить на себя некоторые прерывания BIOS.

    Рассмотрим содержимое таблицы векторов прерываний. Приведем назначение некоторых наиболее важных векторов:

    Описание

    Ошибка деления. Вызывается автоматически после выполнения команд DIV или IDIV, если в результате деления происходит переполнение (например, при делении на 0). DOS обычно при обработке этого прерывания выводит сообщение об ошибке и останавливает выполнение программы. Для процессора 8086 при этом адрес возврата указывает на следующую после команды деления команду, а в процессоре 80286 - на первый байт команды, вызвавшей прерывание.

    Прерывание пошагового режима. Вырабатывается после выполнения каждой машинной команды, если в слове флагов установлен бит пошаговой трассировки TF. Используется для отладки программ. Это прерывание не вырабатывается после выполнения команды MOV в сегментные регистры или после загрузки сегментных регистров командой POP.

    Аппаратное немаскируемое прерывание. Это прерывание может использоваться по-разному в разных машинах. Обычно вырабатывается при ошибке четности в оперативной памяти и при запросе прерывания от сопроцессора.

    Прерывание для трассировки. Это прерывание генерируется при выполнении однобайтовой машинной команды с кодом CCh и обычно используется отладчиками для установки точки прерывания.

    Переполнение. Генерируется машинной командой INTO, если установлен флаг OF. Если флаг не установлен, то команда INTO выполняется как NOP. Это прерывание используется для обработки ошибок при выполнении арифметических операций.

    Печать копии экрана. Генерируется при нажатии на клавиатуре клавиши PrtScr. Обычно используется для печати образа экрана. Для процессора 80286 генерируется при выполнении машинной команды BOUND, если проверяемое значение вышло за пределы заданного диапазона.

    Неопределенный код операции или длина команды больше 10 байт (для процессора 80286).

    Особый случай отсутствия математического сопроцессора (процессор 80286).

    IRQ0 - прерывание интервального таймера, возникает 18,2 раза в секунду.

    IRQ1 - прерывание от клавиатуры. Генерируется при нажатии и при отжатии клавиши. Используется для чтения данных от клавиатуры.

    IRQ2 - используется для каскадирования аппаратных прерываний в машинах класса AT.

    IRQ3 - прерывание асинхронного порта COM2.

    IRQ4 - прерывание асинхронного порта COM1.

    IRQ5 - прерывание от контроллера жесткого диска для XT.

    IRQ6 - прерывание генерируется контроллером флоппи-диска после завершения операции.

    IRQ7 - прерывание принтера. Генерируется принтером, когда он готов к выполнению очередной операции. Многие адаптеры принтера не используют это прерывание.

    Обслуживание видеоадаптера.

    Определение конфигурации устройств в системе.

    Определение размера оперативной памяти в системе.

    Обслуживание дисковой системы.

    Последовательный ввод/вывод.

    Расширенный сервис для AT-компьютеров.

    Обслуживание клавиатуры.

    Обслуживание принтера.

    Запуск BASIC в ПЗУ, если он есть.

    Обслуживание часов.

    Обработчик прерывания Ctrl-Break.

    Прерывание возникает 18.2 раза в секунду, вызывается программно обработчиком прерывания таймера.

    Адрес видеотаблицы для контроллера видеоадаптера 6845.

    Указатель на таблицу параметров дискеты.

    Указатель на графическую таблицу для символов с кодами ASCII 128-255.

    Используется DOS или зарезервировано для DOS.

    Прерывания, зарезервированные для пользователя.

    Не используются.

    IRQ8 - прерывание от часов реального времени.

    IRQ9 - прерывание от контроллера EGA.

    IRQ10 - зарезервировано.

    IRQ11 - зарезервировано.

    IRQ12 - зарезервировано.

    IRQ13 - прерывание от математического сопроцессора.

    IRQ14 - прерывание от контроллера жесткого диска.

    IRQ15 - зарезервировано.

    Не используются.

    Зарезервированы для BASIC.

    Используются интерпретатором BASIC.

    Похожие статьи