![]() |
Contur 2
Educational OS kernel simulator
|
Strategy interface for scheduling algorithms. More...
#include <i_scheduling_policy.h>
Public Member Functions | |
| virtual | ~ISchedulingPolicy ()=default |
| virtual std::string_view | name () const noexcept=0 |
| Human-readable policy name. | |
| virtual ProcessId | selectNext (const std::vector< SchedulingProcessSnapshot > &readyQueue, const IClock &clock) const =0 |
| Selects the next process ID from the ready queue. | |
| virtual bool | shouldPreempt (const SchedulingProcessSnapshot &running, const SchedulingProcessSnapshot &candidate, const IClock &clock) const =0 |
| Decides whether the current running process should be preempted. | |
Strategy interface for scheduling algorithms.
Definition at line 35 of file i_scheduling_policy.h.
|
virtualdefault |
|
nodiscardpure virtualnoexcept |
Human-readable policy name.
Implemented in contur::FcfsPolicy, contur::HrrnPolicy, contur::MlfqPolicy, contur::PriorityPolicy, contur::RoundRobinPolicy, contur::SpnPolicy, and contur::SrtPolicy.
|
nodiscardpure virtual |
Selects the next process ID from the ready queue.
| readyQueue | Immutable snapshot of ready processes. |
| clock | Simulation clock. |
Implemented in contur::FcfsPolicy, contur::HrrnPolicy, contur::MlfqPolicy, contur::PriorityPolicy, contur::RoundRobinPolicy, contur::SpnPolicy, and contur::SrtPolicy.
References selectNext().
Referenced by selectNext().
|
nodiscardpure virtual |
Decides whether the current running process should be preempted.
| running | Currently running process. |
| candidate | Candidate ready process chosen by selectNext(). |
| clock | Simulation clock. |
Implemented in contur::FcfsPolicy, contur::HrrnPolicy, contur::MlfqPolicy, contur::PriorityPolicy, contur::RoundRobinPolicy, contur::SpnPolicy, and contur::SrtPolicy.
References shouldPreempt().
Referenced by shouldPreempt().