Когда пользовательский процесс перехватывает ядро, таблицы страниц не изменяются.Это означает, что одно линейное адресное пространство должно быть в состоянии охватить как адреса памяти, доступные для пользовательского процесса, так и адреса памяти, доступные для ядра.
На IA-32, который допускает пространство линейных адресов 4 ГБ,обычно первые 3 ГБ линейного адресного пространства выделяются пользовательскому процессу, а последние 1 ГБ линейного адресного пространства выделяются ядру.
Ядро должно использовать свой диапазон адресов 1 ГБ, чтобы иметь возможностьадресовать любую часть физической памяти, которая ему нужна.Объем памяти выше 896 МБ , а не «сопоставлен с малым объемом 1 ГБ» - происходит то, что физической памяти ниже 896 МБ назначается постоянный линейный адрес в части ядра линейного адресного пространства, тогда как память выше этого предела должнаприсваивать временное отображение в оставшейся части линейного адресного пространства.
Не влияет на производительность при отображении страницы ZONE_HIGHMEM
в процесс пользовательского пространства - для процесса пользовательского пространства,все страницы физической памяти равны.Влияние на производительность имеет место, когда ядру требуется доступ к непользовательской странице в ZONE_HIGHMEM
- для этого оно должно отобразить ее в линейное адресное пространство, если оно еще не отображено.