spz3/Process.cpp

20 lines
731 B
C++
Raw Normal View History

2025-03-31 17:19:43 +03:00
#include "Process.h"
2025-04-01 22:06:25 +03:00
#include <random>
2025-04-01 16:29:33 +03:00
#include <utility>
2025-04-01 22:06:25 +03:00
Process::Process(const unsigned int id, std::vector<PTE> page_table, const unsigned int working_set_size,
const unsigned int execution_time) : page_table(std::move(page_table)), execution_time(execution_time), elapsed_time(0),
id(id), next(nullptr), prev(nullptr) {
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<unsigned int> page_table_distribution(0, this->page_table.size() - 1);
for (int i = 0; i < working_set_size; ++i) {
working_set.push_back(page_table_distribution(gen));
}
2025-03-31 17:19:43 +03:00
}
2025-04-01 22:06:25 +03:00
bool Process::is_finished() const {
return elapsed_time >= execution_time;
2025-03-31 17:19:43 +03:00
}