Как mlock() работает с гибернацией?
Цитирование Руководства для программиста Linux (man 2 mlock
):
mlock()
,mlock2()
, а такжеmlockall()
заблокировать часть или все виртуальное адресное пространство вызывающего процесса в ОЗУ, предотвращая перенос этой памяти в область подкачки.
Как это работает в отношении спячки? Может ли процесс с помощью mlock()
быть в состоянии гибернации вообще? Какова семантика после выхода из спящего режима?
1 ответ
Это зависит от вашей системы. Руководство по Linux для mlock
говорит:
Имейте в виду, что в режиме ожидания на ноутбуках и некоторых настольных компьютерах копия оперативной памяти системы сохраняется на диске независимо от блокировок памяти.
Некоторые инструменты действительно подвержены влиянию mlock
:
- Инструмент приостановки
swsusp
говорит, что не может быть Hybernatemlock
страницы. - Криптографический инструмент
armory
, который используетmlock
, не может быть восстановлен после гибернации:
1- Я впал в спящий режим ноутбук с открытой арсеналом.
2- Я вернулся из спящего режима.
3- Оружейная палата не синхронизируется. (Чтобы снова синхронизировать мне нужно перезапустить Оружейную).