Линии irq. Аппаратные прерывания

Линии irq. Аппаратные прерывания

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

То, что в соответствии с 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.

Устройство

Редко какой компьютер, особенно домашний, проживет всю свою жизнь, ни разу не подвергшись или модернизации, или добавлению новых устройств. В большинстве случаев, естественно, при соблюдении самых элементарных правил, такая операция проходит безболезненно, не вызывая никаких особых проблем. Но примерно каждый десятый (или даже двадцатый - не суть важно) компьютер доводится до нерабочего состояния: начинает часто зависать, отказывается выполнять какие-либо функции, а то и просто вываливается в столь любимый всеми нами синий экран смерти. Как правило, наиболее вероятная причина таких неполадок кроется в конфликтах оборудования (нового и старого), не поделивших какие-либо аппаратные ресурсы. Хорошо, если Ваша квалификация позволяет решить возникшие проблемы, или поблизости есть кто-то, который может Вам помочь, а если ничего подобного нет? Однако не боги, как известно, горшки обжигают, посидим, подумаем - глядишь, и прорвемся, ведь не так уж все и сложно, хотя проблема совместимости самого различного оборудования, с момента своего возникновения в середине 80-х годов, до сих пор ни сколько не уменьшилась. Предлагаемая статья поможет пользователю разобраться с одним из видов аппаратных ресурсов, требующихся для оборудования, и чаще всего являющихся первопричиной всевозможных конфликтов - с аппаратными прерываниями (IRQ).

Аппаратные ресурсы системы

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

Гораздо реже используются каналы прямого доступа к памяти (DMA - Direct Memory Access). Данный тип взаимодействия предназначен для устройств, обменивающихся большими блоками данных с оперативной памятью, например, дисковые накопители или принтеры. Весь обмен идет в обход центрального процессора, который лишь инициирует операцию обмена и сразу же приступает к выполнению другой работы. Такой подход способен значительно увеличить производительность всей системы.

А третьим видом ресурсов являются аппаратные прерывания, которые являются базовым механизмом реакции системы на внешние события. Аппаратные прерывания, называемые обычно IRQ (Interrupt ReQuest) - это физические сигналы, с помощью которых контроллер устройства информирует процессор о необходимости обработать некоторый запрос. Условно схема обработки прерывания может выглядеть следующим образом:

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

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

Распределение прерываний

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

  • IRQ 0 - прерывание системного таймера. Генерируется 18,2 раза в секунду. Применяется в данном качестве с момента создания первого компьютера IBM PC (для другого использования этот номер недоступен);
  • IRQ 1 - прерывание клавиатуры. Генерируется контроллером клавиатуры при каждом нажатии на клавишу (для другого использования номер недоступен);
  • IRQ 2 в компьютерах класса XT, использовавших только 8 линий прерываний, был зарезервирован для дальнейшего расширения системы и, начиная с машин класса AT, стал использоваться для подключения второго контроллера. Сегодня IRQ 2 используется системой для совместимости со старым программным обеспечением, для другого использования номер недоступен;
  • IRQ 3 - прерывание асинхронного порта COM 2. Этим же прерыванием пользуются еще и устройства, работающие через порт COM 4. При желании их можно отключить, но присвоить IRQ 3 все равно больше никому не удастся;
  • IRQ 4 по аналогии с предыдущим, это прерывание используется устройствами, занимающими порты СОМ 1/COM 3;
  • IRQ 5 изначально предназначалось для использования вторым параллельным портом LPT2, но потом, когда от второго параллельного порта отказались, IRQ 5 перешло в разряд свободных. Позже активно использовалось большинством звуковых карт ISA. современные PCI-звуковые карты используют это прерывание исключительно для совместимости со старыми играми, подавляющее большинство которых поддерживают SB Pro. IRQ 5 можно использовать для других целей и привязать к слоту PCI;
  • IRQ 6 , начиная с первых PC, используется флоппи-контроллером (для другого использования номер недоступен);
  • IRQ 7 - по умолчанию прерывание первого параллельного порта LPT 1. При отключенном порте (если принтер отсутствует или рассчитан на USB) может использоваться различными устройствами. IRQ 7 можно привязать к слоту PCI;
  • IRQ 8 - прерывание часов реального времени, впервые появившихся в IBM AT. Другое использование невозможно;
  • IRQ 9 и IRQ 10 свободны;
  • IRQ 11 обычно резервируется для шины USB, однако может применяться и в других целях (для этого следует отключить поддержку USB в BIOS);
  • IRQ 12 используется для мыши типа PS/2, однако может применяться в других целях (если мышь PS/2 отсутствует или отключена);
  • IRQ 13 изначально применялось арифметическим сопроцессором, и теперь оно зарезервировано для совместимости со старым программным обеспечением (для другого использования номер недоступен);
  • IRQ 14 и IRQ 15 применяются, соответственно, первичным и вторичным IDE-контроллерами.

Узнать, как в данный момент распределены номера прерываний в Вашем конкретном случае можно несколькими способами. При запуске компьютера, еще до начала загрузки Windows, появляется текстовая таблица конфигурации. Сразу после нее идет перечень PCI-устройств с указанием назначенного им номера IRQ.

Или, если Вы все еще работаете с Windows 9x, то в панели управления есть иконка Система, щелкните на ней - и выбирайте закладку "Устройства". В свойствах устройства "Компьютер" можно найти перечень всех устройств с указанием их IRQ. В Windows 2000/ХР у нас нет непосредственного доступа к управлению прерываниями, поэтому для просмотра списка IRQ нужно воспользоваться стандартной информационной утилитой (Панель управления/Администрирование/Управление компьютером/Сведения о системе/Ресурсы аппаратуры). Ну и, наконец, никто не отменял использование утилит, тестирующих аппаратные и программные возможности компьютера.


Среди них, без сомнения, самой популярной является SANDRA, способная предоставить пользователю исчерпывающую информацию, в том числе и о прерываниях.

Конфликты устройств

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

Как Вы знаете, персональные компьютеры начались с IBM PC ХТ. Его архитектура предусматривала всего восемь линий аппаратных прерываний, которыми управлял специальный контроллер. Каждой из них назначался свой уникальный номер, который определял приоритет прерывания и адрес его обработчика (так называемый вектор прерывания). Следующий вариант архитектуры, IBM PC AT, дополнил существующие линии еще восемью, для управления которыми использовался второй контроллер, подключаемый к одной из линий прерывания первого контроллера. К сожалению, на этом данная архитектура остановилась в своем развитии, поэтому все современные компьютеры, несмотря на значительно возросшее число используемых в них дополнительных устройств, по-прежнему имеют только шестнадцать линий прерываний, одно из которых резервируется для эмуляции второго контроллера.

Изначально у компьютера IBM PC AT была только одна шина, по которой устройства могли общаться с процессором и памятью - ISA. Большинство линий прерываний были закреплены за стандартными ISA-устройствами, поэтому, когда появилась новая универсальная шина PCI, выяснилось, что на ее долю осталось всего четыре свободные прерывания, обозначаемые как INT A, INT B, INT C, INT D, поэтому всего только четыре PCI устройства могут получить в системе независимые прерывания. Но при этом необходимо учитывать, что на особенном положении находится контроллер IDE, который не входит в число тех четырех устройств только потому, что, хотя по способу передачи данных он и является PCI-устойством, но за ним жестко закреплены свои прерывания IRQ 14 и IRQ 15, как для старых устройств ISA. Для шины AGP, которая является разновидностью шины PCI, "пожертвован" INT A, а шина USB, как один из системных компонентов, подключается к PCI, используя INT D, что уменьшает число "честных" PCI устройств всего до двух. Не следует забывать и о подсистеме управления питанием Power Management/System Management, которая так же требует своего прерывания. Таким образом, в реальной жизни, при наличии нескольких устройства PCI, использующих прерывания, невозможно обеспечить им уникальные аппаратные IRQ, и в таких случаях используются аппаратно-программный способ, основанный на базе технологии Plug & Play, что теоретически позволяет избежать возникновения конфликтов. Хотя в реальной жизни может случиться все, что угодно, да и оставшиеся до сих пор устройства ISA не умеют делиться линиями прерываний, потому являются основными провокаторами конфликтов. Таким образом, задача устранения конфликтов сводится к правильному распределению номеров прерываний в случае возникновения проблем с устройствами ISA или "глючными" драйверами.

В системе номера IRQ распределяются между физическими линиями дважды. Первый раз это делает системный BIOS при начальной загрузке системы. Каждому Plug & Play-устройству (а к ним относятся все PCI, современные ISA и все интегрированные на системной плате устройства) назначается один номер из числа доступных. Если номеров не хватает, несколько линий получают один общий. Для устройств PCI это не страшно - при наличии нормальных драйверов и поддержки со стороны операционной системы все должно нормально работать. А вот если один номер получают несколько ISA-устройств или не менее "гремучая" смесь из PCI- и ISA-устройств, то конфликт попросту неизбежен, и тогда придется вмешиваться в процесс автоматического распределения прерываний. В этом случае необходимо отключить все неиспользуемые ISA-устройства (в системах без слотов ISA они, тем не менее, присутствуют: это порты COM1, COM2 и дисковод). Также можно отключить режимы EPP и ECP порта LPT, освободив при этом прерывание IRQ7. Все операции по изменению прерываний в BIOS Setup осуществляются в разделе "PCI/PNP Configuration". Есть два способа повлиять на распределения номеров IRQ: заблокировать конкретный номер и напрямую назначить номер линии. Первый способ доступен для всех BIOS, корректируются пункты меню "IRQ x used by:" (в новых BIOS скрывается в подменю "IRQ Resources"). Тем прерываниям, которые должны быть назначены исключительно ISA-устройствам, нужно поставить "Legacy ISA". Тем самым при раздаче номеров для PCI-устройств данные прерывания будут пропущены. Поступать так следует в том случае, если какое-либо ISA-устройство упорно становится на одно прерывание с PCI-устройством, из-за чего оба они не работают. В таком случае необходимо найти номер этого IRQ и заблокировать его. PCI-устройство переходит на новый номер IRQ, а ISA-устройство остается "при своих". Второй способ управления номерами IRQ - прямое назначение, хотя и несколько сложнее первого, но гораздо более эффективный. Очень прискорбно, что далеко не все современные системные платы позволяют осуществлять эту операцию. В том же подменю BIOS Setup могут быть пункты вида "Slot X use IRQ" (другие названия: "PIRQx use IRQ", "PCI Slot x priority", "INT Pin x IRQ"). Эта опция позволяет устанавливать прерывания индивидуально каждому устройству на PCI и AGP шине. При этом необходимо соблюдать следующие правила:

  • Каждый PCI слот может активизировать до четырёх прерываний - INT A, INT B, INT C и INT D;
  • AGP слот может активизировать два прерывания - INT A и INT B;
  • Нормально когда каждый слот назначен как INT A. Остальные прерывания зарезервированы, если PCI/AGP устройство потребует больше, чем одно прерывание или если запрашиваемое прерывание занято;
  • AGP слот и PCI слот 1 распределяют одинаковые прерывания;
  • PCI слоты 4 и 5 так же распределяют одинаковые прерывания;
  • USB использует PIRQ_4.

Ниже приведена таблица, показывающая связь между PIRQ (Programmable Interrupt Request - программируемый запрос прерывания) и INT (Interrupt - прерывание):

Сигнал AGP Slot
PCI Slot 1
PCI Slot 2 PCI Slot 3 PCI Slot 4
PCI Slot 5
PIRQ_0 INT A INT D INT C INT B
PIRQ_1 INT B INT A INT D INT C
PIRQ_2 INT C INT B INT A INT D
PIRQ_3 INT D INT C INT B INT A

Обычно следует оставить опцию в положении AUTO. Но, если возникла необходимость установить индивидуальное IRQ устройству на AGP или PCI шине, прежде всего, необходимо определить, в каком слоте установлено устройство. Потом, сверившись с таблицей, можно установить основной PIRQ. Например, если сетевая карта установлена в слот 3, то основной PIRQ будет PIRQ_2, потому как все слоты назначаются, по возможности, на INT A. После этого выбирается желаемое IRQ, присваивая ему соответствующее значение PIRQ. Только необходимо помнить, что BIOS будет пытаться назначить PIRQ в INT A для каждого слота. Так что, для AGP и PCI 1 слотов основной PIRQ это PIRQ_0, тогда как для PCI слота 2 основной PIRQ это PIRQ_1 и так далее. Второй раз номера прерываний распределяются операционной системой, хотя Windows 9х начинает вмешиваться в произведенные BIOS-ом действия только в крайних случаях. В Windows 98 управление системой распределения IRQ осуществляется с помощью стандартного менеджера устройств. В списке системных устройств нужно найти шину PCI.


В ее свойствах есть особая закладка. Если все настроено правильно, там будет упомянут минипорт ("успешно загружен"), а управление шиной PCI (Steering) будет включено. Таким образом, Windows"98 имеет средства для управления распределением номеров прерываний между физическими линиями. Но поскольку и BIOS чаще всего с этим хорошо справляется, этот механизм не задействуется. Но иногда он просто необходим. При использовании устаревших ISA-устройств, не поддерживающих технологию Plug & Play, BIOS может его и не заметить, отдав занятое им прерывание PCI-устройству - опять конфликт. Для его разрешения необходимо нужное прерывание зарезервировать в диспетчере устройств Windows"98.

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

А вот о Windows 2000 (а равно и ХР) - разговор отдельный. Если у Вас достаточно современный компьютер, то он наверняка поддерживает интерфейс конфигурирования ACPI. Windows 2000 в таком случае вообще проигнорирует действия BIOS и "повесит" все PCI-устройства на одно логическое прерывание. В общем случае это будет отлично работать (когда нет устройств ISA), но иногда могут возникнуть проблемы. Чтобы получить возможность изменять номера прерываний, нужно либо поменять HAL-ядро, либо переустановить Windows 2000 с отключенным в BIOS ACPI. Замена ядра производится так: в диспетчере устройств выбирается "Компьютер/Компьютер с ACPI", после этого необходимо изменить драйвер на "Стандартный компьютер" и перезагрузиться. Если это не поможет, придется переустановить Windows 2000 заново.

Заключительные советы

Установив новую операционную систему со всеми драйверами устройств и, убедившись в том, что она работает без проблем, стоит записать все настройки компьютера, особенно если осуществлялись какие-либо изменения установок по умолчанию. Надежнее всего такую информацию записать на обычном листке бумаги. Такая информация может быть очень полезна при внесении каких-либо изменений в настроенную систему, а так же поможет решить проблемы, которые могут возникнуть, если при установке нового оборудования все настройки "съедут" (такое иногда тоже бывает). И, самое главное, помните: большинство возникающих проблем связано с низким уровнем компьютерной грамотности хозяина компьютера. Поэтому нужно всегда стремиться к самообразованию, тогда и проблем будет поменьше, а те, что все-таки возникнут - не будут казаться неразрешимыми.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вероятно, наиболее распространенный конфликт прерываний (IRQ) связан с интегрированным последовательным портом COM2, существующим в современных системных платах, и внутренним модемом (имеется в виду полноценный внутренний PC-модем, а не программный модем, который также называется WinModem). Дело в том, что в полноценном внутреннем модеме уже есть поддержка некоторого порта; по умолчанию этот порт назначается в COM2, при этом в системе также обычно включен второй последовательный порт. Таким образом, в системе оказывается два идентичных порта, использующих одни и те же ресурсы (прерывания и адреса порта ввода-вывода).

Решить эту проблему довольно просто: следует войти в BIOS Setup системы и отключить встроенный порт COM2. Кроме того, можно подумать об отключении порта COM1, который также используется крайне редко. Отключение неиспользуемых портов СОМх - один из лучших способов высвобождения прерываний (IRQ) для других устройств.

Еще один распространенный конфликт также связан с последовательными портами. В стандартной таблице распределения прерываний вы, наверное, заметили, что IRQ3 назначается порту COM2, а IRQ4 - порту COM1. Проблема возникает тогда, когда в систему добавляются дополнительные порты COM3 и/или COM4 и им не назначаются вручную свободные прерывания (по умолчанию они используют все те же IRQ3 и IRQ4).

Дополнительные сложности вносит то, что некоторые платы портов не допускают выбора прерываний, отличных от IRQ3 и IRQ4. В результате назначение IRQ3 порту COM4 и IRQ4 порту COM3 приводит к конфликту с портами COM1 и COM2, также использующими эти прерывания: два порта не могут одновременно использовать один и тот же канал управления прерываниями. При работе в DOS это допускалось, поскольку в ней одновременно могла выполняться только одна задача, но в Windows и OS/2 это совершенно невозможно. Для того чтобы в компьютере можно было применять более двух параллельных портов COM, необходима многопортовая плата, которая, помимо прерываний с номерами 3 и 4, позволяет использовать дополнительные прерывания. Совместное использование прерываний в принципе допустимо для устройств, которые в обычных условиях не работают одновременно (или постоянно). Порты не попадают в эту категорию устройств. Совместно можно применять прерывание для сканера и модема, однако и в этом случае, если они будут использоваться одновременно, возникнет конфликт. К счастью, большинство устройств, которые ранее использовали порты (например, мыши, принтеры этикеток и внешние модемы), теперь подключаются к портам USB , так что проблем с необходимостью поддержки множества портов у современных пользователей компьютеров возникать не должно.

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

Если некоторое устройство, упомянутое в таблице, отсутствует (например, встроенный порт мыши (IRQ12) или второй параллельный порт (IRQ5)), их прерывания можно считать доступными. К примеру, второй параллельный порт можно встретить крайне редко, так что отведенное для него прерывание IRQ5 чаще всего используется для платы звукового адаптера. Аналогично прерывание IRQ15 используется для вторичного контроллера IDE . Если в системе к вторичному каналу IDE не подключены дисковые устройства, можно отключить этот контроллер в BIOS, тем самым освободив еще одно прерывание для других устройств.

Следует отметить, что проще всего проверить настройки прерыаний в диспетчере устройств Windows. В системе Windows 95b существует программа HWDIAG, а в Windows 98 и более поздних версиях - консоль Сведения о системе. Эти утилиты позволяют получить детальный отчет об использовании ресурсов в системе, а также об установленных драйверах устройств и записей реестра Windows для каждого из устройств. В системах Windows XP и Vista информацию о системе предоставляет программа Msinfo32.

Чтобы обеспечить максимально возможное количество совместных прерываний в современной системе без разъемов ISA, при работе с системной BIOS выполните следующие действия.

  1. Отключите все неиспользуемые порты в системной BIOS. Например, если вместо последовательного и параллельного портов используются порты USB, отключите их. В результате можно высвободить до трех прерываний.
  2. Укажите прерывание IRQ, освобожденное в п. 1, в списке доступных прерываний для устройств PCI/PnP. В зависимости от версии BIOS соответствующие параметры доступны в разделе PnP/PCI Resource Exclusion или PnP/PCI Configuration.
  3. Активизируйте параметр Reset Configuration Data, чтобы очистить таблицы маршрутизации IRQ в памяти CMOS.
  4. Сохраните изменения и завершите работу с программой настройки BIOS.

Процессор перегружен? Виноваты системные прерывания.

Виной тому, что процессор перегружен практически в течение всего сеанса, могут быть так называемые системные прерывания, а это, в свою очередь, означает, что проблема кроется в области установленного на компьютере оборудования или драйверах для этих устройств. Но предупреждаю сразу: даже объёма всей этой статьи не хватит, чтобы вычленить все причины (и тем более варианты их решений) почему системные прерывания просто убивают Windows. Ибо подход к поиску проблем усложняется использованием куда более сложного инструмента, чем тот, что описывается здесь.

Что такое системные прерывания и как попробовать справиться с перегрузкой процессора?

Системные прерывания появляются в Диспетчере задач в качестве системного процесса, однако по сути они таковым не являются. Эта « » носит лишь репрезентативный характер, отображая загруженность процессора при работе с прерываниями на низком уровне. Она – неотъемлемая часть Windows, убить процесс нельзя. Несмотря на зловещее название, системные прерывания – обязательная и нормальная часть процесса взаимодействия ЦПУ и остального оборудования.

Причиной прерываний (точнее, слишком медленной время от времени работы) могут служить девайсы внутри вашего компьютера, установленные программы, а иногда и сам процессор. Ведь системные прерывания – есть некая форма взаимодействия между программой/«железом» и самим процессором. Всякий раз, когда новому процессу нужно появиться в системе, процессор бросает все дела и выполняет задачу. Неважно, нажал ли пользователь мышку или процесс запущен по расписанию, задача сразу добавляется в очередь на исполнение. По её выполнению процессор возвращается к предыдущему состоянию.

Как понимаете, системные прерывания вполне могут сигнализировать системе и пользователю, что в данный момент некоторые вычисления идут с ошибкой, что и выражается в серьёзных потреблениях ресурсов процессора этим «процессом». В здоровой системе системные прерывания «потребляют» НЕ БОЛЕЕ 2% от общего объёма работы процессора. Хотя мне встречались и процессоры с показателем прерывания от 3 до 10 %% – всё зависит от конфигурации. Но если вы заметили, что процессор тратит на прерывания хотя бы 5 – 10 %% от своей вычислительной мощности от сеанса к сеансу, это сигнал того, что у компьютера проблемы.

Системные прерывания. Как бороться с высокими показаниями?

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

  • ДРАЙВЕРЫ И ЕЩЁ РАЗ ДРАЙВЕРЫ

Самое первое средство, которое поможет определить, виноваты ли битые драйверы в том, что системные прерывания нагружают процессор, это немецкая утилита DPC Latency Checker . Скачайте её по этой ссылке:

Установки не потребуется. Суть утилиты проста. Запускаем и начинаем работу в Windows до тех пор, пока системные прерывания не начнут нам мешать. Вот окно нормально работающей сборки:

А вот они начинают себя проявлять:

Утилита в поле комментария на английском языке советует вам перейти в Диспетчер устройств и приступить к поэтапному отключению сетевых устройств, звуковых карт, USB контроллеров, устройств bluetooth . Советую прислушаться. После каждого отключения всматривайтесь в Диспетчер задач и окно утилиты, посмотрите, как система реагирует на временное отключение оборудования. Продолжите отключением всех внешних устройств: модемы, внешние диски, флешки. И если в какой-то момент наметятся изменения к лучшему, примите решение об обновлении драйвера к устройству. Но чтобы не было проблем с запуском Windows, вот эти устройства лучше не отключать (эти драйверы жизненно необходимы, но это тоже драйверы, и вполне возможно придётся переустановить дрова на материнскую всем пакетом как при установке Windows начисто):

На такой же манер действует и программа LatencyMon

http://www.resplendence.com/downloads

Она потребует установки, зато также бесплатна. Её задача – поиск файлов драйверов с высоким показателем вычислений, потраченных на отложенный вызов процедуры (процесса, который вызывается процедурой обработки прерывания в ответ на само прерывание, но необязательно сразу же исполняется). За этим мудрёным названием скрывается процесс поиска драйверов, в файлах которых хранится информация о том, что драйвер слишком много требует от процессора для обслуживания своего, приписанного конкретно ему устройства. Вот страница издателей:

http://www.resplendence.com/latencymon

на которой, впрочем, я своими слепыми глазами ссылки для скачивания не нашёл, а потому представлю вам возможность скачать программу с моего сайта

СКАЧАТЬ БЕСПЛАТНО ПРОГРАММУ

Запустившись, та сразу сообщила мне о возможных проблемах с DVD приводом – драйвер atapi.sys отвечает именно за него (а кстати, привод не работает уже почти 3 месяца…) . Предупреждает, что возможно потребуется перепрошить BIOS:

Переходим во вкладку Drivers и отсортируем их по наиболее уязвимым показаниям, нажав на колонку DPC count :

К первым в строчке присмотритесь: они и могут быть причиной ваших проблем.

  • ВСЁ ПРОИЗОШЛО КАК-ТО ВДРУГ, ПОСЛЕ ПЕРЕЗАГРУЗКИ

Был один момент, когда ну никак не удавалось вычленить причину тормозов. Помог случай: пользователь “хапнул” вирус, который совершенно уничтожил DirectX, причём действовал крайне избирательно, убивая именно системные файлы Windows, оставляя DirectX игровые . Пришлось ремонтировать систему обновлением, и – о чудо! – вместе с дрянью пропали и системные прерывания. Я не пожалел немного времени, но результат оказался неожиданный. Виновниками оказались не вирусы и не драйверы, а пакеты обновлений. Вот их имена:

  • KB3199986
  • KB4013418
  • KB3211320

Я настаиваю, что именно ПОСЛЕ УСТАНОВКИ ИМЕННО ЭТИХ ОБНОВЛЕНИЙ конкретный пользователь начинал мучиться от перегрузки системными прерываниями. Как-то так… вам информация к размышлению.

  • ИСКЛЮЧАЕМ НЕИСПРАВНОЕ ОБОРУДОВАНИЕ

Тоже может послужить причиной того, что системные прерывания нагружают процессор донельзя. Приступайте к проверке, если предыдущий поиск битых драйверов успеха не принёс. А поможет вам в поиске проблем с “железом” сама Windows и встроенные утилиты самодиагностики. О них я писал уже в статье . Пробегите глазами, информация окажется полезной, не сомневайтесь. Знайте – отошедшие от разъёма шлейфа также могут быть виновниками злоключений. Я лично сталкивался с проблемами и перегрева процессора, и “забывчивости” про-апгрейдить BIOS для новенькой Windows 10 (об этом ниже) – везде итогом были заметные системные прерывания.

ПРИМЕЧАНИЕ . Если системные прерывания одолели ваш ноутбук, вам придётся убедиться, что у вас нет проблем с умирающим аккумулятором. Прочтите статью, собственными силами.

  • ПРОВЕРЬТЕ ЗВУКОВУЮ СХЕМУ WINDOWS

Собственно, речь идёт о том, чтобы сбросить звуковые эффекты в Windows до установленных по умолчанию. Щёлкните по иконке звука правой мышкой и нажмите на Устройства воспроизведения :

Во вкладке Воспроизведение щёлкните два раза по пункту дефолтных устройств (у меня Динамики ), пройдите во вкладку Дополнительные возможности и установите галочку напротив Отключить все эффекты . Применить – ОК. Перезагружаемся и проверяем:

  • ВИНОВАТА BIOS ?

Не исключено. BIOS – первая программа, которая запускается после нажатия на кнопку включения компьютера. Так что время проверить обновления для вашей BIOS. А чтобы поиски нужной версии не затягивались во времени, проверьте версию вашей BIOS прямо сейчас. В консоли команд cmd наберите последовательно две команды:

Systeminfo | findstr /I /c:bios wmic bios get manufacturer, smbiosbiosversion

I в первой команде – это большая латинская i .

Причина в жёстком диске?

“Вполне себе и даже очень”. Самый простой способ – проверьте диск на ошибки с помощью встроенных средств типа chkdsk . Если после “прогона” системные прерывания поутихли, причина обнаружена. Однако в случае, когда проблема появляется вновь и вновь, при всём том chkdsk неизменно обнаруживает ошибки, у вас проблемы (с жёстким, БП или материнской платой) – готовьтесь к худшему.

P.S. Ну, судя по отзывам проблема народ теребит. Обещаю тему развить в следующих статьях.

Успехов вам.

Прочитано: 1 275

просмотров