Страничная память: различия между версиями
[непроверенная версия] | [непроверенная версия] |
Содержимое удалено Содержимое добавлено
Луговкин (обсуждение | вклад) Нет описания правки |
Луговкин (обсуждение | вклад) |
||
Строка 38:
Исторически x86 использует 32-битные PTE, 32-битные виртуальные адреса, 4KB-страницы, 1024 записи в таблице, двухуровневые таблицы, старшие 10 бит виртуального адреса — номер записи в директории, следующие 10 — номер записи в таблице, младшие 12 — адрес внутри страницы. Начиная с Pentium Pro, процессор поддерживает страницы размером 4Мб.
Процессор x86 в режиме [[PAE]] (Physical Address Extension) и в режиме x86_64 (long mode) использует 64-битные PTE (из них реально задействованы не все биты физического адреса, от 36 в PAE до 48 в некоторых x86_64), 32-битные виртуальные адреса, 4KB
<!-- картинки из http://en.wikipedia.org/wiki/Physical_Address_Extension -->
<!-- long mode надо отдельно описать, там 2мб страницы -->
Строка 62:
Каждый процесс имеет свой собственный набор таблиц страниц. Регистр «директория страниц» перегружается при каждом [[Переключение контекста|переключении контекста]] процесса. Также необходимо сбросить ту часть TLB, которая относится к данному процессу.
В большинстве случаев ядро ОС помещается в то же адресное пространство, что и процессы, для него резервируются верхние
Память региона ядра часто совершенно одинакова для всех процессов, однако некоторые подрегионы региона ядра (например, регион Windows, где находится подсистема графики и драйвер видео) могут быть различными для разных групп процессов (сессий).
|