Ошибка страницы в операционной системе (неверная адресация или страница не в основной памяти)
Я читаю о страницах сбоев в поисковом запросе. сбой страницы происходит, когда 1) доступ к памяти недопустим 2) страница действительна, но отсутствует в основной памяти
Я прочитал, что с битом valid-invalid вы можете определить, находится ли память в логическом адресном пространстве, потому что соответствующий бит будет помечен как недействительный.
один и тот же действительный-недействительный бит используется для идентификации вышеуказанного условия 2.
мой вопрос, как ОС узнает, является ли доступная память недопустимой или страница допустима, но не находится в основной памяти только с одним допустимым недействительным битом? благодарю вас!
1 ответ
В пейджинге по требованию, если valid-invalid bit
установлен (1), это означает, что связанный page
и легально и в памяти. Однако если valid-invalid bit
не установлен (0), это означает следующее:
- Либо
page
не является действительным. Это означает, что страница не обрабатываетсяlogical address space
, ИЛИ ЖЕ - Соответствующий
page
находится наdisk
,
Недопустимый доступ к странице вызывает ловушку сбоя страницы. И мы справляемся с этим следующим образом. Цитирование из принципов операционных систем от Silberschatz, Galvin, Gagne
- Мы проверяем внутреннюю таблицу (обычно хранящуюся с блоком управления процессом) для этого процесса, чтобы определить, была ли ссылка действительной или недействительной памятью доступа.
- Если ссылка была недействительной, мы прекращаем процесс. Если она была действительной, но мы еще не добавили эту страницу, мы теперь ее размещаем.
- Мы находим свободный кадр (например, беря его из списка свободных кадров).
- Мы планируем операцию с диском для чтения нужной страницы во вновь выделенный фрейм.
- Когда чтение с диска завершено, мы изменяем внутреннюю таблицу, хранящуюся в процессе, и таблицу страниц, чтобы указать, что страница теперь находится в памяти.
- Мы перезапускаем инструкцию, которая была прервана ловушкой. Теперь процесс может получить доступ к странице, как будто она всегда была в памяти.