Contur 2
Educational OS kernel simulator
Loading...
Searching...
No Matches
contur::LruReplacement Class Referencefinal

Least Recently Used page replacement. More...

#include <lru_replacement.h>

Inheritance diagram for contur::LruReplacement:

Public Member Functions

 LruReplacement ()
 Creates an LRU replacement policy with empty history state.
 ~LruReplacement () override
 Destroys LRU replacement policy.
 LruReplacement (const LruReplacement &)=delete
 Copy construction is disabled.
LruReplacementoperator= (const LruReplacement &)=delete
 Copy assignment is disabled.
 LruReplacement (LruReplacement &&) noexcept
 Move-constructs policy state.
LruReplacementoperator= (LruReplacement &&) noexcept
 Move-assigns policy state.
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 ( )

Creates an LRU replacement policy with empty history state.

Referenced by LruReplacement(), LruReplacement(), operator=(), and operator=().

◆ ~LruReplacement()

contur::LruReplacement::~LruReplacement ( )
override

Destroys LRU replacement policy.

◆ LruReplacement() [2/3]

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

Copy construction is disabled.

References LruReplacement().

◆ LruReplacement() [3/3]

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

Move-constructs policy state.

References LruReplacement().

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.

References name().

Referenced by name().

◆ onAccess()

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

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

Implements contur::IPageReplacementPolicy.

References onAccess().

Referenced by onAccess().

◆ onLoad()

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

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

Implements contur::IPageReplacementPolicy.

References onLoad().

Referenced by onLoad().

◆ operator=() [1/2]

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

Copy assignment is disabled.

References LruReplacement().

◆ operator=() [2/2]

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

Move-assigns policy state.

References LruReplacement().

◆ reset()

void contur::LruReplacement::reset ( )
overridevirtual

Resets the policy's internal state.

Implements contur::IPageReplacementPolicy.

References reset().

Referenced by reset().

◆ 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.

References selectVictim().

Referenced by selectVictim().

Member Data Documentation

◆ impl_

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

Definition at line 53 of file lru_replacement.h.


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