Выполнение обработки прерываний в контексте и вне контекста процесса

Чаще всего, процедура обработки прерываний выполняет работу никак не связанную с текущим процессом. Иногда вообще трудно определить, для какого процесса выполняет работу тот или иной модуль ОС, например, планировщик потоков.

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

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

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

Однако бывают такие прерывания, обработка которых всегда выполняется в контексте определенного процесса - это АПС – асинхронные вызовы процедур. (1-й уровень приоритета.) АПС могут пользоваться ресурсами текущего процесса и были введены именно для этого.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: