Thursday, Feb 23rd

Last update12:13:00 PM GMT

Вы находитесь на: FreeBSD Управление памятью Инициализация физических страниц

Инициализация физических страниц

Чтобы дать процедурам виртуальной памяти более высокого уровня возможность инициализировать физическую память, предусмотрено два интерфейса, pmapjiero jjage() принимает физический адрес и заполняет страницу нулями, pmapjjopyjpage() принимает два физических адреса и копирует содержимое первой страницы во вторую. Поскольку обе процедуры принимают физические адреса, модулю pmap скорее всего придется сначала отобразить эти страницы в адресное пространство ядра, прежде чем он сможет получить к ним доступ.

В реализации PC есть пара глобальных виртуальных адресов ядра, зарезервированных для обнуления и копирования страниц, pmapzero _page() отображает указанный физический адрес в зарезервированный виртуальный адрес, вызывает bzero(), чтобы очистить страницу, а затем удаляет временное отображение с помощью единственного примитива отмены трансляции, используемой pmapremove(). Таким же образом pmap_сору_page() создает отображения для обоих физических адресов, использует bcopy() для копирования, а затем удаляет оба отображения.


Похожие:
Еще по теме:
Советуем прочитать:

Сейчас 28 гостей онлайн