![]() |
Contur 2
Educational OS kernel simulator
|
Top-level kernel facade. More...
#include <i_kernel.h>
Public Member Functions | |
| virtual | ~IKernel ()=default |
| Virtual destructor for interface-safe polymorphic cleanup. | |
| virtual Result< ProcessId > | createProcess (const ProcessConfig &config)=0 |
| Creates and admits a process. | |
| virtual Result< void > | terminateProcess (ProcessId pid)=0 |
| Terminates a process immediately. | |
| virtual Result< void > | tick (std::size_t tickBudget=0)=0 |
| Executes one dispatch cycle. | |
| virtual Result< void > | runForTicks (std::size_t cycles, std::size_t tickBudget=0)=0 |
| Executes multiple dispatch cycles. | |
| virtual Result< RegisterValue > | syscall (ProcessId pid, SyscallId id, std::span< const RegisterValue > args)=0 |
| Dispatches a syscall on behalf of a process. | |
| virtual Result< void > | registerSyscallHandler (SyscallId id, SyscallHandlerFn handler)=0 |
| Registers or replaces syscall handler. | |
| virtual Result< void > | registerSyncPrimitive (const std::string &name, std::unique_ptr< ISyncPrimitive > primitive)=0 |
| Registers a named synchronization primitive. | |
| virtual Result< void > | enterCritical (ProcessId pid, std::string_view primitiveName)=0 |
| Acquires a named synchronization primitive. | |
| virtual Result< void > | leaveCritical (ProcessId pid, std::string_view primitiveName)=0 |
| Releases a named synchronization primitive. | |
| virtual KernelSnapshot | snapshot () const =0 |
| Returns a snapshot of current kernel state. | |
| virtual Tick | now () const noexcept=0 |
| Returns current simulation time. | |
| virtual bool | hasProcess (ProcessId pid) const noexcept=0 |
| Returns true when process exists in dispatcher. | |
| virtual std::size_t | processCount () const noexcept=0 |
| Returns total managed process count. | |
Top-level kernel facade.
Definition at line 144 of file i_kernel.h.
|
virtualdefault |
Virtual destructor for interface-safe polymorphic cleanup.
|
nodiscardpure virtual |
Creates and admits a process.
| config | Process configuration payload. |
Implemented in contur::Kernel.
Referenced by spawnDemoProcesses().
|
nodiscardpure virtual |
Acquires a named synchronization primitive.
Implemented in contur::Kernel.
|
nodiscardpure virtualnoexcept |
Returns true when process exists in dispatcher.
Implemented in contur::Kernel.
References hasProcess().
Referenced by hasProcess().
|
nodiscardpure virtual |
Releases a named synchronization primitive.
Implemented in contur::Kernel.
|
nodiscardpure virtualnoexcept |
Returns current simulation time.
Implemented in contur::Kernel.
|
nodiscardpure virtualnoexcept |
Returns total managed process count.
Implemented in contur::Kernel.
References processCount().
Referenced by processCount().
|
nodiscardpure virtual |
Registers a named synchronization primitive.
| name | Primitive name. |
| primitive | Primitive instance. |
Implemented in contur::Kernel.
|
nodiscardpure virtual |
Registers or replaces syscall handler.
| id | Syscall identifier. |
| handler | Handler function. |
Implemented in contur::Kernel.
|
nodiscardpure virtual |
Executes multiple dispatch cycles.
| cycles | Number of cycles to run. |
| tickBudget | Optional budget per cycle. 0 means kernel default. |
Implemented in contur::Kernel.
|
nodiscardpure virtual |
Returns a snapshot of current kernel state.
Implemented in contur::Kernel.
|
nodiscardpure virtual |
Dispatches a syscall on behalf of a process.
| pid | Calling process identifier. |
| id | Syscall identifier. |
| args | Syscall arguments. |
Implemented in contur::Kernel.
Terminates a process immediately.
| pid | Process identifier. |
Implemented in contur::Kernel.
|
nodiscardpure virtual |
Executes one dispatch cycle.
| tickBudget | Optional tick budget. 0 means kernel default. |
Implemented in contur::Kernel.