Обработка программного обеспечения ядра

Я читаю книгу о Windows Internals, и я кое-что не понимаю:

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

Значит ли это, что программные прерывания или исключения будут обрабатываться только при следующих условиях:

**** а. Когда ядро ​​выполняет функцию из указанного потока, связанную с программным исключением (trap) b. когда он уже работает с аппаратной ловушкой ****

Правильно ли мое понимание этого?

Следующий бит:

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

Я не совсем понимаю, что это означает под "функциями обработки ловушек переднего конца" и "выставить ловушку"?

Может кто-нибудь мне помочь?

1 ответ

Программные прерывания - это не ловушки, а части обработки аппаратных прерываний, отложенные из контекста аппаратных прерываний. Примером может служить стек TCP/IP - копирование пакетов из сетевой карты в буферы ОС выполняется / инициируется из процедуры аппаратного прерывания, но обработка протокола (ethernet -> IP -> UDP/TCP) откладывается до программного прерывания. В литературе по операционной системе их часто называют нижними половинами (в отличие от верхних половин, которые напрямую взаимодействуют с аппаратным обеспечением). Это делается для того, чтобы уменьшить объем отключаемых аппаратных прерываний и уменьшить задержку планирования ОС. Как таковые они обычно вызываются в конце общей записи прерывания / прерывания, но после того, как прерывание (я) повторно включено (-и), и / или выделенным потоком ядра программного прерывания.

Другие вопросы по тегам