final comit
This commit is contained in:
parent
49410552c6
commit
49ef72e1ea
12
Readme.md
12
Readme.md
@ -1,14 +1,20 @@
|
|||||||
# Алгоритм кэширования 2Q
|
# Алгоритм кэширования 2Q
|
||||||
Алгоритм кэширования 2Q (Two Queues) представляет собой метод управления кэш-памятью. Этот алгоритм состоит из двух очередей: q1 и q2. q1 является буфером, в который добавляются данные только в начале и замещаются из конца, а q2 используется для хранения "недавно использованных" данных.
|
Алгоритм кэширования 2Q (Two Queues) представляет собой метод управления кэш-памятью. Этот алгоритм состоит из двух очередей: q1 и q2. q1 является буфером, в который добавляются данные только в начале и замещаются из конца, а q2 используется для хранения "недавно использованных" данных.
|
||||||
|
# Тестирование
|
||||||
|
Генератор тестов - test_gen.py спрашивает количество тестов и создает pytests.txt
|
||||||
|
make test
|
||||||
|
./cache_test "test_file_name"
|
||||||
|
Напиример: ./cache_test pytests.txt
|
||||||
# Принцип работы
|
# Принцип работы
|
||||||
Когда данные добавляются в кэш, они помещаются в начало q1.
|
Когда данные добавляются в кэш, они помещаются в начало q1.
|
||||||
Если данные извлекаются из кэша, они перемещаются из q1 в начало q2.
|
Если данные извлекаются из кэша, они перемещаются из q1 в начало q2.
|
||||||
Если данные снова запрашиваются и они находятся в q2, они перемещаются в конец q1.
|
Если данные снова запрашиваются и они находятся в q2, они перемещаются в конец q1.
|
||||||
Если данные снова запрашиваются и их уже нет в кэше, они добавляются в начало q1, а если q1 заполнена, то данные из конца q1 удаляются и добавляются новые данные в начало q1.
|
Если данные снова запрашиваются и их уже нет в кэше, они добавляются в начало q1, а если q1 заполнена, то данные из конца q1 удаляются и добавляются новые данные в начало q1.
|
||||||
# Преимущества
|
# Преимущества
|
||||||
## Эффективность: алгоритм 2Q обладает хорошей производительностью и способен эффективно управлять кэш-памятью.
|
## Эффективность:
|
||||||
## Адаптивность: алгоритм автоматически регулируется в зависимости от обращаемости данных, приспосабливаясь к изменениям в запросах.
|
алгоритм 2Q обладает хорошей производительностью и способен эффективно управлять кэш-памятью.
|
||||||
|
## Адаптивность:
|
||||||
|
алгоритм автоматически регулируется в зависимости от обращаемости данных, приспосабливаясь к изменениям в запросах.
|
||||||
## Недостатки
|
## Недостатки
|
||||||
Не подходит для всех типов данных: алгоритм 2Q неэффективен для случаев, когда данные необходимо хранить в определённом порядке.
|
Не подходит для всех типов данных: алгоритм 2Q неэффективен для случаев, когда данные необходимо хранить в определённом порядке.
|
||||||
Сложность реализации: реализация алгоритма кэширования 2Q может быть более сложной, чем у других методов управления кэш-памятью.
|
Сложность реализации: реализация алгоритма кэширования 2Q может быть более сложной, чем у других методов управления кэш-памятью.
|
||||||
|
BIN
cache_test
Executable file
BIN
cache_test
Executable file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user