Память программ Windows и память программ Linux
Linux создает страницы виртуальной памяти для каждой используемой программы, а ОС обрабатывает сопоставление виртуальных адресов с подлинными аппаратными адресами, верно?
Но как Windows это делает? Действительно ли программы Windows имеют память, которая переводится в реальные аппаратные адреса? Я также знаю, что Windows может использовать память жесткого диска, когда ОЗУ перегружена, и этот процесс снова называется виртуальной памятью, но я считаю, что это совершенно другая концепция?
1 ответ
Windows и Linux (по крайней мере, в 32-64-разрядных системах Intel) реализуют виртуальную память с использованием одного и того же механизма: таблицы страниц с аппаратным обеспечением. ОС и аппаратное обеспечение взаимодействуют друг с другом для сопоставления адресов.
Вся концепция отделения логических адресов, используемых программой, от физических адресов - это то, что называется виртуальной памятью. Использование жесткого диска в качестве резервного хранилища представляет собой реализацию виртуальной памяти, которая использует файл подкачки для увеличения объема виртуальной памяти до объема, превышающего физическую память, установленную в системе.
Виртуальная память - довольно глубокий и широкий предмет. Возможно, начните с этой вики-статьи " Управление памятью", а затем попробуйте поискать в Google для более глубокого понимания.