как xv6 использует прерывания для планирования запросов ввода-вывода на диск - PullRequest
0 голосов
/ 05 апреля 2019

Так что в основном только начали изучать xv6 и как это работает. На моменте я особенно смотрю на прерывания и ide.c.

Я знаю, что исходный код xv6 включает в себя работающий драйвер IDE в ide.c. Кроме того, этот диск IDE представляет собой простой интерфейс с системой Disk, состоящий из четырех типов регистров: управление, командный блок, состояние и ошибка. Эти регистры доступны путем чтения или записи по конкретным адресам ввода-вывода с использованием инструкций ввода-вывода.

Я пытаюсь понять, как операционная система xv6 использует прерывания для планирования запросов ввода-вывода на диск?

1 Ответ

0 голосов
/ 06 апреля 2019

xv6 не использует прерывания для планирования запросов ввода-вывода, но использует прерывания для получения событий «работа выполнена» из IDE диска. После получения прерывания ядро ​​проверяет, успешно ли выполнена операция, и обновляет соответствующую структуру buf. * ​​1001 *

Команды сборки in и out используются ядром xv6 для команды IDE диска с новыми инструкциями и для получения данных, когда уведомление было готово, когда IDE вызывает CPU с прерыванием.

...