Получение страниц памяти

Получение страниц памяти

Теперь, имея некоторое понятие о том, как ядро управляет памятью с помощью страниц, зон и так далее, давайте рассмотрим интерфейсы, которые реализованы в ядре для того, чтобы выделять и освобождать память внутри ядра. Ядро предоставляет один низкоуровневый интерфейс для выделения памяти и несколько интерфейсов для доступа к ней. Все эти интерфейсы выделяют память в объеме, кратном размеру страницы, и определены в файле <linux/gfp.h>. Основная функция выделения памяти следующая.

struct page * alloc_pages(unsigned int gfp_mask, unsigned int order);

Данная функция позволяет выделить 2order (т.е. 1 << order) смежных страниц (один непрерывный участок) физической памяти и возвращает указатель на структуру page, которая соответствует первой выделенной странице памяти. В случае ошибки возвращается значение NULL. Параметр gfp_mask будет рассмотрен несколько позже. Полученную страницу памяти можно конвертировать в ее логический адрес с помощью следующей функции.

void *page_address(struct page *page);

Эта функция возвращает указатель на логический адрес, которому в данный момент соответствует начало указанной страницы физической памяти. Если нет необходимости в соответствующей структуре struct page, то можно использовать следующую функцию.

unsigned long __get_free_pages(unsigned int gfp_mask,

 unsigned int order);

Эта функция работает так же, как и функция alloc_pages(), за исключением того, что она сразу возвращает логический адрес первой выделенной страницы памяти. Так как выделяются смежные страницы памяти, то другие страницы просто следуют за первой.

Если необходима всего одна страница памяти, то для этой цели определены следующие функции-оболочки, которые позволяют уменьшить количество работы по набору кода программы.

struct page * alloc_page(unsigned int gfp_mask);

unsigned long __get_free_page(unsigned int gfp_mask);

Эти функции работают так же, как и ранее описанные, по для них в качестве параметра order передается нуль (20 = одна страница памяти).

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Масштабирование страниц

Из книги Windows Vista автора Вавилов Сергей

Масштабирование страниц В Internet Explorer 7 появилась функция масштабирования веб-страниц. Чтобы увеличить или уменьшить открытую страницу, воспользуйтесь кнопкой Изменить масштаб которая находится справа в строке состояния. Щелкнув кнопкой мыши на треугольнике, вы сможете


16.3. Просмотр веб-страниц

Из книги Самоучитель работы на компьютере автора Колисниченко Денис Николаевич

16.3. Просмотр веб-страниц 16.3.1. Ссылки Итак, вы ввели адрес любого сайта в адресную строку браузера и нажали Enter. Если не знаете, что ввести, введите www.dkws.org.ua— этим вы не только увеличите посещаемость моего сайта, но и узнаете много интересного об операционных системах.Что


16.3.4. Сохранение страниц

Из книги Популярный самоучитель работы в Интернете автора Кондратьев Геннадий Геннадьевич

16.3.4. Сохранение страниц Если страница понравилась и вы хотите ее сохранить на диске, то выполните команду Файл, Сохранить. При сохранении (рис. 207) выберите тип файла Веб-архив — вся веб-страница (текст и картинки) будет сохранена в одном файле с расширением. mht. Это очень


Сохранение страниц

Из книги Реферат, курсовая, диплом на компьютере автора Баловсяк Надежда Васильевна

Сохранение страниц Часто бывает, что вы нашли любопытную страницу, но на ней слишком много полезной информации, а время и деньги утекают, как вода. В этом случае весьма полезно сохранить веб-страницу на жесткий диск, чтобы потом, отключившись от Интернета, спокойно ее


Печать страниц

Из книги Новейший самоучитель работы на компьютере автора Белунцов Валерий

Печать страниц Распечатать веб-страницу – дело нехитрое, и неважно, сохранили вы ее на диск или просматриваете в подключенном режиме. Чтобы отправить веб-страницу на печать, можно воспользоваться либо кнопкой Печать на панели инструментов, либо командой Файл/Печать. При


Нумерация страниц

Из книги XSLT автора Хольцнер Стивен

Нумерация страниц Текстовый редактор Microsoft Word обладает гибкими инструментами нумерации страниц. С их помощью можно автоматически присваивать номера страницам документа, размещать их в любом месте страницы. При этом возможно использование различных форматов


Каталоги веб-страниц

Из книги Macromedia Flash Professional 8. Графика и анимация автора Дронов В. А.

Каталоги веб-страниц Поисковые каталоги напоминают систематические каталоги обычных библиотек. Каталоги – это электронные справочники, в которых собраны списки адресов интернет-страниц, сгруппированные по определенным признакам, чаще всего – по тематике. Обычно


Просмотр веб-страниц

Из книги Социальные сети [Источники новых клиентов для бизнеса] автора Парабеллум Андрей Алексеевич

Просмотр веб-страниц Один из самых популярных сегодня сервисов Интернета – World Wide Web (WWW). Эта часть Интернета стала настолько популярной, что многие пользователи ошибочно отождествляют Всемирную сеть и Интернет.Что же так привлекает пользователей в World Wide Web?Всемирная


Последовательности страниц и нумерация страниц

Из книги Раскрутка: секреты эффективного продвижения сайтов автора Евдокимов Николай Семенович

Последовательности страниц и нумерация страниц Пока я использовал один и тот же шаблон страницы для всех страниц в рассмотренных нами документах XSL-FO. Если содержимое документа занимает более одной страницы, процессор XSL-FO использует тот же шаблон страницы для всех


Загрузка Web-страниц

Из книги Операционная система UNIX автора Робачевский Андрей М.

Загрузка Web-страниц Напоследок мы рассмотрим используемый во Flash способ загрузки в окно Web-обозревателя какой-либо Web-страницы. Для этого предназначено действие getURL, формат вызова которого таков: getURL ("<Интернет-адрес Web-страницы>" [, "<Цель>"]); С первым параметром этого


Администрирование страниц

Из книги Разработка ядра Linux автора Лав Роберт

Администрирование страниц Что касается администрирования наших страниц в социальных сетях, часть работы делаю лично я (Андрей Парабеллум), а часть препоручаю специалистам, и, таким образом, мы работаем в команде.Есть некоторые отличия постинга в Facebook от ВКонтакте. На


Структура страниц и SEO

Из книги автора

Структура страниц и SEO Главным новшеством в HTML5 применительно к SEO стало изменение структуры страницы. Прежде для сегментации страницы использовался тег div, причем каждая отдельная часть не несла конкретной смысловой нагрузки. Отныне возможна разбивка страницы на


Замещение страниц

Из книги автора

Замещение страниц Ранние версии UNIX работали на компьютерах PDP-11 с 16-разрядной архитектурой и адресным пространством 64 Кбайт. Некоторые модификации позволяли использовать отдельные адресные пространства для кода и данных, накладывая тем не менее существенные


Получение страниц заполненных нулями

Из книги автора

Получение страниц заполненных нулями Для того чтобы получаемые страницы памяти были заполнены нулями, необходимо использовать следующую функцию.unsigned long get_zeroed_page(unsigned int gfp_mask);Эта функция аналогична функции __get_free_page(), за исключением того, что после выделения страницы


Таблицы страниц

Из книги автора

Таблицы страниц Хотя пользовательские программы и работают с виртуальной памятью, которая отображается на физические адреса, процессоры работают непосредственно с этими физическими адресами. Следовательно, когда приложение обращается к адресу виртуальной памяти,