1
0
This commit is contained in:
Sytnyk Yehor
2025-05-15 13:11:19 +03:00
parent 4c01c2fe11
commit 9fb9f66f27
26 changed files with 730 additions and 0 deletions

View File

@ -0,0 +1,44 @@
#pragma once
#ifndef PAGE_REPLACEMENT_HPP
#define PAGE_REPLACEMENT_HPP
#include <cstdint>
#include <vector>
namespace paging {
class replacer {
public:
explicit replacer(int32_t frame_count) : _frames(frame_count) {}
virtual ~replacer() = default;
virtual int32_t run(const std::vector<int32_t> &pages) = 0;
protected:
int32_t _frames;
};
class optimal_replacer : public replacer {
public:
using replacer::replacer;
int32_t run(const std::vector<int32_t> &pages) override;
};
class clock_replacer : public replacer {
public:
using replacer::replacer;
int32_t run(const std::vector<int32_t> &pages) override;
};
class lru_replacer : public replacer {
public:
using replacer::replacer;
int32_t run(const std::vector<int32_t> &pages) override;
};
} // namespace paging
#include "../src/paging.cpp"
#endif