Что такое время обслуживания сбоя страницы?

#operating-system

#операционная система

Вопрос:

Я читаю операционные системы и сомневаюсь в отношении времени обслуживания сбоя страницы?

Среднее время доступа к памяти = проблема. отсутствие сбоя страницы (время доступа к памяти) проблема. ошибки страницы (время обслуживания ошибки страницы)

Я сомневаюсь в том, что включает в себя время обслуживания сбоя страницы?

По моему мнению,

Первый перевод адреса есть в TLB или таблице страниц, но когда запись не найдена в таблице страниц, это означает, что произошла ошибка страницы . Итак, мне нужно извлечь данные с диска, и все записи обновляются в TLB, а также в таблице страниц.

Следовательно, время обслуживания сбоя страницы = время TLB время таблицы страниц извлечение страницы с диска

Пожалуйста, кто-нибудь подтвердит это?

Ответ №1:

То, что вы описываете, — это академические буллы ____. Существует так много факторов, что простое уравнение, подобное этому, не описывает время доступа. Тем не менее, есть некоторые идиотские книги по операционным системам, в которых подобные вещи звучат интеллектуально (и профессорам это нравится для экзаменационных вопросов).

Эти идиоты пытаются сказать, что ссылка на страницу будет находиться в памяти или нет в памяти с двумя вероятностями, суммирующимися до 1.0. Это совершенно бессмысленно, потому что относительные вероятности являются динамическими. Если другие процессы начинают использовать память, вероятность ошибки страницы увеличивается, а если другие процессы перестают использовать память, вероятность снижается.

Тогда у вас есть время доступа к памяти. Это тоже не является постоянным. Доступ к ячейке кэшированной памяти выполняется быстрее, чем к некэшированной ячейке. Доступ к памяти, которая совместно используется несколькими процессорами и взаимосвязана, происходит медленнее. Это тоже не константа.

Тогда у вас есть время обслуживания сбоя страницы. Существуют ошибки мягких и твердых страниц. Ошибка страницы на странице с нулевым запросом отличается по времени от страницы, которая должна быть загружена с диска. Кэшируется ли доступ к диску или не кэшируется? Сколько активности присутствует на диске?

О, таблица страниц разбита на страницы? Если да, то ошибка страницы связана с таблицей страниц или с самой страницей? Это может быть даже и то, и другое.

Обслуживание ошибки страницы:

  1. Процесс вводит обработчик исключений и прерываний.
  2. Обработчик прерываний отправляется обработчику ошибок страницы.
  3. Обработчик ошибок страницы должен найти, где хранится страница.
  4. Если страница находится в памяти (была выгружена, но не записана на диск), обработчику просто нужно обновить таблицу страниц.
  5. Если страницы нет в памяти, обработчик должен посмотреть, где хранится страница (это зависит от системы и типа памяти).
  6. Система должна выделить физический фрейм страницы для памяти.
  7. Если это первая ссылка на страницу с нулевым запросом, нет необходимости читать с диска, просто установите все на ноль.
  8. Если страница находится в кэше диска, извлеките страницу из него.
  9. В противном случае прочитайте страницу с диска во фрейм страницы.
  10. Сбросьте регистры процесса соответствующим образом.
  11. Возврат в пользовательский режим
  12. Перезапустите инструкцию, вызвавшую ошибку. (Все вышеперечисленное имеет грубые упрощения.)

TLB на самом деле не имеет к этому никакого отношения, за исключением того, что время обслуживания немного быстрее, если соответствующая запись таблицы страниц находится в TLB.

Следовательно, время обслуживания сбоя страницы = время TLB время таблицы страниц извлечение страницы с диска

Совсем нет.

Комментарии:

1. Включает ли время обслуживания сбоя страницы время доступа к памяти для подкачки по запросу?

2. Время доступа к чему? Время обслуживания ошибки ошибки начинается с момента попадания ошибки в вектор прерывания до возврата из исключения.