Шрифт:
Функция
Обратной к функции
Функция
Рассмотрим пример выделения памяти в обработчике прерывания. В этом примере обработчику прерывания необходимо выделить буфер памяти для хранения входных данных. С помощью препроцессора определяется константа.
Позже, когда память больше не нужна, нужно не забыть освободить ее с помощью вызова функции
Функция
Функция
Большей частью, только аппаратным устройствам необходимо выделение физически непрерывных участков памяти. Аппаратные устройства существуют по другую сторону модуля управления памятью и не "понимают" виртуальной адресации. Следовательно, все области памяти, с которыми работают аппаратные устройства, должны состоять из физически смежных блоков, а не из виртуально непрерывных участков. Для участков памяти, которые используются только программным обеспечением, например буферы памяти, связанные с процессами, прекрасно подходят области памяти, которые только виртуально непрерывны. При программировании заметить разницу невозможно. Это связано с тем, что память ядром воспринимается как логически непрерывная.
Несмотря на то что физически смежные страницы памяти необходимы только в определенных случаях, большая часть кода ядра использует для выделения памяти функцию
64
Буфер TLB (translation lookside buffer или буфер быстрого преобразования адреса) — это аппаратный буфер памяти, который используется в большинстве аппаратных платформ для кэширования отображений виртуальных адресов памяти в физические адреса. Этот буфер позволяет существенно повысить производительность системы, так как большинство операций доступа к памяти выполняются с использованием виртуальной адресации.
Функция
Функция возвращает указатель на виртуально непрерывную область памяти размером по крайней мере
Для освобождения памяти, выделенной с помощью функции
Эта функция освобождает участок памяти, который начинается с адреса
Использовать рассмотренные функции очень просто. Например, следующим образом.
После того как память больше не нужна, необходимо убедиться, что она освобождается с помощью следующего вызова.