24 [[nodiscard]]
virtual std::string_view
name() const noexcept = 0;
31 selectNext(const std::vector<std::reference_wrapper<const
PCB>> &readyQueue, const
IClock &clock) const = 0;
37 [[nodiscard]] virtual
bool
Abstract clock interface for simulation time.
Strategy interface for scheduling algorithms.
virtual ~ISchedulingPolicy()=default
virtual bool shouldPreempt(const PCB &running, const PCB &candidate, const IClock &clock) const =0
Decides whether the current running process should be preempted.
virtual ProcessId selectNext(const std::vector< std::reference_wrapper< const PCB > > &readyQueue, const IClock &clock) const =0
Selects the next process ID from the ready queue.
virtual std::string_view name() const noexcept=0
Human-readable policy name.
Process Control Block — stores all metadata for a single process.
std::uint32_t ProcessId
Unique identifier for a process.
Common type aliases, sentinel constants, and forward declarations used throughout the Contur 2 kernel...