2015-03-15 1 views

ответ

4

Можем ли мы показать адрес таблицы страниц с помощью программы c?

Не использовать обычную программу C, вы не можете. Программы пользовательского режима работают в виртуальной памяти, которая предоставляется ядром, используя механизмы поискового вызова. Все это абстрагируется, поэтому пользовательское пространство ничего об этом не знает.

Ядро Linux предоставляет механизм для пользовательского пространства для наблюдения за pagetables, однако, как указано в this question.

В чем разница между страничным столом и расширенной страницей?

«Расширенные таблицы страниц» - это реализация Intel Second Level Address Translation (SLAT), also known as nested paging, которая используется для более эффективной виртуализации памяти гостевых виртуальных машин.

В принципе, гостевые виртуальные адреса сначала переводятся на гостевые физические адреса, которые затем переводятся на физические адреса физических лиц. Все это делается на аппаратных средствах (MMU), чтобы избежать дополнительной работы, требуемой VMware в программном обеспечении.

+0

Фактически программа C МОЖЕТ показать адреса таблицы страниц. Но это драйвер режима ядра, написанный на C. Ну, но я не думаю, что OP это продвинутый, чтобы спросить о режиме режима Vs для пользовательского режима – JavaMan

2

1] Что такое таблица страниц второго уровня Расширенные таблицы страниц - это механизм, позволяющий каждой виртуальной машине управлять таблицей страниц, не предоставляя доступ к MMU-аппаратуре основного хоста. Быстро перейдите по ссылке ниже. Он должен дать идею http://www.cs.cmu.edu/~dga/15-440/F10/lectures/vm-ucsd.pdf

2] Возможно ли распечатать таблицу страниц с помощью программы на языке C? - Это вполне возможно. В вашей системе будет драйвер MMU. Драйвер MMU будет настраивать таблицы страниц в некоторой части ОЗУ. Вы должны знать это местоположение. В обычных операционных системах [linux, windows etc]. Эта область памяти будет привилегированной, поэтому приложения могут не получить прямой доступ. Если ваша платформа представляет собой встроенную систему с запущенным на ней микроядро, возможно, вы сможете получить доступ к этой таблице.