2015-06-28 2 views
-1

Рабочий драйвер - это процесс ОС или нет? Wiki говорит: «Процесс - это экземпляр исполняемой компьютерной программы», но dll не является процессом. В другой стороне драйвер имеет виртуальную память, стек и т. Д. Как процесс, но для открытия мы используем CreateFile/fopen.Драйвер - это процесс или нет?

ответ

0

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

Многоуровневые драйверы могут и должны иметь потоки/процессы в качестве поддержки, но самые низкие уровни не могут рассматриваться как процессы/потоки.

+0

Как OS вызывает функции драйвера без контекста? И что, если драйвер хочет выполнить системный вызов (например, получить память)? –

+0

«Как OS вызывает функции драйвера без контекста?» Самые низкие уровни драйверов не всегда вызывают ОС, их прерывают аппаратные средства. «что, если драйвер хочет выполнить системный вызов, например, получить память)? - на самых низких уровнях многие системные вызовы просто недоступны. Попытка позвонить им взорвет ОС. –

Смежные вопросы