Задать вопрос
@asault_ceko

Необходима ли виртуальная страничная адресация в 4Гбайта при наличии ОЗУ емкостью 4Гбайта и почему?

Необходима ли виртуальная страничная адресация в 4Гбайта при наличии ОЗУ емкостью 4Гбайта и почему?
  • Вопрос задан
  • 34 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
includedlibrary
@includedlibrary
Виртуальные адреса используются вне зависимости от объёма памяти, они используются для нескольких целей:
  1. Защита памяти одного приложения от вмешательства другого. Так как у каждого процесса своё виртуальное адресное пространство, процессы могут читать/писать только в память, которая была выделена им ОС.
  2. Для защиты памяти, используемой ОС, от пользовательских процессов. Работает аналогично первому пункту.
  3. Запуск программ, размер которых больше, чем доступный объём памяти. Мы можем грузить в память не все страницы программы, а когда исполнение доходит до отсутствующих, процессор выбрасывает исключение page fault, в таком случае часть ранее загруженных страниц можно выгрузить из памяти и загрузить новые по нужному виртуальному адресу.
  4. Также виртуальная адресация позволяет процессу использовать почти всё доступное адресное пространство. Так как страницы операционной системы отображаются в адресное пространство каждого процесса (для выполнения системных вызовов, обработки прерывний и т.п.), можно использовать для ОС очень близкие к концу виртуального пространства адреса, в таком случае остальные адреса будут доступны процессу. Например процессоры архитектуры x86-64 могут использовать до 2^48 или 2^52 байт памяти. Если поместить ядро, например в последние два гигабайта, то любому процессу будут доступны первые 2^48 - 2ГБ адресов, что более чем достаточно
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы