связь между драйвером устройства и обработчиком прерываний?

#operating-system #linux-device-driver #interrupt-handling

Вопрос:

Это кажется основным вопросом, но я не понимаю, какую конкретную работу выполняют драйвер устройства и обработчик прерываний?

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

Я новичок в OS, большое спасибо.

Комментарии:

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

Ответ №1:

Если эта процедура верна …

Да, это правильно.

Связь между драйвером устройства и обработчиком прерываний?

Обработчик прерываний является частью драйвера устройства.

… какова роль драйвера устройства?

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

Давайте возьмем в качестве примера мышь PS/2:

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

Обработчиком прерывания является некоторый код (например, функция) в драйвере устройства.

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

Драйвер устройства также содержит другую функцию, которая вызывается всякий раз, когда приложение запрашивает информацию с устройства.

Затем эта функция может вернуть приложению положение курсора, вычисленное в обработчике прерываний.

Комментарии:

1. Эти вопросы и ответы не отвечают таким требованиям.

2. @0andriy Вопрос уже стоит на грани того, что я бы назвал «по теме». Тем не менее, мой ответ отвечает на все аспекты, о которых просила операция. Я немного переработаю свой ответ, чтобы улучшить качество.

3. Спасибо вам за хороший ответ, сэр. Я стал лучше понимать.