Отображение 1 ГБ в ядро в каждом процессе позволяет процессам переключаться в режим ядра, не выполняя также переключение контекста. Ответы на системные вызовы, такие как read()
, mmap()
и другие, могут быть соответствующим образом обработаны в адресном пространстве вызывающего процесса.
Если бы пространство для ядра не было зарезервировано в каждом процессе, переключение в «режим ядра» между выполнением кода пространства пользователя было бы более дорогостоящим, и было бы невозможно использовать виртуальное сопоставление адресов через аппаратный MMU (блок управления памятью) для системные вызовы обслуживаются.
Системы, работающие с 32-битным ядром с более чем 1 ГБ физической памяти, могут назначать области физической памяти в ZONE_HIGHMEM
(примерно выше отметки 1 ГБ), что может потребовать, чтобы ядро перепрыгивало через циклы для взаимодействия определенных операций их. Добавление PAE (расширение физических адресов) расширяет эту проблему, позволяя использовать до 64 ГБ физической памяти, уменьшая отношение памяти в памяти физических адресов на 1 ГБ к областям, выделенным в ZONE_HIGHMEM
.