|
contur2
|
Scheduler host that manages process queues and policy decisions. More...
#include <scheduler.h>


Public Member Functions | |
| Scheduler (std::unique_ptr< ISchedulingPolicy > policy) | |
| Constructs scheduler with initial policy. | |
| ~Scheduler () override | |
| Scheduler (const Scheduler &)=delete | |
| Scheduler & | operator= (const Scheduler &)=delete |
| Scheduler (Scheduler &&) noexcept | |
| Scheduler & | operator= (Scheduler &&) noexcept |
| Result< void > | enqueue (PCB &pcb, Tick currentTick) override |
| Enqueues process into ready queue. | |
| Result< void > | dequeue (ProcessId pid) override |
| Removes process from scheduler tracking. | |
| Result< ProcessId > | selectNext (const IClock &clock) override |
| Selects next process according to active policy. | |
| Result< void > | blockRunning (Tick currentTick) override |
| Moves running process to blocked state. | |
| Result< void > | unblock (ProcessId pid, Tick currentTick) override |
| Moves blocked process back to ready queue. | |
| Result< void > | terminate (ProcessId pid, Tick currentTick) override |
| Terminates process and removes it from scheduler state. | |
| std::vector< ProcessId > | getQueueSnapshot () const override |
| Snapshot of ready queue process IDs. | |
| std::vector< ProcessId > | getBlockedSnapshot () const override |
| Snapshot of blocked queue process IDs. | |
| ProcessId | runningProcess () const noexcept override |
| Currently running process ID or INVALID_PID. | |
| Result< void > | setPolicy (std::unique_ptr< ISchedulingPolicy > policy) override |
| Replaces the active scheduling policy. | |
| std::string_view | policyName () const noexcept |
| Returns active policy name. | |
| Public Member Functions inherited from contur::IScheduler | |
| virtual | ~IScheduler ()=default |
Private Attributes | |
| std::unique_ptr< Impl > | impl_ |
Scheduler host that manages process queues and policy decisions.
Scheduler owns queue state and delegates ordering/preemption logic to the active ISchedulingPolicy implementation.
Definition at line 16 of file scheduler.h.
|
explicit |
Constructs scheduler with initial policy.
| policy | Non-null scheduling policy implementation. |
|
override |
|
delete |
|
noexcept |
Moves running process to blocked state.
Implements contur::IScheduler.
Removes process from scheduler tracking.
Implements contur::IScheduler.
Enqueues process into ready queue.
Implements contur::IScheduler.
|
nodiscardoverridevirtual |
Snapshot of blocked queue process IDs.
Implements contur::IScheduler.
|
nodiscardoverridevirtual |
Snapshot of ready queue process IDs.
Implements contur::IScheduler.
|
nodiscardnoexcept |
Returns active policy name.
|
nodiscardoverridevirtualnoexcept |
Currently running process ID or INVALID_PID.
Implements contur::IScheduler.
Selects next process according to active policy.
Implements contur::IScheduler.
|
nodiscardoverridevirtual |
Replaces the active scheduling policy.
Implements contur::IScheduler.
|
nodiscardoverridevirtual |
Terminates process and removes it from scheduler state.
Implements contur::IScheduler.
|
nodiscardoverridevirtual |
Moves blocked process back to ready queue.
Implements contur::IScheduler.
|
private |
Definition at line 64 of file scheduler.h.