Mlockall - забороняє сторінковий обмін всього процесу - документація по linux
НАЗВА
mlockall - забороняє сторінковий обмін всього процесу
СИНТАКСИС
#include
int mlockall (int flags);
ОПИС
mlockall забороняє сторінковий обмін для всіх сторінок в
області пам'яті викликає процесу. Це стосується всіх
сторінок сегментів коду, даних і стека, поділюваних
бібліотек, призначених для користувача даних ядра, яку поділяє
пам'яті і відображених в пам'ять файлів. Всі ці сторінки
будуть поміщені в ОЗУ, якщо виклик mlockall був виконаний
успішно, і залишаться там до тих пір, поки не будуть
звільнені викликами munlock або munlockall, або якщо
процес завершить роботу або запустить іншу програму при
допомоги exec. Блокування сторінок не успадковується дочірніми
процесами, створеними за допомогою fork. Блокування пам'яті
використовується, в основному, в двох випадках: в алгоритмах
реального часу і в роботі з захищеними даними.
Програмами реального часу необхідні передбачувані
затримки в роботі, і сторінковий обмін поряд з системою
перемикання процесів може привести до несподіваних
затримок в роботі. Такі додатки часто переключаються
в режим реального часу за допомогою функції
sched_setscheduler. Криптографічні системи захисту
даних дуже часто містити критичні дані, наприклад,
паролі або секретні ключі в структурах даних. В
Внаслідок сторінкового обміну ці дані можуть потрапити в
область підкачки, що знаходиться на пристрої тривалого
зберігання (такому, як жорсткий диск), де до цих даних
після того, як вони пропадуть з пам'яті, може отримати
доступ практично будь-хто. Такі програми зазвичай
використовують функцію mlock для блокування невеликих областей
пам'яті, в яких знаходяться захищаються дані. параметр
flags формується побітовим складанням наступних констант:
MCL_FUTURE Заблокувати всі сторінки, які будуть
передані процесу в майбутньому. Це можуть бути
сторінки зростаючої купи або стека, а також
відображені в пам'ять файли і колективні
області пам'яті.
ПОВЕРНЕНЕ ЗНАЧЕННЯ
При вдалому завершенні виклику повертається 0. При помилці
повертається -1, а змінна errno встановлюється
Відповідне чином.
Коди помилок
ENOMEM Процес спробував перевищити максимальне задане
для нього кількість блокованих сторінок.
EPERM У процесу, що викликав цю функцію, немає
відповідних прав. Блокування сторінок дозволена
тільки процесам, які мають привілеї root.
EINVAL Було задано невірне значення поля flags.
ВІДПОВІДНІСТЬ СТАНДАРТАМ
POSIX.1b, SVr4. SVr4 описує додатковий код помилки
EAGAIN.
Оффтоп
>>> Після п'яти місяців розробки побачив світло реліз десктоп-оточення MATE 1.12, в рамках якого продовжено розвиток кодової бази GNOME 2.32 із збереженням класичної концепції формування робочого столу. Установчі пакети з MATE 1.12 найближчим часом будуть підготовлені для Arch Linux. Linux Mint, Debian, Ubuntu, Fedora, Mageia, Slackware і openSUSE. MATE 1.12 увійде до складу найближчого випуску Linux Mint 17.3, а також буде доступний через репозиторій для користувачів Ubuntu MATE.
>>> Кес Кук (Kees Cook), колишній головний сисадмін kernel.org і лідер Ubuntu Security Team, який нині працює в компанії Google над забезпеченням захисту ChromeOS, оголосив про створення проекту Kernel Self Protection Project, в рамках якого планується сформувати співтовариство для розвитку і просування в основне ядро Linux технологій активного захисту, більшість з яких вже підготовлені в рамках проектів PaX і Grsecurity. Фінансування та ресурси для проведення робіт будуть надані організацією Linux Foundation і учасниками програми Core Infrastructure Initiative.
>>> Відбувся реліз Linux -дістрібутіва Ubuntu 15.10 "Wily Werewolf". Готові установчі образи створені для Ubuntu Desktop, Ubuntu Server і Ubuntu Core (для них на попередніх етапах тестування пропонувалися тільки щоденні збірки), а також для Kubuntu, Lubuntu, Ubuntu MATE, Ubuntu Cloud, Ubuntu GNOME і Xubuntu.