Contur 2
Educational OS kernel simulator
Loading...
Searching...
No Matches
fifo_replacement.h
Go to the documentation of this file.
1
3
4
#pragma once
5
6
#include <memory>
7
8
#include "
contur/memory/i_page_replacement.h
"
9
10
namespace
contur
{
11
16
class
FifoReplacement
final :
public
IPageReplacementPolicy
17
{
18
public
:
20
FifoReplacement
();
21
23
~FifoReplacement
()
override
;
24
26
FifoReplacement
(
const
FifoReplacement
&) =
delete
;
27
29
FifoReplacement
&
operator=
(
const
FifoReplacement
&) =
delete
;
31
FifoReplacement
(
FifoReplacement
&&) noexcept;
32
34
FifoReplacement
&operator=(
FifoReplacement
&&) noexcept;
35
37
[[nodiscard]] std::string_view
name
() const noexcept override;
38
40
[[nodiscard]]
FrameId
selectVictim
(const
PageTable
&pageTable) override;
41
43
void
onAccess
(
FrameId
frame) override;
44
46
void
onLoad
(
FrameId
frame) override;
47
49
void
reset
() override;
50
51
private:
52
struct Impl;
53
std::unique_ptr<Impl>
impl_
;
54
};
55
56
}
// namespace contur
contur::FifoReplacement::name
std::string_view name() const noexcept override
Returns the name of the algorithm (e.g., "FIFO", "LRU").
contur::FifoReplacement::selectVictim
FrameId selectVictim(const PageTable &pageTable) override
Selects a victim frame to evict.
contur::FifoReplacement::impl_
std::unique_ptr< Impl > impl_
Definition
fifo_replacement.h:53
contur::FifoReplacement::onAccess
void onAccess(FrameId frame) override
Notifies the policy that a frame was accessed (read or write).
contur::FifoReplacement::FifoReplacement
FifoReplacement()
Creates a FIFO replacement policy with empty queue state.
contur::FifoReplacement::FifoReplacement
FifoReplacement(FifoReplacement &&) noexcept
Move-constructs policy state.
contur::FifoReplacement::onLoad
void onLoad(FrameId frame) override
Notifies the policy that a new page was loaded into a frame.
contur::FifoReplacement::operator=
FifoReplacement & operator=(const FifoReplacement &)=delete
Copy assignment is disabled.
contur::FifoReplacement::reset
void reset() override
Resets the policy's internal state.
contur::FifoReplacement::~FifoReplacement
~FifoReplacement() override
Destroys FIFO replacement policy.
contur::FifoReplacement::FifoReplacement
FifoReplacement(const FifoReplacement &)=delete
Copy construction is disabled.
contur::IPageReplacementPolicy
Abstract interface for page replacement algorithms.
Definition
i_page_replacement.h:20
contur::PageTable
Page table mapping virtual page numbers to physical frames.
Definition
page_table.h:27
i_page_replacement.h
IPageReplacementPolicy interface — pluggable page replacement algorithms.
contur
Definition
block.h:15
contur::FrameId
std::uint32_t FrameId
Frame number in physical memory.
Definition
types.h:43
include
contur
memory
fifo_replacement.h
Generated by
1.16.1