Что произойдет, если у вас есть запись в таблице страниц, которая отображает страницу в PPN, которая находится за пределами доступной ОЗУ на машине. Будет ли ошибка страницы или она просто игнорирует MSB рассчитанного адреса? Или что-то другое?Доступ к адресам за пределами доступной памяти
ответ
Я сделал что-то подобное раньше, когда я играл с ядром Linux, непреднамеренно, конечно. Во всяком случае, попытка доступа к физической странице, которая превышает ваш максимальный адрес, заставляет ядро паниковать.
Более конкретно, ошибка страницы возникает, если ваша виртуальная страница недоступна в основной памяти и должна быть извлечена (заменена) с вашего жесткого диска. Или, если он доступен в основной памяти, но с разными правами доступа (доступно в основной памяти для чтения, и ваш запрос должен быть написан). В обоих случаях ОС обрабатывает этот запрос путем замены на странице, что дает вам доступ или убийство процесса запроса с ошибкой сегментации (пресловутый Segmentation fault (core dumped)
). При запуске ядро создает начальный и конечный PFN (номер кадра страницы) и заполняет таблицу страниц, поэтому в принципе невозможно, чтобы такие вещи случались.
Если по какой-то причине (что не должно произойти, если вы не манипулировали ядро) Ваша страница таблица содержит недопустимое PFN или ППН, это заставит ядро паниковать и производить что-то вроде этого:
BUG: unable to handle kernel paging request at ffffea0df0668018
Я не знаю о других ОС, но я думаю, что это то же самое. Но снова это не должно произойти, если в ядре не будет чего-то не так.
- 1. Доступ к вектору за пределами цикла C++
- 2. Доступ за пределами основного пакета
- 3. Доступ к файлу за пределами каталога сервера
- 4. Доступ к файлам за пределами папки gulp
- 5. Доступ к файлам за пределами общедоступной папки
- 6. Доступ Android к ресурсам за пределами деятельности
- 7. Доступ к серверу red5 за пределами localhost
- 8. Доступ к локальной переменной за пределами javascript
- 9. Gradle - Доступ к файлам за пределами проекта
- 10. Доступ к данным json за пределами $ .getJSON()
- 11. Доступ к папке за пределами webapp
- 12. Доступ к массиву за пределами цикла
- 13. Доступ к UserManager за пределами AccountController
- 14. Доступ к переменной за пределами jquery.ready()
- 15. Доступ к Java DB за пределами NetBeans
- 16. Доступ к серверу RavenDb за пределами
- 17. Доступ к журналу Crashlytics за пределами сбоя
- 18. Доступ к ServletContext за пределами сервлета
- 19. Доступ к переменной за пределами цикла Swift
- 20. Доступ к объектам стека за пределами функции
- 21. Доступ к объекту за пределами класса
- 22. Запретить доступ к документам за пределами приложения
- 23. доступ к контенту за пределами папки CakePHP
- 24. Доступ к публикации за пределами SwingWorker
- 25. Доступ к элементам за пределами iframe?
- 26. Доступ к аккорду Akka за пределами
- 27. Доступ к переменным за пределами закрытия
- 28. Доступ к данным сеанса за пределами Joomla
- 29. Доступ к аутентифицированному пользователю за пределами представления
- 30. Доступ к NancyContext за пределами модуля