Недавно я начал погружаться в низкоуровневое программирование ОС. Я (очень медленно) в настоящее время работает через две старые книги, XINU и Build Your Own 32 Bit OS, а также некоторые ресурсы, предложенные прекрасными людьми из моего предыдущего вопроса, Как сделать начать работу в разработке операционной системы.
Просто может быть, что я еще не встречал его ни в одном из этих ресурсов, но, вероятно, потому, что большинство этих ресурсов были написаны перед вездесущими многоядерными системами, но мне интересно, как прерывания работают в многоядерном/многопроцессорная система.
Например, скажем, DMA хочет сообщить, что операция чтения файла завершена. Какой процессор/ядро признает, что было подано прерывание? Это процессор/ядро, которое инициировало чтение файла? Не зависит ли он от того, какой процессор/ядро до него дойдет?