#operating-system #linux-device-driver #interrupt-handling
Вопрос:
Это кажется основным вопросом, но я не понимаю, какую конкретную работу выполняют драйвер устройства и обработчик прерываний?
В моем понимании, устройство вызывает прерывание, процессор замечает это, процессор сохраняет состояние и переходит к обработчику прерываний, обработчик обслуживает устройство, процессор возобновляет обработку предыдущей работы. Если эта процедура верна, какова роль драйвера устройства?
Я новичок в OS, большое спасибо.
Комментарии:
1. Драйвер устройства знает , что делать при появлении прерывания. Он также может запрограммировать устройство для включения или отключения определенных прерываний. В общем, ваш вопрос касается очень общих компьютерных конструкций.
Ответ №1:
Если эта процедура верна …
Да, это правильно.
Связь между драйвером устройства и обработчиком прерываний?
Обработчик прерываний является частью драйвера устройства.
… какова роль драйвера устройства?
Драйвер устройства содержит весь код, необходимый для доступа к определенному устройству — например, мыши.
Давайте возьмем в качестве примера мышь PS/2:
Всякий раз, когда у мыши есть какие-то данные, запускается прерывание. Это означает, что процессор выполняет обработчик прерываний так, как вы описали его в своем вопросе.
Обработчиком прерывания является некоторый код (например, функция) в драйвере устройства.
Эта функция может считывать данные с мыши, вычислять положение курсора по считанным данным и сохранять положение в переменной.
Драйвер устройства также содержит другую функцию, которая вызывается всякий раз, когда приложение запрашивает информацию с устройства.
Затем эта функция может вернуть приложению положение курсора, вычисленное в обработчике прерываний.
Комментарии:
1. Эти вопросы и ответы не отвечают таким требованиям.
2. @0andriy Вопрос уже стоит на грани того, что я бы назвал «по теме». Тем не менее, мой ответ отвечает на все аспекты, о которых просила операция. Я немного переработаю свой ответ, чтобы улучшить качество.
3. Спасибо вам за хороший ответ, сэр. Я стал лучше понимать.