Я работаю над проблемой, когда доступны три страницы памяти, и данные должны быть записаны на одной из страниц.Алгоритм для поиска самых новых значений n
Для сохранения истории данные сначала записываются на 1-ю страницу, а когда она заполнена, следующая страница должна использоваться. Наконец, последняя страница также заполнена, поэтому мы должны стереть данные на первой странице и использовать первую страницу. И так далее ...
Как я могу узнать, какая из страниц является «самой старой»? Как определить, что удалить?
Я думаю, что необходим счетчик, и этот счетчик увеличивается каждый раз, когда используется новая страница. Значения счетчика считаются в начале, чтобы найти, какая страница является самой новой, а затем следующая страница является самой старой (с момента кругового подхода). Однако, в конечном счете счетчик будет переполняться, счетчик перезагрузится, и будет невозможно убедиться, какое значение является самым высоким (поскольку новое значение равно 0).
Пример:
- 0 0 0 (от начала) (использовался page0)
- 1 2 0 (был использован стр.1)
- 1 2 3 (стр.2 было был использован используется)
- 4 2 3 (page0) использовали
- 4 5 3 (стр.1)
- ...
- 255 0 254 (я не знаю ...)
Является ли проблема понятной? В противном случае я могу попытаться объяснить.
Почему бы просто не обновить значение со старым значением + 1 по модулю 3? – Thijser