Насколько я знаю, размер страницы составляет 4k в управлении памятью ОС. Это может быть преимуществом, когда память слишком мала. Но память в нашей машине достаточно большая, поэтому размер страницы еще 4k? Каков предел для его изменения, как 1M или больше?Почему размер страницы ОС 4k, и почему он по-прежнему остается 4k, поскольку память может быть достаточно большой?
ответ
4KB - это только размер страницы по умолчанию, поддерживаемый многими архитектурами.
Однако некоторые архитектуры поддерживают переключение для использования больших размеров страниц. Например, i386 поддерживает переключение на режим огромных страниц с размером страницы 2 МБ или 4 МБ, а x86_64 поддерживает огромные страницы размером 2 МБ, а для некоторых новых процессоров он может даже поддерживать 1GB page size (большие страницы).
Многие файловые системы используют размер блока, который является точным размером страницы или небольшим множителем (4 КБ-8 КБ или около того). Кроме того, многие операционные системы выделяют память только на целых страницах. Выделение 2MB-страницы по каждому запросу на выделение памяти будет тратить много памяти.
Как вы сказали, «выделение 2MB-страницы при каждом запросе на распределение памяти будет тратить много памяти», но если программе нужно иметь дело с множеством данных «случайно», скажем, 500G, промах TLB будет бутылкой представление. –
Я знаю, что некоторые процессоры поддерживают переменный размер страницы, но это не основной тренд. Каково точное ограничение на использование 2M-страницы? –
Существует увеличение скорости использования больших страниц, но это всего лишь несколько процентов. Согласно wiki, это может увеличить скорость на целых 15%, в зависимости от приложения и размера распределения. 15% - это улучшение, но не очень большое – mvp
Страницы являются единицами обмена на/с диска. Таким образом, создание страниц будет более медленным. – Barmar
Каков ваш практический вопрос программирования? Вы хотите изменить размер страницы? –
Насколько я знаю, цель введения концепции страницы в управление памятью - поддерживать большую программу с меньшим объемом памяти. Размер 4K является своего рода эмпирическим значением. Моя дискуссия состоит в том, что память серверной машины сейчас достаточно велика, а память, используемая каждой программой, становится все больше и больше. Должна ли ОС изменять размер страницы больше? –