Участник:Vlad SG
Версия от 01:41, 27 января 2022; Vlad SG (обсуждение | вклад)
Содержание
Формулировка
Пусть задана последовательность запросов к внешней памяти. Необходимо решить для каждого запроса: сохранить его значение в кэш размера или оставить его во внешней памяти.
Основные определения
| Определение: |
| Кэш попадание (англ. cache hit) — результат обрабатываемого запроса уже хранится в кэше и его можно вернуть мгновенно. Будем считать, что время обработки такого запроса равно 0. |
| Определение: |
| Кэш промах (англ. cache miss) — результат обрабатываемого запроса отсутствует в кэше и чтобы его получить необходимо обращаться к внешней памяти. При получении ответа мы так же можем сохранить новое значение в кэш, вытеснив(удалив) некоторое старое. Будем считать, что время обработки такого запроса равно 1. |
| Определение: |
| Временем работы алгоритма кэширования будем называть количество кэш промахов случившихся при обработке всех запросов. |
При анализе случайных алгоритмов будем использовать матожидание количества кэш промахов при всех возможных случайных выборах, но для фиксированной последовательности запросов.
| Определение: |
| Онлайн алгоритм (англ. on-line algorithm) — алгоритм, который при обработке запроса не знает следующих запросов. |
| Определение: |
| Оффлайн алгоритм (англ. off-line algorithm) — алгоритм, которому на вход даются все запросы сразу. |
| Определение: |
| -оптимальность — свойство онлайн алгоритма, означающее что время работы этого алгоритма на любых входных данных не более чем в раз больше, чем у любого оффлайнового, с точностью до аддитивной константы. |
Ограничение детерминированных алгоритмов
| Теорема: |
— размер кэша. Любой -оптимальный детерменированный алгоритм кэширования имеет . |
| Доказательство: |
|
Чтобы показать, что , достаточно для каждого алгоритма предоставить одну такую последовательность запросов, при которой Теорема доказана. |