[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 Примеры memcntl(2)

.    Фиксация всех отображенных страниц
   Операция   MC_LOCKAS    фиксирует   все    отображенные   страницы,
   удовлетворяющие критерию  выбора (аргумент  attr). Так как критерий
   выбора  равен  нулю,  фиксируются  все  страницы.  addr  и  len  не
   используются  этой  операцией  и  должны  быть  равны  нулю.  Режим
   фиксации -  либо MCL_CURRENT,  либо MCL_FUTURE,  либо оба.  Так как
   используются оба  режима, фиксируются  текущее  отображение  и  все
   дальнейшие отображения.

.    Освобождение всех отображенных страниц
   Все страницы в адресном пространстве процесса освобождаются.

.    Фиксирование текстовых страниц в адресном диапазоне
   Рассматриваем  на   предмет  фиксации   все  страницы  в  диапазоне
   [addr,addr+len). Так  как критерий  выбора отличен  от нуля,  будут
   зафиксированы только  те страницы, которые имеют допуск на чтение и
   исполнение (страницы текстового сегмента). addr должен указывать на
   границу страницы, а len должен быть кратен размеру страницы.

.    Фиксация страниц данных процесса
   Все текущие  и будущие  отображения адресного пространства процесса
   рассматриваются на предмет фиксации. Как указывает критерий выбора,
   фиксируются только страницы с данными.

.  Ожидание записи страниц в адресное пространство

   Все   измененные    страницы   адресного    пространства   процесса
   записываются в физическую память. MS_SYNC ждет окончания записи.
                          ПРИМЕРЫ memcntl(2)
.   Фиксация всех отображенных страниц

    memcntl(0, 0, MC_LOCKAS,
               MCL_CURRENT|MCL_FUTURE, 0, 0);

.   Освобождение всех отображенных страниц

    memcntl(0, 0, MC_UNLOCKAS, 0, 0, 0);

.   Фиксирование кодовых страниц в адресном диапазоне

    memcntl(addr, len, MC_LOCK, 0, PROT_READ|PROT_EXEC
    memcntl(addr, len, MC_LOCK, 0, PROC_TEXT, 0);

.   Фиксация страниц данных процесса

    memcntl(0, 0, MC_LOCKAS, MCL_CURRENT|MCL_FUTURE,
              PROC_DATA, 0);

.   Ожидание записи измененных страниц адресного пространства

    memcntl(0, 0, MC_SYNC, MS_SYNC, 0, 0);