Получение страниц памяти
Получение страниц памяти
Теперь, имея некоторое понятие о том, как ядро управляет памятью с помощью страниц, зон и так далее, давайте рассмотрим интерфейсы, которые реализованы в ядре для того, чтобы выделять и освобождать память внутри ядра. Ядро предоставляет один низкоуровневый интерфейс для выделения памяти и несколько интерфейсов для доступа к ней. Все эти интерфейсы выделяют память в объеме, кратном размеру страницы, и определены в файле <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 = одна страница памяти).
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Получение страниц заполненных нулями
Получение страниц заполненных нулями Для того чтобы получаемые страницы памяти были заполнены нулями, необходимо использовать следующую функцию.unsigned long get_zeroed_page(unsigned int gfp_mask);Эта функция аналогична функции __get_free_page(), за исключением того, что после выделения страницы
Таблицы страниц
Таблицы страниц Хотя пользовательские программы и работают с виртуальной памятью, которая отображается на физические адреса, процессоры работают непосредственно с этими физическими адресами. Следовательно, когда приложение обращается к адресу виртуальной памяти,
Последовательности страниц и нумерация страниц
Последовательности страниц и нумерация страниц Пока я использовал один и тот же шаблон страницы для всех страниц в рассмотренных нами документах XSL-FO. Если содержимое документа занимает более одной страницы, процессор XSL-FO использует тот же шаблон страницы для всех
Структура страниц и SEO
Структура страниц и SEO Главным новшеством в HTML5 применительно к SEO стало изменение структуры страницы. Прежде для сегментации страницы использовался тег div, причем каждая отдельная часть не несла конкретной смысловой нагрузки. Отныне возможна разбивка страницы на
Замещение страниц
Замещение страниц Ранние версии UNIX работали на компьютерах PDP-11 с 16-разрядной архитектурой и адресным пространством 64 Кбайт. Некоторые модификации позволяли использовать отдельные адресные пространства для кода и данных, накладывая тем не менее существенные
Масштабирование страниц
Масштабирование страниц В Internet Explorer 7 появилась функция масштабирования веб-страниц. Чтобы увеличить или уменьшить открытую страницу, воспользуйтесь кнопкой Изменить масштаб которая находится справа в строке состояния. Щелкнув кнопкой мыши на треугольнике, вы сможете
Сохранение страниц
Сохранение страниц Часто бывает, что вы нашли любопытную страницу, но на ней слишком много полезной информации, а время и деньги утекают, как вода. В этом случае весьма полезно сохранить веб-страницу на жесткий диск, чтобы потом, отключившись от Интернета, спокойно ее
Печать страниц
Печать страниц Распечатать веб-страницу – дело нехитрое, и неважно, сохранили вы ее на диск или просматриваете в подключенном режиме. Чтобы отправить веб-страницу на печать, можно воспользоваться либо кнопкой Печать на панели инструментов, либо командой Файл/Печать. При
Администрирование страниц
Администрирование страниц Что касается администрирования наших страниц в социальных сетях, часть работы делаю лично я (Андрей Парабеллум), а часть препоручаю специалистам, и, таким образом, мы работаем в команде.Есть некоторые отличия постинга в Facebook от ВКонтакте. На
Нумерация страниц
Нумерация страниц Текстовый редактор Microsoft Word обладает гибкими инструментами нумерации страниц. С их помощью можно автоматически присваивать номера страницам документа, размещать их в любом месте страницы. При этом возможно использование различных форматов
Каталоги веб-страниц
Каталоги веб-страниц Поисковые каталоги напоминают систематические каталоги обычных библиотек. Каталоги – это электронные справочники, в которых собраны списки адресов интернет-страниц, сгруппированные по определенным признакам, чаще всего – по тематике. Обычно
16.3. Просмотр веб-страниц
16.3. Просмотр веб-страниц 16.3.1. Ссылки Итак, вы ввели адрес любого сайта в адресную строку браузера и нажали Enter. Если не знаете, что ввести, введите www.dkws.org.ua— этим вы не только увеличите посещаемость моего сайта, но и узнаете много интересного об операционных системах.Что
16.3.4. Сохранение страниц
16.3.4. Сохранение страниц Если страница понравилась и вы хотите ее сохранить на диске, то выполните команду Файл, Сохранить. При сохранении (рис. 207) выберите тип файла Веб-архив — вся веб-страница (текст и картинки) будет сохранена в одном файле с расширением. mht. Это очень
Просмотр веб-страниц
Просмотр веб-страниц Один из самых популярных сегодня сервисов Интернета – World Wide Web (WWW). Эта часть Интернета стала настолько популярной, что многие пользователи ошибочно отождествляют Всемирную сеть и Интернет.Что же так привлекает пользователей в World Wide Web?Всемирная
Загрузка Web-страниц
Загрузка Web-страниц Напоследок мы рассмотрим используемый во Flash способ загрузки в окно Web-обозревателя какой-либо Web-страницы. Для этого предназначено действие getURL, формат вызова которого таков: getURL ("<Интернет-адрес Web-страницы>" [, "<Цель>"]); С первым параметром этого