«Системные прерывания» грузят процессор в Windows 10

Что за процесс Системные прерывания

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

Те самые «Системные прерывания». Значения в пределах нескольких десятых процента или 1-2% — норма.

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

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

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

Видео

Системные прерывания — как устранить

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

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

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

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

Прерывания могут быть разделены на следующие типы:

  • Маскируемое прерывание (IRQ): аппаратное прерывание, которое можно игнорировать, устанавливая бит в битовой маске регистра маски прерываний (IMR).
  • Немаскируемое прерывание (NMI): аппаратное прерывание, в котором отсутствует связанная битовая маска, поэтому ее нельзя игнорировать. NMI используются для задач с высшим приоритетом, например таких как таймеры.
  • Межпроцессорное прерывание (IPI): особый случай прерывания, которое генерируется одним процессором для прерывания другого процессора в многопроцессорной системе.
  • Программное прерывание: прерывание, генерируемое в процессоре путем выполнения инструкции. Программные прерывания часто используются для реализации системных вызовов, поскольку они приводят к вызову подпрограммы с изменением уровня вызова ЦП.
  • Ложное прерывание: нежелательное аппаратное прерывание. Как правило, такие прерывания генерируются системными условиями, такими как электрические помехи в линии прерывания или из-за технически неправильно разработанного оборудования.

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

Прерывание, которое оставляет машину в четко определенном состоянии, называется точным прерыванием. Такое прерывание имеет четыре свойства:

  • Счетчик программ (PC — Program Counter) сохраняется в известном месте.
  • Все инструкции перед тем, на который указывает счетчик программ, полностью выполнены.
  • Никакая инструкция, кроме той, на которую указывает счетчик программ, не была выполнена, или любые такие инструкции отменяются до обработки прерывания.
  • Состояние выполнения инструкции, на которую указывает счетчик программ, известно.

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

Типичное использование

Типичное использование прерываний включает в себя следующее: системные таймеры, дисковый ввод / вывод, сигналы-выключение и ловушки. Существуют прерывания для передачи байтов данных с использованием UART или Ethernet; для чувствительных нажатий клавиш, управления двигателями и т.д.

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

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

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

Теги