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

Каким образом выделяются теневые страницы и страницы физической памяти? Какие функции используются для взаимодействия с гипервизором? Существует ли способ выделения физической памяти, возможно ли это через стандартные функции выделения памяти, такие как malloc и new? Можете ли вы привести примеры кода для иллюстрации этого процесса или всё это делается через предоставленную обертку, скрывающую детали вашей физической памяти?
  • 18 февраля 2024 г. 18:28
Ответы на вопрос 2
Таблица теневых страниц (shadow page table) - это структура данных, используемая виртуальной машиной или гипервизором для отображения виртуальных адресов в физические адреса. Теневые страницы создаются для каждой виртуальной машины и содержат соответствие между виртуальными и физическими страницами памяти.

Теневые страницы необходимы для обеспечения безопасного и эффективного разделения физической памяти между различными виртуальными машинами. Они позволяют гипервизору контролировать доступ к физической памяти и обеспечивать изоляцию между виртуальными машинами.

Для выделения теневых страниц обычно используются специальные функции и структуры данных, предоставляемые гипервизором или виртуализационной платформой. Например, виртуализационные платформы типа Xen или VMware предоставляют API для работы с теневыми страницами.

Что касается выделения физической памяти, то это обычно делается через специальные функции и механизмы, предоставляемые операционной системой или гипервизором. Стандартные функции выделения памяти, такие как malloc и new, работают с виртуальной памятью и не позволяют явно выделять физическую память.

Пример использования теневых страниц и работы с физической памятью может быть сложным и зависит от конкретной архитектуры и платформы. Обычно это процессы, скрытые от пользователя за счет использования специализированных инструментов и API.
Какой функций можно выделить теневые страницы. или страницы физической памяти.
Как вообще можно выделить физическую память, это невозможно же, или что есть какой-то особый malloc new?

Никакой.
Каждый процесс имеет свое ВИРТУАЛЬНОЕ адресное пространство. Доступ к физической памяти ведется через него путем хранения таблицы страниц и отображения на физическое адресное пространство.
Этим всем занимается ОС и не только для удобства, но для безопасности.
Какие функции для работы с гипервизором?

Разве что в случае паравиртуализации
Похожие вопросы