Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Data Structures and Algorithms in C++ 2e (На ру...docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.37 Mб
Скачать

Глава 14. Управление памятью и b-деревья

Стратегия FIFO довольно проста осуществить, потому что она только требует, чтобы очередь Q сохранила ссылки на страницы в тайнике. Страницы поставлены в очередь в Q, когда на них ссылается браузер, и затем приносят в тайник. Когда страница должна быть выселена, компьютер просто выполняет dequeue операцию на Q, чтобы определить который страница выселить. Таким образом эта политика также требует O (1) дополнительная работа за замену страницы. Кроме того, политика FIFO подвергается не дополнительный наверху для запросов страницы. Кроме того, это пытается воспользоваться некоторым преимуществом временной местности.

Стратегия LRU идет шаг вперед, чем стратегия FIFO, так как стратегия LRU явно использует в своих интересах временную местность как можно больше al - способы выселить страницу, которая меньше всего недавно использовалась. Со стратегической точки зрения это - превосходный подход, но это дорогостоящее с точки зрения внедрения. Таким образом, его способ оптимизировать временную и пространственную местность довольно дорогостоящий. Im-plementing стратегия LRU требует использования приоритетной очереди Q, который поддерживает поиск существующих страниц, например, используя специальные указатели или «локаторы». Если Q осуществлен с сортированной последовательностью, основанной на связанном списке, то верхним для каждого запроса страницы и замены страницы является O (1). Когда мы вставляем страницу в Q или обновляем его ключ, странице назначают самый высокий ключ Q и помещают в конце списка, который может также быть сделан в O (1) время. Даже при том, что стратегия LRU имеет постоянно-разовый верхний, используя внедрение выше, постоянные множители в - volved, с точки зрения дополнительного времени наверху и дополнительного пространства для приоритетной очереди Q, вырабатывают эту политику, менее привлекательную с практической точки зрения.

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

С точки зрения худшего случая у FIFO и стратегий LRU есть довольно непривлекательное конкурентоспособное поведение. Например, предположите, что мы имеем довод «против» тайника - taining m страницы и рассматриваем FIFO и методы LRU для выполнения замены страницы для программы, у которой есть петля, которая неоднократно просит m + 1 страница в циклическом заказе. И FIFO и политика LRU выступают ужасно на такой последовательности запросов страницы, потому что они выполняют замену страницы по каждому запросу страницы. Таким образом, с точки зрения худшего случая, эта политика почти хуже, мы можем вообразить - они требуют замены страницы по каждому запросу страницы.

Этот анализ худшего случая немного слишком пессимистичен, однако, поскольку он сосредотачивается на поведении каждого протокола для одной плохой последовательности запросов страницы. Идеал analy-сестра должен был бы сравнить эти методы по всем возможным последовательностям запроса страницы. Конечно, это невозможно сделать исчерпывающе, но была большая цифра - частота ошибок по битам экспериментальных моделирований, сделанных на последовательностях запроса страницы, полученных на основании реальных программ. Основанный на этих экспериментальных сравнениях, стратегия LRU, как показывали, обычно превосходила стратегию FIFO, которая обычно лучше, чем Случайная стратегия.