Страничная память: различия между версиями

[отпатрулированная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
отмена правки 86609008 участника 31.180.146.140 (обс.): «так называемая ''страница''» - всё нормально
м →‎Концепции: викификация
Строка 60:
В архитектуре x86_64 возможно использовать страницы размером 4 килобайта (4096 байт), 2 мегабайта, и (в некоторых AMD64) 1 гигабайт.
 
Если обращение к памяти не может быть оттранслировано через TLB, то микрокод процессора обращается к таблицам страниц и пытается загрузить PTE оттуда в TLB. Если и после такой попытки сохранились проблемы, то процессор исполняет специальное прерывание, называемое «[[отказ страницы]]» (page fault). Обработчик этого прерывания находится в подсистеме виртуальной памяти ядра ОС.
 
Некоторые процессоры (MIPS) не имеют обращающегося к таблице микрокода, и генерируют отказ страницы сразу после неудачи поиска в TLB, обращение к таблице и её интерпретация возлагаются уже на обработчик отказа страницы. Это лишает таблицы страниц требования соответствовать жёстко заданному на уровне аппаратуры формату.
Строка 71:
* попытка исполнения кода из страницы «исполнение запрещено».
 
Обработчик отказов в ядре может загрузить нужную страницу из файла или же из области подкачки (см. [[свопинг]]), может создать доступную на запись копию страницы «только для чтения», а может и возбудить исключительную ситуацию (в терминах UNIX — сигнал [[SIGSEGV]]) в данном процессе.
 
Каждый процесс имеет свой собственный набор таблиц страниц. Регистр «директория страниц» перегружается при каждом [[Переключение контекста|переключении контекста]] процесса. Также необходимо сбросить ту часть TLB, которая относится к данному процессу.