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