Память программ Windows и память программ Linux

Linux создает страницы виртуальной памяти для каждой используемой программы, а ОС обрабатывает сопоставление виртуальных адресов с подлинными аппаратными адресами, верно?

Но как Windows это делает? Действительно ли программы Windows имеют память, которая переводится в реальные аппаратные адреса? Я также знаю, что Windows может использовать память жесткого диска, когда ОЗУ перегружена, и этот процесс снова называется виртуальной памятью, но я считаю, что это совершенно другая концепция?

1 ответ

Решение

Windows и Linux (по крайней мере, в 32-64-разрядных системах Intel) реализуют виртуальную память с использованием одного и того же механизма: таблицы страниц с аппаратным обеспечением. ОС и аппаратное обеспечение взаимодействуют друг с другом для сопоставления адресов.

Вся концепция отделения логических адресов, используемых программой, от физических адресов - это то, что называется виртуальной памятью. Использование жесткого диска в качестве резервного хранилища представляет собой реализацию виртуальной памяти, которая использует файл подкачки для увеличения объема виртуальной памяти до объема, превышающего физическую память, установленную в системе.

Виртуальная память - довольно глубокий и широкий предмет. Возможно, начните с этой вики-статьи " Управление памятью", а затем попробуйте поискать в Google для более глубокого понимания.

Другие вопросы по тегам