Ошибки страницы в алгоритме LRU

У меня проблемы с пониманием чего-то из моей лекции по программированию. Я знаю, что алгоритмы замены страниц имеют ошибки страниц.

Когда в алгоритме LRU происходит сбой страницы? Это происходит, когда свободных кадров больше нет? Это когда рама уже есть, но уже использована?

У меня есть эта картинка в моих лекционных презентациях (я обрезал только важную часть, так как оригинал на другом языке):

введите здесь описание изображения

Вопрос на этом рисунке: «Имея только 4 кадра, когда произойдет ошибка страницы, если используется алгоритм LRU?» И, как я вижу, в первых трех строках есть x. Вот поэтому я и спрашиваю, происходит ли page fault, когда остаются свободные кадры? Или ошибка страницы возникает только в красных крестиках, когда нам нужно "выбить" кадр?


person user3211186    schedule 26.05.2014    source источник
comment
Ошибка страницы возникает, когда запрошенная страница отсутствует в памяти и должна быть загружена. Это может привести или не привести к удалению другой страницы.   -  person Blorgbeard    schedule 27.05.2014
comment
Значит, соответственно, page fault произойдет даже в первой записи, где все кадры свободны? По сути, единственный случай, когда ошибка страницы НЕ БУДЕТ происходить, - это если кадр уже загружен.   -  person user3211186    schedule 27.05.2014
comment
Да это правильно. Каждый раз, когда запрашивается страница, которой нет в памяти, возникает ошибка страницы. Алгоритм LRU определяет, какую страницу выбрасывать при заполнении памяти. Это единственный способ, которым он влияет при возникновении ошибок страницы - если он выбрасывает страницу, которая позже запрашивается, это будет еще одна ошибка страницы.   -  person Blorgbeard    schedule 27.05.2014
comment
Спасибо. Это делает это очень ясным. Ваш комментарий на самом деле является ответом, который мне нужен, так что мне теперь делать с моим вопросом здесь, в stackoverflow? Я сам на него отвечаю?   -  person user3211186    schedule 27.05.2014
comment
Вы можете сделать это, абсолютно. Написание ответа может даже помочь вам еще больше укрепить свое понимание.   -  person Blorgbeard    schedule 27.05.2014


Ответы (1)


Ошибка страницы возникает, когда страница еще не находится в одном из фреймов.

Поэтому, если осталось несколько свободных фреймов и нам нужно ввести новую страницу - произойдет ошибка страницы, потому что страницы еще нет в одном из фреймов. Это означает, что сбой страницы будет происходить до тех пор, пока мы не встретим ту же страницу (номер), которая уже находится в одном из кадров. Вот почему в первых 3-х строках картинки стоит крестик. И в четвертой строке нет «x», потому что страница уже была в одном из фреймов.

И ошибка страницы возникает, если все фреймы уже содержат страницы, а новая страница, которую мы открываем, еще не находится в одном из фреймов, нам нужно «выкинуть» фрейм, чтобы освободить один фрейм для нового страница. Это можно сделать с помощью различных алгоритмов, таких как «Наименее недавно использованные», «Первым поступил – первым обслужен» и т. д. Вот почему на картинке некоторые крестики красные, потому что произошла ошибка страницы, И мы удалили кадр.

Спасибо @Blorgbeard за помощь с моим ответом.

person user3211186    schedule 27.05.2014