В чем разница между адресным пространством логики ядра, виртуальным адресным пространством ядра и виртуальным адресным пространством пользователя - PullRequest
0 голосов
/ 08 февраля 2019

Позвольте мне выразить свое понимание.

  • Предположим, у нас есть 32-разрядное адресное пространство памяти для системы.Таким образом, процесс может получить доступ к любой памяти в диапазоне 4 ГБ

  • Если объем оперативной памяти в системе равен 4 ГБ, ядро ​​делит ее на 1: 3.1 ГБ для ядра, а остальные 3 ГБ для процесса пользовательского пространства.

  • Процесс пространства пользователя получит доступ к системной памяти только в пределах этой памяти 3 ГБ, и какой адрес он получает, определяется таблицей страниц.

  • Логическим адресом ядра является та 1 ГБ (около 896 МБ) памяти, которая зарезервирована только для ядра.Это правильно?

  • Виртуальный адрес ядра - это оставшаяся память, т.е. 104 МБ + 3 ГБ, которые также могут быть назначены для пространства пользователя.Это правильно?

  • виртуальный адрес пользователя - это адрес, сгенерированный процессом пространства пользователя, и соответствующая ему память будет назначена из 3 ГБ, зарезервированных для процесса пространства пользователя ядром.

Дайте мне знать, если мое понимание выше верно?Если нет, пожалуйста, объясните подробно разницу между логическим адресным пространством ядра, виртуальным адресным пространством ядра и виртуальным адресным пространством пользователя.

1 Ответ

0 голосов
/ 09 февраля 2019

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

  1. на 32-битных компьютерах, мы не всегда ограничены адресуемой ОЗУ 4 ГБ, проверьтеэтот вопрос для более подробной информации: ссылка
  2. память - это абстракция для программ пространства пользователя, они видят ее как непрерывный большой кусок памяти, но ядро ​​управляет этой абстракцией с некоторой аппаратной поддержкойс именем MMU, чтобы отобразить используемое виртуальное пространство в программе пространства пользователя в реальный физический адрес или даже в некоторый блок на жестком диске, если активирована подкачка.
  3. ядро ​​может фактически получить доступ к физической памяти,чтобы управлять упомянутой выше абстракцией, она также может использовать эту абстракцию, это зависит от разработчика ядра.

  4. относительно разницы между виртуальной и логической адресацией, проверьте этоответ: ссылка

...