2016-01-10 10 views

ответ

0

Процедура обслуживания прерываний (ISR) будет выполнена в режиме ядра. Таблица перехода, которую использует процессор для определения того, какая программа для запуска на самом прерывании не может быть заменена, поскольку там также обнаружен обработчик ошибок страницы. Я не знаю точно, что произойдет, если адрес обработчика укажет на неотобранную область памяти. Виртуальная память может поддерживаться в режиме ядра, по крайней мере, на x86. Возможно, некоторые архитектуры могут обрабатывать ошибку доступа для ISR-адреса, но ОС никогда не будет реализовывать это, потому что латентность для входа в ISR будет абсолютно неприемлемой.

+0

Благодарим вас за ответ. О, извините за мой английский, вы, вероятно, не понимаете вопроса. Я имею в виду, что обработчик прерываний страдает задержкой, связанной с переводом виртуального адреса на физическое (например, пропуски TLB). Не лучше было бы это сделать - модель памяти делится на скорость, например, 1: 3, где 1/4 памяти не отображается (точно для требований ОС). По мне, OS не требует перевода виртуальных адресов в физическое, когда управляет им. –

+0

Я уверен, что вы можете пойти без таблиц страниц. Или вы можете иметь таблицу страниц на одном уровне, где одна запись верхнего уровня охватывает всю ОЗУ. В любом случае вы (по существу) никогда не будете налагать на себя недостатки промаха TLB. Обратите внимание, что пропуски TLB обычно не составляют больших накладных расходов. Ассоциативность высока, и каждая запись соответствует не менее 4 КБ памяти, поэтому пространственная и временная локализация высока. Поиск TLB осуществляется параллельно с доступом к кешу, поэтому он не несет никаких накладных расходов при попадании. –