![]() |
Contur 2
Educational OS kernel simulator
|
Clock (Second Chance) page replacement. More...
#include <clock_replacement.h>
Public Member Functions | |
| ClockReplacement () | |
| Creates a clock replacement policy with empty tracking state. | |
| ~ClockReplacement () override | |
| Destroys clock replacement policy. | |
| ClockReplacement (const ClockReplacement &)=delete | |
| Copy construction is disabled. | |
| ClockReplacement & | operator= (const ClockReplacement &)=delete |
| Copy assignment is disabled. | |
| ClockReplacement (ClockReplacement &&) noexcept | |
| Move-constructs policy state. | |
| ClockReplacement & | operator= (ClockReplacement &&) 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_ |
Clock (Second Chance) page replacement.
Uses a circular buffer and reference bits. On eviction, scans frames:
Definition at line 17 of file clock_replacement.h.
| contur::ClockReplacement::ClockReplacement | ( | ) |
Creates a clock replacement policy with empty tracking state.
Referenced by ClockReplacement(), ClockReplacement(), operator=(), and operator=().
|
override |
Destroys clock replacement policy.
|
delete |
Copy construction is disabled.
References ClockReplacement().
|
noexcept |
Move-constructs policy state.
References ClockReplacement().
|
nodiscardoverridevirtualnoexcept |
Returns the name of the algorithm (e.g., "FIFO", "LRU").
Implements contur::IPageReplacementPolicy.
References name().
Referenced by name().
|
overridevirtual |
Notifies the policy that a frame was accessed (read or write).
Implements contur::IPageReplacementPolicy.
References onAccess().
Referenced by onAccess().
|
overridevirtual |
Notifies the policy that a new page was loaded into a frame.
Implements contur::IPageReplacementPolicy.
References onLoad().
Referenced by onLoad().
|
noexcept |
Move-assigns policy state.
References ClockReplacement().
|
delete |
Copy assignment is disabled.
References ClockReplacement().
|
overridevirtual |
Resets the policy's internal state.
Implements contur::IPageReplacementPolicy.
References reset().
Referenced by reset().
|
nodiscardoverridevirtual |
Selects a victim frame to evict.
| pageTable | The current page table state. |
Implements contur::IPageReplacementPolicy.
References selectVictim().
Referenced by selectVictim().
|
private |
Definition at line 54 of file clock_replacement.h.