Что же касается ядра Linux, делают ли страницы «Kernel» когда-либо выгруженными? Кроме того, когда страницы пространства пользователя когда-либо попадают в ZONE_NORMAL?Удаляются ли страницы ядра?
ответ
Нет, память ядра не подлежит обмену.
Страницы ядра не подлежат замене. Но он может быть освобожден.
Страницы UserSpace могут находиться в ZONE_NORMAL. Система Linux Может быть настроена либо на использование HIGHMEM, либо нет. Если ZONE_HIGHMEM настроен, то процессы пользовательского пространства получат свою память из процессов HIGHMEM else, которые будут получать память из ZONE_NORMAL.
Да, при нормальных условиях страницы ядра (то есть, память, проживающей в ядре для использования ядра) не замены, на самом деле, после обнаружения (см pagefault исходного обработчика кода), ядро будет явно врезаться себя ,
Смотреть это:
http://lxr.free-electrons.com/source/arch/x86/mm/fault.c
и функции:
1205 /*
1206 * This routine handles page faults. It determines the address,
1207 * and the problem, and then passes it off to one of the appropriate
1208 * routines.
1209 *
1210 * This function must have noinline because both callers
1211 * {,trace_}do_page_fault() have notrace on. Having this an actual function
1212 * guarantees there's a function trace entry.
1213 */
1214 static noinline void
1215 __do_page_fault(struct pt_regs *regs, unsigned long error_code,
1216 unsigned long address)
1217 {
И обнаружения здесь:
1246 *
1247 * This verifies that the fault happens in kernel space
1248 * (error_code & 4) == 0, and that the fault was not a
1249 * protection error (error_code & 9) == 0.
1250 */
1251 if (unlikely(fault_in_kernel_space(address))) {
1252 if (!(error_code & (PF_RSVD | PF_USER | PF_PROT))) {
1253 if (vmalloc_fault(address) >= 0)
1254 return;
1255
1256 if (kmemcheck_fault(regs, address, error_code))
1257 return;
1258 }
Но тот же обработчик pagefault - который может обнаружить pagefault возникающие из несуществующей памяти usermode (все аппаратные параметры страницы det ection всегда выполняется в ядре) будет явно извлекать данные из пространства подкачки, если он существует, или запустить процедуру распределения памяти, чтобы дать процессу больше памяти.
Хорошо, что сказал, ядро делает подкачки из ядра структуры/память/списки задач и т.д. во время программного обеспечения приостанавливать и гибернации операции:
https://www.kernel.org/doc/Documentation/power/swsusp.txt
И во время фазы резюме будет восстановить обратно память ядра из свопа файл.
- 1. Страницы пользователя и ядра
- 2. Apache Solr 6.1.0 ядра удаляются при перезапуске solr
- 3. Сохраненные элементы в данных ядра удаляются при закрытии приложения
- 4. Страницы ядра, которые можно заменить?
- 5. Имеют ли ядра ядра ядра ядра такие же размеры основы, как ядра с запуском ядра?
- 6. Являются ли страницы виртуальной памяти ядра доступными для хранения
- 7. Элементы управления, добавленные динамически, всегда удаляются/удаляются.
- 8. Является ли ссылка ядра ядра ссылкой на объекты ядра?
- 9. Имеет ли FreeBSD 10.1 модули ядра/ядра ядра уже интегрированы?
- 10. Как получить размер страницы ядра linux программно
- 11. ручки удаляются
- 12. При обновлении страницы Cookies удаляются в joomla 2.5
- 13. Чтение содержимого страницы пользовательского пространства из ядра
- 14. Специальные символы удаляются?
- 15. Как взаимодействуют программы - ядро ядра ядра ядра ядра ядра
- 16. Swiftstack - Контейнеры не удаляются
- 17. ли CUDA ядра, а hasChanges
- 18. Используются ли все ядра автоматически?
- 19. Планирует ли поток ядра планировщик?
- 20. Является ли Thread объектом ядра?
- 21. Использует ли Python3 все ядра?
- 22. Ячейки таблицы ошибочно удаляются
- 23. vim: Марки удаляются/теряются
- 24. Почему мои журналы удаляются?
- 25. Взаимодействие ядра и ядра
- 26. Когда переменные удаляются оптимизацией?
- 27. Наблюдатели не удаляются
- 28. PHP Cookies не удаляются!
- 29. Можем ли мы перекомпилировать модуль ядра в исходном дереве ядра?
- 30. Дубликаты не удаляются
Что относительно страниц, которые выделяются драйверами? –