После многого чтения об обработке прерываний и т. Д., Я все еще могу разобраться с полным процессом обработки прерываний с самого начала.Общие сведения об аппаратных прерываниях и исключениях на процессорном и аппаратном уровне
Например: Деление на ноль. CPU получает команду для деления числа на ноль и отправки его в ALU. Предполагая, что ALU начал процесс деления или выполнил некоторые проверки перед его запуском.
- Как исключение сигнализируется CPU?
- Как ЦП знает, какое исключение произошло из только одного битового сигнала? Есть ли регистр, который читается после того, как его прервут, чтобы это узнать? 2. Как мое приложение выхватывает исключение? Нужно ли мне написать какую-нибудь функцию, чтобы поймать specipic SIGNAL или что-то еще? И когда я пишу процедуру обработки истечения, как Try {} Catch {} И возникает исключение, как я могу узнать, что выкидывает и обрабатывает?
Самая важная часть, которая меня беспокоит, например, когда сигнал перехвата сигнализируется с клавиатуры на PIC, в свою очередь, pic указывает на процессор, что произошло прерывание, изменив wite INT. Но как ЦП знает, какое устройство нужно обслуживать? Каковы процессы, выполняемые ЦП при включении PIN-кода INTR? Есть ли у него процедура, которая проверяет некоторый регистр, который имеет значение прерывания (которое установлено ПОС при включении провода INT?)
Пожалуйста, не запрещайте запись, для меня очень важно, чтобы понять эту тему, я прочитал исследуемую пару слабых сторон, но connot подключил точки в моей голове.
Спасибо.
Может быть прочитано http://wiki.osdev.org/Interrupts (предполагается, что x86 arch) – BadZen
Уже прочитал – user3601643
Ну, тогда как часть «Когда приходит прерывание, IDT (который устанавливается ОС в advance) используется для перехода на часть кода ОС, которая обрабатывает прерывание .... «не ответите на свой вопрос? – BadZen