Требования программ к пространству подкачки
Объем пространства подкачки, который требуется приложению, зависит от типа действий, выполняемых в системе. При нехватке пространства подкачки возможно аварийное завершение работы процессов.
Если пространство подкачки переполнится, может произойти сбой в работе системы. При уменьшении свободной области в пространстве подкачки необходимо определить дополнительную область подкачки.
Система отслеживает число свободных блоков пространства подкачки и предупреждает об их нехватке. Команда vmstat позволяет получить статистическую информацию, связанную с работой виртуальной памяти. Когда число свободных блоков становится меньше установленного порога, называемого уровнем предупреждения пространства подкачки, система информирует об этом все процессы (кроме kprocs), отправляя сигнал SIGDANGER.
Процессы, динамически запрашивающие память, могут проверять наличие достаточного объема пространства подкачки, отслеживая значения уровней пространства подкачки с помощью функции psdanger или специальных функций выделения памяти. Процессы могут избежать принудительного завершения, определив обработчик сигнала SIGDANGER и выполнив функцию disclaim для освобождения памяти и ресурсов пространства подкачки, выделенных в областях данных и стека, а также в сегментах общей памяти.
Ниже перечислены другие функции, позволяющие получить информацию о пространстве подкачки у VMM:
| Функция | Описание |
|---|---|
| mincore | Позволяет получить информацию о выгруженных страницах памяти. |
| madvise | Позволяет процессу сообщить системе о предполагаемом использовании пространства подкачки. |
| swapqry | Возвращает состояние устройства подкачки. |
| swapon | Запускает процесс обмена данными с указанным блочным устройством. |