Размер страницы памяти в linux
В книге детально рассмотрены основные подсистемы и функции ядер Linux серии 2.6, включая особенности построения, реализации и соответствующие программны интерфейсы. Рассмотренные вопросы включают: планирование выполнения процессов, управление временем и таймеры ядра, интерфейс системных вызовов, особенности адресации и управления памятью, страничный кэш, подсистему VFS, механизмы синхронизации, проблемы переносимости и особенности отладки. Автор книги является разработчиком основных подсистем ядра Linux. Ядро рассматривается как с теоретической, так и с прикладной точек зрения, что может привлечь читателей различными интересами и потребностями.
Книга может быть рекомендована как начинающим, так и опытным разработчикам программного обеспечения, а также в качестве дополнительных учебных материалов.
Книга: Разработка ядра Linux
Размер страницы памяти
Размер страницы памяти
При работе со страницами памяти никогда нельзя привязываться к конкретному размеру страницы. Программисты, которые разрабатывают для аппаратной платформы x86, часто делают ошибку, считая, что размер страницы всегда равен 4 Кбайта. Хотя это справедливо для платформы x86, для других аппаратных платформ размер станицы может быть другим. Некоторые аппаратные платформы поддерживают несколько размеров страниц! В табл. 19.1 приведен список размеров страниц памяти для всех поддерживаемых аппаратных платформ.
Таблица 19.4. Размеры страниц памяти для разных аппаратных платформ
Аппаратная платформа | Значение PAGE_SHIFT | Значение PAGE_SIZE |
---|---|---|
alpha | 13 | 8 Кбайт |
arm | 12, 14, 15 | 4 Кбайт, 16 Кбайт, 32 Кбайт |
cris | 13 | 8 Кбайт |
h8300 | 12 | 4 Кбайт |
i386 | 12 | 4 Кбайт |
ia64 | 12, 13, 14, 16 | 4 Кбайт, 8 Кбайт, 32 Кбайт, 64 Кбайт |
m68k | 12, 13 | 4 Кбайт, 8 Кбайт |
m86knommu | 12 | 4 Кбайт |
mips | 12 | 4 Кбайт |
mips64 | 12 | 4 Кбайт |
parisc | 12 | 4 Кбайт |
ppc | 12 | 4 Кбайт |
ppc64 | 12 | 4 Кбайт |
s390 | 12 | 4 Кбайт |
sh | 12 | 4 Кбайт |
spare | 12,13 | 4 Кбайт, 8 Кбайт |
sparc64 | 13 | 8 Кбайт |
v850 | 12 | 4 Кбайт |
x86_64 | 12 | 4 Кбайт |
При работе со страницами памяти необходимо использовать константу PAGE_SIZE , которая содержит размер страницы памяти в байтах.
Значение макроса PAGE_SHIFT — это количество битов, на которое необходимо сдвинуть влево значение адреса, чтобы получить номер соответствующей страницы памяти. Например, для аппаратной платформы x86, для которой размер страницы равен 4 Кбайт, макрос PAGE_SIZE равен 4096, а макрос PAGE_SHIFT — 12. Эти значения содержатся в заголовочном файле .
Размер страницы памяти
Размер страницы памяти
При работе со страницами памяти никогда нельзя привязываться к конкретному размеру страницы. Программисты, которые разрабатывают для аппаратной платформы x86, часто делают ошибку, считая, что размер страницы всегда равен 4 Кбайта. Хотя это справедливо для платформы x86, для других аппаратных платформ размер станицы может быть другим. Некоторые аппаратные платформы поддерживают несколько размеров страниц! В табл. 19.1 приведен список размеров страниц памяти для всех поддерживаемых аппаратных платформ.
Таблица 19.4. Размеры страниц памяти для разных аппаратных платформ
Аппаратная платформа | Значение PAGE_SHIFT | Значение PAGE_SIZE |
---|---|---|
alpha | 13 | 8 Кбайт |
arm | 12, 14, 15 | 4 Кбайт, 16 Кбайт, 32 Кбайт |
cris | 13 | 8 Кбайт |
h8300 | 12 | 4 Кбайт |
i386 | 12 | 4 Кбайт |
ia64 | 12, 13, 14, 16 | 4 Кбайт, 8 Кбайт, 32 Кбайт, 64 Кбайт |
m68k | 12, 13 | 4 Кбайт, 8 Кбайт |
m86knommu | 12 | 4 Кбайт |
mips | 12 | 4 Кбайт |
mips64 | 12 | 4 Кбайт |
parisc | 12 | 4 Кбайт |
ppc | 12 | 4 Кбайт |
ppc64 | 12 | 4 Кбайт |
s390 | 12 | 4 Кбайт |
sh | 12 | 4 Кбайт |
spare | 12,13 | 4 Кбайт, 8 Кбайт |
sparc64 | 13 | 8 Кбайт |
v850 | 12 | 4 Кбайт |
x86_64 | 12 | 4 Кбайт |
При работе со страницами памяти необходимо использовать константу PAGE_SIZE , которая содержит размер страницы памяти в байтах.
Значение макроса PAGE_SHIFT — это количество битов, на которое необходимо сдвинуть влево значение адреса, чтобы получить номер соответствующей страницы памяти. Например, для аппаратной платформы x86, для которой размер страницы равен 4 Кбайт, макрос PAGE_SIZE равен 4096, а макрос PAGE_SHIFT — 12. Эти значения содержатся в заголовочном файле .
Похожие главы из других книг:
Страницы памяти
Страницы памяти Ядро рассматривает страницы физической памяти как основные единицы управления памятью. Хотя наименьшая единица памяти, которую может адресовать процессор, — это машинное слово, модуль управления памятью (MMU, Memory Management Unit) — аппаратное устройство,
Размер страницы
Размер страницы Выбор размера страницы очень важен для обеспечения эффективной работы сервера InterBase с базой данных. Файл базы данных разбивается на страницы фиксированного размера, и все обращения к диску, которые выполняет InterBase, считывают и записывают информацию
Размер бумаги
Размер бумаги Чтобы задать размер страницы, перейдите на вкладку Разметка страницы, в группе Параметры страницы щелкните на кнопке Размер и выберите в появившемся списке нужный вариант (рис. 10.18). Рис. 10.18. Меню кнопки РазмерКак правило, печатают на листах стандартного
12.3. Размер кода
12.3. Размер кода Наиболее эффективный способ оптимизировать код заключается в том, чтобы сохранять его небольшой размер и простоту. Ранее в данной книге уже рассматривалось множество весомых причин для сохранения небольшого размера и простоты кода. В данной главе
12.3. Размер кода
12.3. Размер кода Наиболее эффективный способ оптимизировать код заключается в том, чтобы сохранять его небольшой размер и простоту. Ранее в данной книге уже рассматривалось множество весомых причин для сохранения небольшого размера и простоты кода. В данной главе
Параллельный размер
Параллельный размер С помощью команды DIMALIGNED создается размер, параллельный измеряемой линии объекта; это позволяет выровнять размерную линию по объекту. Размер создается подобно горизонтальному, вертикальному и повернутому, при этом размерная линия расположена
Размер страницы и размер кэша по умолчанию
Размер страницы и размер кэша по умолчанию При восстановлении вы можете изменить размер страницы, включив в команду переключатель -р[age_size], за которым следует целое число, задающее размер в байтах. Допустимые размеры страниц см. в табл. 38.2.В этом примере gbak восстанавливает
Параллельный размер
Параллельный размер С помощью команды DIMALIGNED создается размер, параллельный измеряемой линии объекта; это позволяет выровнять размерную линию по объекту. Размер создается подобно горизонтальному, вертикальному и повернутому, при этом размерная линия расположена
Размер радиуса
Размер радиуса Команда DIMRADIUS , позволяющая построить радиус окружности или дуги, вызывается из падающего меню Dimension ? Radius или щелчком на пиктограмме Radius на панели инструментов Dimension.Запросы команды
Размер диаметра
Размер диаметра Команда DIMDIAMETER строит диаметр окружности или дуги. Команда вызывается из падающего меню Dimension ? Diameter или щелчком на пиктограмме Diameter на панели инструментов Dimension.Запросы команды
Линейный размер
Линейный размер Для создания вертикальных и горизонтальных размеров предназначена одна команда – DIMLINEAR. Она измеряет расстояние между двумя определяющими точками и позволяет вам выбрать местоположение размерной линии. Команде DIMLINEAR соответствует кнопка Linear (Линейный),
Продленный размер
Продленный размер Продленный размер подобен базовому: для его создания необходим существующий линейный или угловой размер и вы можете разместить множество размерных линий с помощью одной команды. Единственное различие состоит в том, что, в то время как размеры с базовой
Параллельный размер
Параллельный размер С помощью команды DIMALIGNED создается размер, параллельный измеряемой линии объекта; это позволяет выровнять размерную линию по объекту. Размер создается подобно горизонтальному, вертикальному и повернутому, при этом размерная линия расположена
Размер диаметра
Размер диаметра Команда DIMDIAMETER строит диаметр окружности или дуги. Команда вызывается из падающего меню Dimension ? Diameter или щелчком на пиктограмме Diameter на панели инструментов Dimension.Запросы команды DIMDIAMETER:Select arc or circle: – выбрать дугу или кругDimension text = измеренное значениеSpecify
Размер головного мозга и размер социального окружения
Размер головного мозга и размер социального окружения Дискуссии по поводу взаимосвязи между размером головного мозга какого-либо организма и размером группы, к которой этот организм принадлежит, ведутся нейробиологами уже давно. При этом взаимосвязь с социальной