Поиск таблицы страниц и каталога страниц для нового процесса (после переключения контекста)

Когда происходит переключение процесса и необходимо использовать таблицы страниц и каталог страниц нового процесса, откуда ядро ​​узнает о расположении каталога страниц для нового процесса?

Я знаю, что каталог страниц нового процесса хранится в физической памяти. Но как ядро ​​узнает, где его найти?


person Sharat Chandra    schedule 27.03.2012    source источник


Ответы (1)


Обычно ядро ​​хранит структуру состояния, описывающую каждый процесс в системе. Где-то в этой структуре будет адрес «корневой» таблицы страниц процесса. На машинах x86 это необходимо сохранить в регистре CR3, чтобы переключиться на новую таблицу страниц. Иногда этот регистр неявно сохраняется и восстанавливается как побочный эффект более крупной операции, которая сохраняет/восстанавливает группу состояний ЦП, а иногда это значение явно управляется ядром.

person P.T.    schedule 28.03.2012
comment
struct proc хранит состояние процесса. Так содержит ли эта структура адрес корневой таблицы страниц? И когда процесс входит в контекст, значение одного из полей помещается в CR3? - person Sharat Chandra; 28.03.2012