Правда ли, что все адресное пространство системного пространства в linux не использует подкачку по требованию?

В настоящее время я изучаю Windows и обнаружил, что Windows использует два раздела памяти, которые они назвали выгружаемый пул и невыгружаемый пул в адресном пространстве системного пространства. Таким образом, только критические разделы окон хранятся в невыгружаемом пуле (который не использует подкачку по требованию). Хотя меня учили, что в linux все адресное пространство системного пространства не использует концепцию подкачки по требованию? Если вся эта информация верна, то я должен сделать вывод, что Windows требует меньше оперативной памяти для запуска, чем Linux?

4 ответа

While I was taught that in linux all the system space address space does not use
the concept of virtual memory?

Это не верно. Ядро Linux и его компоненты (драйверы, подсистемы и т. Д.) Используют виртуальную память. Указатели на функции, указатели, возвращаемые процедурами выделения, являются виртуальными адресами.

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

Если вы говорите об управлении памятью, я надеюсь, что приведенные ниже слова могут ответить на него.

В Linux существует два вида адресного пространства памяти: виртуальное и физическое.
Память управляется в блоке страницы.
Виртуальный адрес сопоставлен с физическим адресом.
виртуальный адрес - это адрес, который вы используете при написании кода.
физический адрес может быть в памяти, на диске или где-то еще.
Диск дешевле и больше памяти, но быстрее, чем диск.
Так что ядро ​​предпочитает использовать память.
Чтобы освободить место для жадного процесса, ядро ​​переместит некоторую страницу из памяти на диск, чтобы освободить память.

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

Я думаю, что и Linux, и Windows имеют сходную механику управления памятью. Поэтому сложно сказать, кто использует меньше.

Ядро использует виртуальную память для выделения vmalloc, но оно всегда поддерживается физической памятью. Это означает, что ядро ​​никогда не сбоит страницы. Сохраняет время ожидания предсказуемым. Те немногие подсистемы ядра, которые обращаются к хранилищу (mm, nfsd, подкачка с файловой поддержкой), должны явно просить vfs отобразить страницы; это сохраняет сложность, где он принадлежит.

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