Намиране на таблица на страници и директория на страници за нов процес (след превключване на контекст)

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

Знам, че директорията на страницата на новия процес се съхранява във физическа памет. Но как ядрото знае къде да го намери?


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