Система прерываний: 16. Система прерываний программ. Функции и назначение.

Содержание

Системные прерывания грузят процессор | remontka.pro

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

Системные прерывания не являются процессом Windows, хотя и отображаются в категории «Процессы Windows». Это, в общих чертах, — событие, вызывающее прекращение выполнения текущих «задач» процессором для выполнения «более важной» операции. Существуют различные типы прерываний, но чаще всего высокую нагрузку вызывают аппаратные прерывания IRQ (от оборудования компьютера) или исключения, обычно вызываемые ошибками работы оборудования.

Что делать, если системные прерывания грузят процессор

Чаще всего, когда в диспетчере задач появляется неестественно высокая нагрузка на процессор, причиной является что-то из:

  • Неправильно работающее оборудование компьютера
  • Неправильная работа драйверов устройств

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

Прежде чем приступать к поиску конкретной причины, рекомендую, если это возможно, вспомнить, что выполнялось в Windows непосредственно перед появлением проблемы:

  • Например, если обновлялись драйверы, можно попробовать откатить их.
  • Если было установлено какое-то новое оборудование — убедиться в правильности подключения и работоспособности устройства.
  • Также, если ещё вчера проблемы не было, а с аппаратными изменениями связать проблему не получается, можно попробовать использовать точки восстановления Windows.

Поиск драйверов, вызывающих нагрузку от «Системные прерывания»

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

  1. Скачайте и установите LatencyMon с официального сайта разработчика https://www.resplendence.com/downloads и запустите программу.
  2. В меню программы нажмите кнопку «Play», перейдите на вкладку «Drivers» и отсортируйте список по колонке «DPC count».  
  3. Обратите внимание на то, какой драйвер имеет наибольшие значения DPC Count, если это драйвер какого-то внутреннего или внешнего устройства, с большой вероятностью, причина именно в работе этого драйвера или самого устройства (на скриншоте — вид на «здоровой» системе, т.е. более высокие количества DPC для приведенных на скриншоте модулей — норма).
  4. В диспетчере устройств попробуйте отключить устройства, драйверы которых вызывают наибольшую нагрузку согласно LatencyMon, а затем проверить, была ли решена проблема.
    Важно:
    не отключайте системные устройства, а также находящиеся в разделах «Процессоры» и «Компьютер». Также не стоит отключать видеоадаптер и устройства ввода. 
  5. Если отключение устройства вернуло нагрузку, вызываемую системными прерываниями в норму, удостоверьтесь в работоспособности устройства, попробуйте обновить или откатить драйвер, в идеале — с официального сайта производителя оборудования.

Обычно причина кроется в драйверах сетевых и Wi-Fi адаптеров, звуковых карт, других карт обработки видео или аудио-сигнала.

Проблемы с работой USB устройств и контроллеров

Также частой причиной высокой нагрузки на процессор со стороны системных прерываний является неправильная работа или неисправность внешних устройств, подключенных по USB, самих разъемов или повреждение кабелей. В этом случае в LatencyMon вы навряд ли увидите что-то необычное.

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

Поэтому могу рекомендовать более простой метод: откройте диспетчер задач, так чтобы было видно «Системные прерывания» и поочередно отключайте все без исключения USB устройства (включая клавиатуру, мышь, принтеры): если вы увидите, что при отключении очередного устройства нагрузка упала, то ищите проблему в этом устройстве, его подключении или том USB-разъеме, который для него использовался.

Другие причины высокой нагрузки от системных прерываний в Windows 10, 8.1 и Windows 7

В завершение некоторые менее часто встречающиеся причины, вызывающие описываемую проблему:

  • Включенный быстрый запуск Windows 10 или 8.1 в сочетании с отсутствием оригинальных драйверов управления электропитанием и чипсета. Попробуйте отключить быстрый запуск.
  • Неисправный или не оригинальный адаптер питания ноутбука — если при его отключении системные прерывания перестают грузить процессор, дело скорее всего в этом. Однако, иногда, виноват не адаптер, а батарея.
  • Звуковые эффекты. Попробуйте отключить их: правый клик по значку динамика в области уведомлений — звуки — вкладка «Воспроизведение» (или «Устройств воспроизведения»). Выбираем используемое по умолчанию устройства и нажимаем «Свойства». Если в свойствах присутствуют вкладки «Эффекты», «Пространственный звук» и похожие, отключаем их. 
  • Неправильная работа оперативной памяти — выполните проверку оперативной памяти на ошибки.
  • Проблемы с работой жесткого диска (основной признак — компьютер то и дело зависает при доступе к папкам и файлам, диск издает необычные звуки) — выполните проверку жесткого диска на ошибки.
  • Редко — наличие нескольких антивирусов на компьютере или специфических вирусов, работающих напрямую с оборудованием.

Есть еще один способ попробовать выяснить, какое оборудование виновато (но что-то показывает редко):

  1. Нажмите клавиши Win+R на клавиатуре и введите perfmon /report затем нажмите Enter. 
  2. Подождите, пока будет подготовлен отчет. 

В отчете в разделе Производительность — Обзор ресурсов вы можете увидеть отдельные компоненты, цвет которых будет красным. Присмотритесь к ним, возможно, стоит выполнить проверку работоспособности этого компонента.

remontka.pro в Телеграм | Другие способы подписки

Поддержать автора и сайт

6. Система прерываний [Мозаика системного администрирования]

Содержание

  • 6. Система прерываний

    • 6.1. Разрешение и запрещение прерываний

    • 6.2. Приём запросов в ЦП

    • 6.3. Обработка прерываний

      • 6.3.1. Обработка немаскируемого прерывания

      • 6.3.2. Маскируемое прерывание. Режим 0

      • 6.3.3. Маскируемое прерывание. Режим 1

      • 6.3.4. Маскируемое прерывание. Режим 2

Прерывания служат для приостановки прямого выполнения программы, с тем, чтобы процессор смог отреагировать на определенный запрос, сформированный периферийный устройством в зависимости от какого–либо обстоятельства. Реакция ЦП на запрос выражается в переходе к выполнению некоторой программы, которая называется программой обработки прерывания (Interrupt – Service Routine — ISR). После её окончания продолжается выполнение прерванной программы1). Путём присвоения приоритетов запросам можно добиться, чтобы ЦП реагировал, прежде всего, на наиболее важное событие, игнорируя запросы либо прерывая ISR менее важных.

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

Различные варианты применения прерываний являются эффективным средством повышения производительности микропроцессорной системы.

6.1. Разрешение и запрещение прерываний

Для приёма запросов на прерывания микропроцессор Z80 имеет два входа: INT и NMI.

Различие между ними — в приоритете и маскируемоести.

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

Состояние «запретить прерывания» либо «разрешить прерывания» запоминается программно–доступный триггером IFF1 (Interrupt Flip Flop) внутри ЦП. Посредством команды разрешения прерываний EI (Enable Interrupt) либо запрещения прерываний DI (Disable Interrupt) этот триггер соответственно устанавливается либо сбрасывается. В некоторых случаях для сохранения его текущего состояния требуется промежуточная память, в качестве которой предусмотрен триггер IFF2.

При сбросе ЦП сигналом /RESET оба триггера сбрасываются, блокируя требования на маскируемые прерывания. Посредством команды EI их можно разблокировать. Когда прерывание принимается, IFF1 и IFF2 также автоматически сбрасываются, чтобы предотвратить дальнейшие прерывания до тех пор, пока они не будут разрешены новой командой EI.

Применение EI внутри IBR дает следующие две возможности:

  • а)

  • б)

Важное обстоятельство: при выполнении команды EI поступивший в это время запрос на прерывание будет блокирован до тех пор, пока не выполнится следующая за EI команда. Цель такой задержки состоит в том, чтобы гарантировать (после команды EI) возможность выполнения команды возврата из ISR (RET или RETI).

NMI (немаскируемое прерывание) имеет более высокий по отношению к INT приоритет и не монет быть запрещено программным способом. Таким образом, если оно затребовано каким–либо периферийным устройством, то ЦП, безусловно, прерывает текущую программу. Этот вид прерываний предназначен, как правило, для очень важных событий (отказ, спад напряжения питания и др.).

В отличие от INT. когда состояния IFF1 и IFF2 совпадают, при подтверждении немаскируемого прерывания IFF1 сбрасывается, а IFF2 остается без изменений. Это делается для того, чтобы на время обработки NMI сохранить состояние IFF1. которое имелось до приема /NMI. После окончания NMI-SR по команде возврата RETN состояние IFF1 восстанавливается из IFF2.

Команды LD A,I и LD A,R предоставляют возможность тестирования IFF2: они пересылают содержимое IFF2 в P/V–флаг. Т. е. значение IFF2 может использоваться для ветвления программы.

В таблице 6.1 в компактном виде представлены все действия, влияющие на состояние триггеров разрешения прерываний.

Таблица 6.1. Состояние триггеров разрешения прерываний

Операция IFF1 IFF2 Примечание
Сброс
ЦП
сигналом /RESET
0 0Запрещение INT при пуске системы
Команда EI 1 1Разрешение INT (задерживается на одну команду)
Команда DI 0 0Запрещение INT
Прием INT 0 0Прием INT и обработка прерывания
Команда RETIВыход из ISR
Прием NMI 0Прием NMI и обработка прерывания
Команда RETN IFF1←IFF2Выход из NMI-SR
Команда LD A,IP/V ← IFF2
Команда LD A,RP/V ← IFF2

■ — состояние триггера не изменяется

6.

2. Приём запросов в ЦП

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

Кроме двух входов прерывания у микропроцессора Z80 есть ещё вход запроса шины для ПДП (/BUSRQ), который имеет более высокий приоритет и, следовательно, тоже влияет на разрешение/запрещение прерывания.

На рис.6.1 в упрощенном виде показаны основные аппаратные средства микропроцессора, предназначенные для приёма запросов /BUSRQ, /NMI, /INT. Каждая линия запроса снабжена соответствующим триггером приёма (Рlip-Flop): BUSRQ-FF, NMI-FF, INT-FF, в которые по нарастающему фронту последнего такта (TL) машинного цикла вводится информация о запросах. Установка какого–либо из этих триггеров означает приём соответствующего запроса в ЦП. Далее принятые запросы обрабатываются устройством управления, где в соответствии с указанными приоритетами подтверждается в первую очередь тот или иной запрос, и вырабатываются соответствующие внутренние и внешние сигналы управления.


Рис. 6.1. Прием запросов /BUSRQ, /NMI, /INT

Линии приема запросов имеют существенные различия.

Триггером BUSRQ-FF анализируется уровень сигнала /BUSRQ по нарастающему фронту последнего такта (TL) каждого машинного цикла 2).

Активный уровень сигнала /NMI сразу фиксируется входным триггером независимо от времени его поступления. Его Состояние (а не уровень /NMI) анализируется триггером NMI-FF по нарастающему фронту TL последнего цикла команды.

Уровень сигнала /INT до приёма в INT-FF анализируется схемой логики маскирования, где он может быть блокирован поступающими сюда же сигналами:

  • от триггера разрешения/запрещения IFF1,

  • от входного триггера NMI,

  • от устройства управления, который сигнализирует об обработке запросов с высшими приоритетами.

Уровень результирующего сигнала анализируется триггером INT-FF по нарастающему фронту TL последнего цикла команды.

Приоритет /BUSRQ по отношению к /NMI и /INT состоит в следующем. При одновременном поступлении запроса шины и одного из запросов прерывания подтверждается запрос /BUSRQ, и шина предоставляется для ПДП. Запрос шины может прервать обработку NMI-SR или ISR на любой цикле. Во время ПДП прерывания от входов /NMI и /INT не обслуживаются.

Приоритет /NMI по отношению к /INT состоит в том, что если оба запроса поступили до нараставшего фронта такта TL последнего цикла команды, то /INT не воспринимается внутренним триггером INT-F/F и, следовательно, игнорируется до конца NMI-SR. Если же в течение одной команды запрос INT поступил до нарастающего фронта TL, а NMI — после, то выполняется первая команда программы обработки INT, и только потом — переход к программе обработки NMI.

При подтверждении одного из запросов прерывания (NMI либо INT) процессор вырабатывает соответствующий цикл подтверждения (см. в конце таблицы 5.3).

Все реакция ЦП на сигналы управления /BUSRQ, /NMI и /INT с учётом граничных условий представлены в таблице 6.2, а также в виде алгоритма на рисунке 6.2.

Таблица 6.2. Реакция ЦП на запросы /BUSRQ, /NMI, /INT

Сигнал Поступление сигнала Приём сигнала Действие Примечание
/BUSRQДо нарастающего фронте такта TLПри нарастающем фронта такта TL любого машинного циклаПодтверждение (/BUSAK) в следующем машинном цикле/BUSRQ имеет высокий приоритет, чем /NMI и /INT
/NMIВнутри цикла до нарастающего фронта такта TLСразу фиксируется во входном триггере NMI (мин. ширина импульса 80 мс)Непосредственно после обработки этой команды – переход к программе обработки NMI (так же непосредственно после EI)Для повторного выполнения программы обработки NMI сигнала /NMI должен быть выключен на короткое время
Внутри цикла после нарастающего фронта TLПосле обработки этой команды выполняется следующая, потом переход к программе обработки NMI
/INTДо нарастающего фронта такта TLТолько при нарастающем фронте последнего такта команды (TL)После обработки команды, если прерывания были разрешены, переход к ISR. Если прерывания запрещены — /INT игнорируетсяПри выполнении команды EI /INT не прерывается, независимо от состояния IFF1 и IFF2.
Он может быть принят при выполнении следующей за EI команды (если будет активен до нарастающего фронта TL этой команды)
После нарастающего фронта такта TLБлокируется независимо от состояния IFF1 и IFF2Может быть принят при выполнении следующей команды, если будет активен до нарастающего фронта её последнего такта TL


Рис. 6.2. Алгоритм обработки запросов /BUSRQ, /NMI, /INT

6.3. Обработка прерываний

6.3.1. Обработка немаскируемого прерывания

Если принят запрос NMI, то по завершении текущей команды состояние счётчика команд PC автоматически сохраняется в стеке, и в PC заносится адрес 0066H. Т.е. происходит перезапуск процессора с адреса 66H. С этого места в памяти должна начинаться подпрограмма обработки NMI; завершаться она должна командой возврата RETN. Алгоритм обработки NMI изображен на рисунке 6. 3, временные диаграммы вызова подпрограммы и возврата из неё — на рисунке 6.4 и рисунке 6.5 соответственно.


Рис. 6.3. Алгоритм обработки немаскируемого прерывания


Рис. 6.4. Вызов программы обработки немаскируемого прерывания


Рис. 6.5. Возврат из подпрограммы обработки немаскируемого прерывания

6.3.2. Маскируемое прерывание. Режим 0

Этот режим аналогичен реализованному в МП Intel 8080. Для него необходима внешняя вспомогательная логика, которая в случае прерывания подает команду на шину данных ЦП. Передача этой команды происходит в цикле подтверждения INTA, когда одновременно активизируются сигналы /M1 и /IORQ (см. рисунки 4.9 и 6.6).


Рис. 6.6. Подача запроса на прерывание и формирование сигнала подтверждения прерывания

Т.е. происходит чтение кода операции, но не из памяти, а из прерывающего устройства. Это может быть любая команду, однако, наиболее эффективно в этом случае использование одной из восьми команд повторного запуска RST p, где p — адрес рестарта. Для использования этих команд на ШД должны быть поданы следующие комбинации битов:

Команда D7 … D0
RST 00H 11 000 111
RST 08H 11 001 111
RST 10H 11 010 111
RST 18H 11 011 111
RST 20H 11 100 111
RST 28H 11 101 111
RST 30H 11 110 111
RST 38H 11 111 111

Алгоритм обработки изображен на рис. 6.7. Если в подпрограмме присутствует команда EI, то после выполнения следующей за ней команды происходит установка IFF1, IFF2. Эти блоки отмечены пунктиром.

Как и для МП I8080, в этом режиме возможно использование контроллера прерываний 8259 (580ВН59). Этот вариант подробно рассмотрен в книге 7.

Режим 0 автоматически устанавливается при выполнении общего сброса, а также соответствующей командой IM0 (Interrupt Mode 0).


Рис. 6.7. Алгоритм обработки маскируемого прерывания. Режим 0.


Рис. 6.8. Вызов программы обработки маскируемого прерывания ISR в режиме 0 (IM 0)

6.3.3. Маскируемое прерывание. Режим 1

Режим прерываний 1 устанавливается командой IM 1. Он применяется в системах с минимальной конфигурацией, где нежелательно наращивание аппаратной части введением вспомогательной логики. Обработка сходка с NMI, за исключением того, что вместо адреса 0066H происходит рестарт к адресу 0038H и цикл подтверждения продлевается на два такта ожидания. Возврат — по команде RET.


Рис. 6.9. Алгоритм обработки маскируемого прерывания. Режим 1


Рис. 6.10. Вызов программы обработки маскируемого прерывания ISR в режиме 1 (IM 1)

6.3.4. Маскируемое прерывание. Режим 2

Режим прерываний 2 устанавливается командой IM 2. Это самый производительный режим прерываний микропроцессора Z80. Он применяется в сложных системах с развитой сетью периферийных элементов. При этом в памяти программируется таблица стартовых адресов каждой ISR (см. рис. 6.11). Таблица может быть размещена в любой области памяти с соблюдением лишь правила записи стартовых адресов: младший байт заносится в ячейку с чётным адресом (A0=0),старший байт в следующую (по возрастанию) ячейку.

В случае приёма прерывания ЦП формирует 16–разрядный указатель IP (Interrupt Pointer) для выборки стартового адреса нужной программы ISR из таблицы. Для этого прерывавшим устройством в виде 8 разрядного вектора поставляется младший байт, а старики извлекается из регистра I микропроцессора. Сформированный таким образом IP указывает на ячейку памяти (в таблице), где хранится стартовый адрес ISR. Считав этот адрес из двух смежных ячеек, процессор переходит к обработке программы ISR. Возврат из неё должен происходить по команде RETI. В целом алгоритм обработки изображен на рис. 6.12.

В микропроцессорном комплекте Z80 предусмотрено, что периферийные БИС могут выдавать в качестве вектора прерывания только чётные байты (D0=0) — для однозначности адресации ячеек таблицы. Значит, даже при неизменном состоянии регистра I центрального процессора возможно обслуживание 128–ми устройств в режиме прерываний 2, что во многом превышает потребности микропроцессорной системы среднего класса.

Для перехода к ISR в режиме 2 требуется 19 тактовых периодов (см. временные диаграммы на рис. 6.13): 7 периодов для ввода 8 разрядного вектора от прерывающего устройства, следующие 6 — для сохранения в стеке текучего состояния PC (адреса возврата), и ещё 6 — для считывания стартового адреса ISR.

Подробное описание прерываний в системе с полной конфигурацией, особенно, в отношении периферийных элементов комплекта Z80, а также организации приоритетного обслуживания см. в книге 7 «Z80/Построение систем. Программирование. Отладка».


Рис. 6.11. Переход к ISR в режиме прерывания 2:

  • 1а — приём вектора прерывания устройства в ЦП,

  • 1б — адрес возврата сохраняется в стеке,

  • 2 — сформированный 16–разрядный IP указывает на начальный адрес ISR,

  • 3 — начальный адрес ISR загружается в PC,

  • 4 — считывается 1–я команда программы ISR.


Рис. 6.12. Алгоритм обработки маскируемого прерывания. Режим 2.


Рис. 6.13. Вызов программы обработки маскируемого прерывания ISR в режиме 2 (IM 2).


Z80, 📖 Центральный процессор Z80CPU

1)

Для корректного возврата в прерванную программу предусмотрено следующее:

  • при входе в ISR адрес возврата автоматически сохраняет я в стеке;

  • внутри ISR программно предпринимаются меры для сохранения содержимого регистров ЦП двумя способами:

    • а) смена блока регистров командами EXX, EX AF,AF’

    • б) пересылка в стек командой PUSH

2)

Временные диаграммы процессов при запросе шины изображены на рисунке 4. 8.
Описание режима ПДП для полной конфигурации системы содержится в книге 6 «Контроллер ПДП Z80DMA» и книге 7 «Z80/Построение систем. Программирование. Отладка».

microprocessor_kit_z80-book1/06.txt · Последние изменения: 2021-05-18 13:58 — GreyWolf

Что такое системные прерывания и как их исправить

Что такое   Системные прерывания ? Системные прерывания  является официальной частью операционной системы Windows . Он управляет связью между вашим компьютерным оборудованием и системой . Вы можете найти его в виде процесса в диспетчере задач. Используется для отображения использования ЦП всеми аппаратными прерываниями .

Сталкивались ли вы с Системными прерываниями процесса, перегружающими ЦП  в вашей Windows отображается как на изображении ниже?

Пользователи сообщают о том, что столкнулись с системными прерываниями Windows 10 при 100-процентном использовании ЦП, что в большинстве случаев приводит к сбою системы.

Итак, в этом руководстве мы поможем вам понять, что такое системные прерывания и как исправить системные прерывания при высокой загрузке ЦП в Windows 10.

Что такое системные прерывания?

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


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

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

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

Если система прерывает процесс, который потребляет 10% или более мощности ЦП, вам может потребоваться выполнить некоторые действия по устранению неполадок. Высокая загрузка ЦП является явным признаком того, что где-то на вашем устройстве возникла аппаратная ошибка. Устранив эту проблему, вы сможете ускорить работу компьютера и избежать пагубных сбоев системы.

Является ли системное прерывание вирусом?

Нет. Системные прерывания не являются вирусом. Это официальный и важный компонент Windows, который координирует работу системы Windows и компьютерного оборудования.

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

Кроме того, поскольку системные прерывания не являются реальным процессом и не связаны с какими-либо запущенными файлами .exe или .dll. Никакое вредоносное ПО или вирус не могут напрямую его взломать.

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

Как исправить системные прерывания, использующие высокую загрузку ЦП в Windows 10

Постоянно высокая загрузка ЦП (10% и выше), вызванная системными прерываниями, обычно указывает на то, что драйвер оборудования неисправен или возникла проблема с самим оборудованием. К счастью, это можно исправить.

Предварительные обходные пути

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

  1. Перезагрузка ПК: многие пользователи сообщают, что перезагрузка ПК помогла им решить проблему системных прерываний.
  2. Сканируйте качественный антивирус или программное обеспечение для защиты от вредоносных программ на вашем ПК, чтобы удалить любые вредоносные программы или вирусы, которые могут мешать работе вашего оборудования и вызывать проблему.
  3. Отключите или отключите все подключенные внешние устройства: многие внешние жесткие диски, такие как USB, могут вызвать высокую загрузку ЦП системными прерываниями. Отключение этих внешних устройств может помочь решить проблему.

Если эти обходные пути не работают, перейдите к следующим эффективным исправлениям, которые помогли многим другим пользователям исправить системные прерывания на своих ПК.

Исправление № 1. Отключите корневые концентраторы USB

Чтобы отключить корневые концентраторы USB, т. е. запретить внешнему оборудованию прерывать работу ЦП:

    1. Нажмите Wins Key + S, чтобы открыть поиск Windows, и введите диспетчер устройств.
    2. Щелкните Диспетчер устройств
    3. .
    4. В диспетчере устройств найдите запись Контроллеры универсальной последовательной шины.
    5. Найдите записи корневого концентратора USB
    6. Щелкните правой кнопкой мыши на каждом корневом концентраторе USB > выберите «Отключить устройство» (кроме одного раза для мыши и клавиатуры).

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

    После этого перезагрузите компьютер и проверьте, не использует ли системные прерывания высокую нагрузку на ЦП.

Рекомендуется : Как исправить использование Sedlauncher.exe при полном использовании диска в Windows 10

Исправление № 2: проверьте или обновите драйверы оборудования

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

Чтобы проверить наличие обновлений драйверов 

  1. Нажмите Wins start > перейдите к Настройки > Обновление и безопасность
  2. Перейдите к разделу Windows Update .
  3. Проверьте, доступно ли какое-либо обновление драйвера оборудования.
  4. Если есть, нажмите Далее , чтобы обновить их все.

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

Чтобы обновить определенные драйверы:

  1. Нажмите Winkey + X
  2. В меню нажмите Диспетчер устройств.

  3. Разверните диалоговое окно диспетчера устройств и щелкните правой кнопкой мыши драйвер
  4. Выберите «Обновить драйвер» > затем выберите « Автоматический поиск обновленного программного обеспечения драйвера ».

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

Исправление № 3. Отключите внутренние устройства

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

Если вы имеете в виду потенциальных нарушителей, вы можете сначала отключить их. В противном случае внутренние устройства, которые вам может потребоваться отключить (обычные виновники), включают:

  • Сетевые адаптеры
  • Внутренние звуковые устройства
  • Внутренние модемы
  • Любые дополнительные карты, такие как модемы, карты ТВ-тюнера, адаптеры DSL или ISDN

Примечание. Вы отключите все эти внутренние устройства через Диспетчер устройств

Отключить сетевые адаптеры

  1. Нажмите Winkey + X
  2. В меню нажмите Диспетчер устройств.
  3. Найдите Сетевые адаптеры и , разверните диалоговое окно.

  4. Щелкните правой кнопкой мыши на сетевом адаптере > затем выберите Свойства .

  5. Выберите панель «Дополнительно» > под свойством прокрутите вниз до « Пробуждение по волшебному пакету и Пробуждение по шаблону соответствует ».
  6. В раскрывающемся списке установите их значение равным Disabled один за другим.
  7. Нажмите OK, чтобы сохранить настройки.

Этот процесс должен помочь вам исправить системные сбои.

Исправление № 4: отключить звуковые эффекты (отключить улучшения звука)

Когда вы воспроизводите звуки, например музыку или видеофайлы, система вашего компьютера прерывает использование ЦП. Отключите улучшение звука, чтобы попытаться решить проблему.

  1. Перейдите на панель задач и щелкните правой кнопкой мыши значок динамика (значок звука)
  2. Теперь дважды щелкните устройство по умолчанию (динамик) > откройте свойства
  3. Перейдите на вкладку «Улучшения».
  4. Установите флажок «Отключить все звуковые эффекты».
  5. Нажмите «ОК», чтобы сохранить настройки

Исправление № 5. Обновите BIOS вашего компьютера

Если система прерывает высокую загрузку ЦП в Windows 10, не связанную с аппаратным обеспечением, проблема может заключаться в устаревшем BIOS. В этом случае вам может потребоваться обновить BIOS, чтобы устранить проблему.

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

  1. Откройте поиск Windows > введите CMD > запустите командную строку
  2. Затем введите следующие команды одну за другой > нажмите Enter после каждой команды
    системная информация | findstr /I /c:bios
    wmic bios получить производителя, smbiosbiosversion

Эти команды помогут определить версию BIOS. Далее необходимо перейти на сайт производителя для обновления BIOS. Следуйте инструкциям производителя при обновлении BIOS.

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

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

Мы считаем, что методы, описанные в этой статье, помогут вам устранить системные прерывания, связанные с высокой загрузкой ЦП. Теперь, когда использование ресурсов вашего компьютера вернулось к норме, вы можете наслаждаться им в полной мере. Обязательно продолжайте следить за тем, какие процессы загружают ваш процессор, память и дисковое пространство.

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

Еще кое-что

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

Вам также может понравиться

» Как исправить использование полного диска Sedlauncher.exe в Windows 10
» Как исправить высокую загрузку ЦП с помощью исполняемого файла службы защиты от вредоносных программ (MsMpEng)
» Исправлено: высокая загрузка ЦП и памяти SysMain в Windows 10

Что такое прерывание в ОС

следующий → ← предыдущая

Прерывание — это сигнал, испускаемый аппаратным или программным обеспечением, когда процесс или событие требуют немедленного внимания. Он предупреждает процессор о высокоприоритетном процессе, требующем прерывания текущего рабочего процесса. В устройствах ввода/вывода одна из линий управления шиной предназначена для этой цели и называется Программа обслуживания прерываний 9.0300 (ISR).

Когда устройство вызывает прерывание в процессе, процессор сначала завершает выполнение инструкции. Затем он загружает в счетчик программ (ПК) адрес первой инструкции ISR. Перед загрузкой счетчика программ адресом адрес прерванной инструкции перемещается во временное место. Следовательно, после обработки прерывания процессор может продолжить процесс.

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

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

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

Типы прерываний

Сигналы прерывания могут выдаваться в ответ на аппаратные или программные события. Они классифицируются как аппаратных прерываний или программных прерываний соответственно.

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

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

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

Во многих системах каждое устройство связано с определенным сигналом IRQ. Это позволяет быстро определить, какое аппаратное устройство требует обслуживания, и ускорить обслуживание этого устройства.

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

.
  • Маскируемые прерывания: Процессоры обычно имеют внутренний регистр маски прерываний, который позволяет выборочно включать и отключать аппаратные прерывания. Каждый сигнал прерывания связан с битом в регистре маски; в некоторых системах прерывание разрешено, когда бит установлен, и отключено, когда бит очищен, в то время как в других установленный бит отключает прерывание. Когда прерывание отключено, соответствующий сигнал прерывания будет игнорироваться процессором. Сигналы, на которые влияет маска, называются маскируемые прерывания .
    Маска прерывания не влияет на некоторые сигналы прерывания и поэтому не может быть отключена; они называются немаскируемыми прерываниями (NMI). NMI указывают на события с высоким приоритетом, которые должны быть обработаны немедленно и которые нельзя игнорировать ни при каких обстоятельствах, например, сигнал тайм-аута от сторожевого таймера.
    Для маска прерывание для отключения, а для демаскирование прерывание должно включить его.
  • Ложные прерывания:
    Ложное прерывание — это аппаратное прерывание, источник которого не найден. Термин фантомное прерывание или призрачное прерывание также может использоваться для описания этого явления. Ложные прерывания, как правило, представляют собой проблему с проводной схемой прерывания ИЛИ, подключенной к чувствительному к уровню входу процессора. Такие прерывания может быть трудно идентифицировать, когда система ведет себя неправильно.
    В проводной схеме ИЛИ зарядка/разрядка паразитной емкости через резистор смещения линии прерывания вызовет небольшую задержку, прежде чем процессор распознает, что источник прерывания очищен. Если прерывающее устройство очищается слишком поздно в подпрограмме обслуживания прерываний (ISR), у схемы прерывания не будет достаточно времени, чтобы вернуться в состояние покоя до завершения текущего экземпляра ISR. В результате процессор будет думать, что ожидается другое прерывание, поскольку напряжение на его входе запроса на прерывание будет недостаточно высоким или низким, чтобы установить однозначную внутреннюю логическую 1 или логический 0. Очевидное прерывание не будет иметь идентифицируемого источника, и, следовательно, это называется ложным.
    Ложное прерывание может привести к взаимоблокировке системы или другой неопределенной операции, если ISR не учитывает возможность возникновения такого прерывания. Поскольку ложные прерывания в основном являются проблемой для схем прерываний с проводным ИЛИ, хорошая практика программирования в таких системах заключается в том, чтобы ISR проверял все источники прерываний на активность и не предпринимал никаких действий, если ни один из источников не прерывает.

2. Программные прерывания

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

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

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

Работа с несколькими устройствами

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

  1. Опрос
    При опросе первое обнаруженное устройство с установленным битом IRQ должно быть обслужено первым, и для его обслуживания вызывается соответствующий ISR. Это легко реализовать, но много времени тратится на опрос бита IRQ всех устройств.
  2. Векторные прерывания
    В векторных прерываниях устройство, запрашивающее прерывание, идентифицирует себя напрямую, посылая процессору по шине специальный код. Это позволяет процессору идентифицировать устройство, сгенерировавшее прерывание. Специальный код может быть начальным адресом ISR или местом расположения ISR в памяти и называется вектором прерывания .
  3. Вложенность прерываний
    В этом методе устройство ввода/вывода организуется в структуре приоритетов. Следовательно, запрос на прерывание от устройства с более высоким приоритетом распознается, а от устройства с более низким приоритетом — нет. Процессор принимает прерывания только от устройств/процессов, имеющих приоритет выше него.
    Приоритет процессоров закодирован в нескольких битах PS (регистр состояния процесса) и может быть изменен программными инструкциями, записываемыми в PS. Процессор находится в контролируемом режиме только во время выполнения подпрограмм ОС и переключается в пользовательский режим перед выполнением прикладных программ.

Обработка прерываний

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

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

  1. Обработчик прерываний первого уровня (FLIH) — это жесткий обработчик прерываний или быстрый обработчик прерываний. Эти обработчики прерываний имеют больше джиттера во время выполнения процесса, и они в основном являются маскируемыми прерываниями.
  2. Обработчик прерываний второго уровня (SLIH) — это обработчик программных и медленных прерываний. Эти обработчики прерываний имеют меньший джиттер.

Обработчик прерывания также называется подпрограммой обслуживания прерывания (ISR). Основные характеристики ISR

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

Задержка прерывания

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

  • Tswitch = время, необходимое для переключения контекста
  • ΣTexec = Сумма временного интервала выполнения ISR
  • Задержка прерывания = Tswitch + ΣTexec

Как ЦП реагирует на прерывания

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

ЦП

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

  1. При использовании указателя на текущий блок управления процессом состояние и все значения регистров сохраняются для использования при последующем перезапуске процесса.
  2. Бит режима ЦП переключен на супервизор
  3. С помощью указателя на таблицу обработчиков прерываний и вектора прерывания определяется местонахождение исполняемого кода ядра. Вектор прерывания — это IRQ для аппаратных прерываний и аргумент ассемблерной инструкции прерывания для программных прерываний.
  4. Обработка переключена на соответствующую часть ядра.

ЦП использует таблицу и вектор прерываний, чтобы найти ОС код для выполнения в ответ на прерывания. Программное прерывание показано на изображении ниже.

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

Методы запуска

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

1. Запуск по уровню

Прерывание по уровню запрашивается путем удержания сигнала прерывания на его конкретном (высоком или низком) активном логическом уровне. Устройство вызывает прерывание по уровню, переводя сигнал и удерживая его на активном уровне. Он сбрасывает сигнал, когда процессор отправляет на него команду, обычно после обслуживания устройства.

Процессор производит выборку входного сигнала прерывания во время каждого командного цикла. Процессор распознает запрос на прерывание, если сигнал установлен, когда происходит выборка.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *