contur2
Loading...
Searching...
No Matches
contur::LruReplacement Class Referencefinal

Least Recently Used page replacement. More...

#include <lru_replacement.h>

Inheritance diagram for contur::LruReplacement:
Collaboration diagram for contur::LruReplacement:

Public Member Functions

 LruReplacement ()
 ~LruReplacement () override
 LruReplacement (const LruReplacement &)=delete
LruReplacementoperator= (const LruReplacement &)=delete
 LruReplacement (LruReplacement &&) noexcept
LruReplacementoperator= (LruReplacement &&) noexcept
std::string_view name () const noexcept override
 Returns the name of the algorithm (e.g., "FIFO", "LRU").
FrameId selectVictim (const PageTable &pageTable) override
 Selects a victim frame to evict.
void onAccess (FrameId frame) override
 Notifies the policy that a frame was accessed (read or write).
void onLoad (FrameId frame) override
 Notifies the policy that a new page was loaded into a frame.
void reset () override
 Resets the policy's internal state.
Public Member Functions inherited from contur::IPageReplacementPolicy
virtual ~IPageReplacementPolicy ()=default

Private Attributes

std::unique_ptr< Impl > impl_

Detailed Description

Least Recently Used page replacement.

Tracks access order via timestamps. On eviction, selects the frame that has not been accessed for the longest time.

Definition at line 16 of file lru_replacement.h.

Constructor & Destructor Documentation

◆ LruReplacement() [1/3]

contur::LruReplacement::LruReplacement ( )

◆ ~LruReplacement()

contur::LruReplacement::~LruReplacement ( )
override

◆ LruReplacement() [2/3]

contur::LruReplacement::LruReplacement ( const LruReplacement & )
delete

◆ LruReplacement() [3/3]

contur::LruReplacement::LruReplacement ( LruReplacement && )
noexcept

Member Function Documentation

◆ name()

std::string_view contur::LruReplacement::name ( ) const
nodiscardoverridevirtualnoexcept

Returns the name of the algorithm (e.g., "FIFO", "LRU").

Implements contur::IPageReplacementPolicy.

◆ onAccess()

void contur::LruReplacement::onAccess ( FrameId frame)
overridevirtual

Notifies the policy that a frame was accessed (read or write).

Implements contur::IPageReplacementPolicy.

◆ onLoad()

void contur::LruReplacement::onLoad ( FrameId frame)
overridevirtual

Notifies the policy that a new page was loaded into a frame.

Implements contur::IPageReplacementPolicy.

◆ operator=() [1/2]

LruReplacement & contur::LruReplacement::operator= ( const LruReplacement & )
delete

◆ operator=() [2/2]

LruReplacement & contur::LruReplacement::operator= ( LruReplacement && )
noexcept

◆ reset()

void contur::LruReplacement::reset ( )
overridevirtual

Resets the policy's internal state.

Implements contur::IPageReplacementPolicy.

◆ selectVictim()

FrameId contur::LruReplacement::selectVictim ( const PageTable & pageTable)
nodiscardoverridevirtual

Selects a victim frame to evict.

Parameters
pageTableThe current page table state.
Returns
The FrameId of the frame to evict.

Implements contur::IPageReplacementPolicy.

Member Data Documentation

◆ impl_

std::unique_ptr<Impl> contur::LruReplacement::impl_
private

Definition at line 35 of file lru_replacement.h.


The documentation for this class was generated from the following file: