Алгоритмы замещения Кривых Алексей krivykhalexey@mail.ru Зольников Павел pasha.zolnikov@gmail.com Самунь Виктор victor.samun@gmail.com IT Summer SPb 2012.

Презентация:



Advertisements
Похожие презентации
Кэш в СХД Кривых Алексей Зольников Павел Самунь Виктор IT Summer SPb 2012.
Advertisements

Построение модели подсистемы кэширования СХД AVRORA Зольников Павел Кривых Алексей
Лекция 5 Управление памятью Виртуальное адресное пространство Непрерывное…..
Выбор действий в Бейсике (ветвление). Задача: найти максимальное число из двух чисел. Словесная форма записи: Алгоритм MAX Начало 1. Запросить числа A,
Например: семейство бабочек; Понятие одномерного массива поле цветов;
Власова О.А. СОШ 5, Елабуга. Например: семейство бабочек ; Понятие одномерного массива поле цветов;
Операционные системы Управление памятью Скрипов Сергей Александрович 2009.
Управление памятью. В ИРТУАЛЬНАЯ ПАМЯТЬ Основная идея заключается в разбиении программы на части, и в память эти части загружаются по очереди. Программа.
Двумерные массивы. Задачи обработки двумерных массивов.
1 Программирование на языке Паскаль Тема 2. Максимальный элемент массива.
Program maxsimum; const n=10; var a:array [1..n] of integer; max,i:integer;begin ВВОД ЭЛЕМЕНТОВ МАССИВА; max:=a[1]; for i:=2 to n do if a[i]> max then.
Шутилина Л.А., A[1,1]A[1,2]A[1,3]A[1,4]A[1,5] A[2,1]A[2,2]A[2,3]A[2,4]A[2,5] A[3,1]A[3,2]A[3,3]A[3,4]A[3,5] A[4,1]A[4,2]A[4,3]A[4,4]A[4,5]
Шутилина Л.А. В жизни часто приходится принимать решения в зависимости от сложившейся ситуации, когда нужно сделать тот или иной.
Задача 1. Какое значение будет иметь n в результате выполнения следующего фрагмента алгоритма? n:=5 m:=17 если nm то n:=n*m иначе n:=n-m все.
Двумерные массивы. В двумерном массиве каждый элемент фиксируется номером строки и столбца, на пересечении которых он расположен. Положение элемента в.
1 Автор разработки: Розанова Татьяна Аркадьевна, учитель информатики МОУ СОШ 2 города Кинешмы Ивановской области 2011 – 2012 учебный год Автор разработки:
АЛГОРИТМ ЕВКЛИДА (нахождение наибольшего общего делителя (НОД) двух натуральных чисел)
Задания части А Задания части С. 1. Значения двух массивов A[1..100] и B[1..100] задаются с помощью следующего фрагмента программы. Сколько элементов.
Массивы 9 класс. Основные теоретические сведения Примеры решения задач.
Циклические алгоритмы. Задача 1. Вычислить значение функции при x=2, 3, 4, …, 50. Определение. Циклическим называют алгоритм, в котором получение результата.
Транксрипт:

Алгоритмы замещения Кривых Алексей Зольников Павел Самунь Виктор IT Summer SPb

Оптимальный алгоритм (алгоритм Белади) Вытеснять те сегменты, которые не понадобятся дольше всего Идеальный оракул

LRU Least Recently Used Вытесняем сегмент, который не использовался дольше всего, где - количество страниц, замещенных LRU, B – размер кэша, a-константа Недостаток: Использует слишком мало информации

Random Replacement Замещает случайно выбранный сегмент Был реализован в ARM процессорах Главное преимущество - простота

LFU LFU – Feast Frequently Used Вытесняем элемент, к которым обращались меньше всего раз Недостаток: Имеет тенденцию хранить страницы, которые были популярны в прошлом.

LRU/K LRU/1 = LRU Преимущества – Использует больше информации, чем LRU, при K >1 – Основан на понятии «старение», учитывающем, только последние K обращений Недостаток: – Cложность – Необходим вспомогательный алгоритм для неопределенного случая

Backward K-distance Имеем к моменту времени t строку запросов, если, и было в точности K-1 значений i, таких, что где, если p не появлялось K раз в строке

LRU/K замещение В качестве жертвы выбираем сегмент, для которого максимальное Неопределенная ситуация возникает, если сегментов с больше одного, в этом случае необходимо использовать вспомогательный алгоритм

2Q 2Q – 2 Queue Как и LRU/K имеет тенденцию оставлять только популярные страницы Как утверждает Theodore Jonson из университета Флорида, работает также хорошо, как и LRU/K Ain(25% ) – FIFO, Am-LRU, Aout(50%)-FIFO

2Q2Q If (X ϶ Am) then pushToHead(X, Am) else if(X ϶ Aout) then pushToHead (X, Am) else if (X ϶Ain) else pushToHead(X, Ain) pushToHead(V, Aout) end if Где X – запрашиваемая страница, V - жертва