Кэширование и наиболее популярные политики удаления кеша

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

У нас есть идея

Предположим, вы проводите исследование с определенной идеей, и для этого вам помогают многие книги. Все книги в библиотеке у вас дома. Каждый раз, когда вам нужна книга, вам нужно пойти в библиотеку и принести ее. Это также хлопотно и требует много времени.

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

Это то, что делает кеш. Вы просто кэшировали то, что вам нужно часто, чтобы ускорить процесс.

Политики вытеснения кеша

Вы могли подумать, зачем мне заменять вещи из кеша? На самом деле, кеш настолько дорогой. Очевидно, у вас есть предел. Все данные не могут храниться в кэш-памяти.

Предположим, ваш кеш имеет емкость 100 данных, и вы только что превысили свой лимит. Кэш-память автоматически сбросит один. Лучше вы определяете правила. Есть еще много устоявшихся политик. Некоторые популярные политики

  • Первый пришел - первый ушел (FIFO)
  • Последний пришел - первый ушел (LIFO)
  • Наименее недавно использованный (LRU)
  • Время с учетом наименее недавно использованного (TLRU)
  • Последний использованный (MRU)

Первый пришел - первый ушел (FIFO)

FIFO ведет себя так же, как FIFO, который мы использовали в структуре данных. Первыми должны идти наши средства, которые пришли первыми, когда кеш заполнен. Кеш удаляет блоки в том порядке, в котором они были добавлены. Никакой другой приоритет здесь не применим. Насколько важны данные или как часто они используются, не имеет значения.

Вот фрагмент кода на C ++ для управления FIFO. Пожалуйста, посмотрите.

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

Последний пришел - первый ушел (LIFO)

Это противоположность FIFO. Он также знаком со знаниями о структуре данных. Кто пришел последним, войдет первым, когда кеш будет заполнен. Это не популярная политика кеширования. Подумайте о реальных проблемах. Как обычно, нам не нужен LIFO.

Вот фрагмент кода на C ++. Пожалуйста, посмотрите

Наименее недавно использованный (LRU)

Политика LRU сначала выводит наименее используемые элементы. Алгоритм всегда отслеживает использование данных и сохраняет данные, которые использовались не так давно. Вот пример ниже. Предположим, у нас есть последовательность 701203042303212. Вот что произойдет с последовательностью данных.

Ошибка страницы

Если номер еще не находится в контейнере данных, возникает ошибка страницы. Мы отметили этот красный цвет в нашем контейнере данных, также есть столбец с ошибкой страницы, в которой произошла ошибка страницы этапа.

Переходы на страницу

Если номер уже находится в контейнере данных, происходит обращение к странице. Мы сделали их зелеными, когда происходит обращение к странице.

Остальная часть страницы

Остальные страницы мы сделали голубым.

Вот определение цвета ниже.

LRU - одна из наиболее широко используемых политик выселения для управления кешем.

Время с учетом наименее недавно использованного (TLRU)

TLRU - еще один вариант LRU. Разница в том, что данные имеют допустимое время жизни, а LRU не имеет такого условия. TLRU в основном используется в системах сетевого кэширования, таких как информационно-ориентированные сети (ICN), сети доставки контента (CDN) и распределенные сети в целом.

Другие

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

Заворачивать

Здесь мы просто познакомимся с основами кеширования и некоторыми его политиками. Знание этого поможет вам позже. Спасибо за чтение.

Ссылка: https://en.wikipedia.org/wiki/Cache_replacement_policies