Contur 2
Educational OS kernel simulator
Loading...
Searching...
No Matches
tui_models.h
Go to the documentation of this file.
1
3
4#pragma once
5
6#include <cstddef>
7#include <cstdint>
8#include <optional>
9#include <string>
10#include <vector>
11
12#include "contur/core/types.h"
13
16
17namespace contur {
18
46
49 {
51 std::vector<ProcessId> readyQueue;
52
54 std::vector<ProcessId> blockedQueue;
55
57 std::vector<ProcessId> runningQueue;
58
60 std::vector<std::vector<ProcessId>> perLaneReadyQueues;
61
63 std::size_t readyCount = 0;
64
66 std::size_t blockedCount = 0;
67
69 std::string policyName;
70 };
71
74 {
76 std::size_t totalVirtualSlots = 0;
77
79 std::size_t freeVirtualSlots = 0;
80
82 std::optional<std::size_t> totalFrames;
83
85 std::optional<std::size_t> freeFrames;
86
88 std::vector<std::optional<ProcessId>> frameOwners;
89 };
90
93 {
96
98 std::size_t processCount = 0;
99
101 std::vector<TuiProcessSnapshot> processes;
102
105
108
110 std::uint64_t sequence = 0;
111
113 std::uint64_t epoch = 0;
114 };
115
118 {
120 std::size_t sequence = 0;
121
124 };
125
126} // namespace contur
Definition block.h:15
ProcessState
All possible states in a process lifecycle.
Definition state.h:29
@ New
Process has been created but not yet admitted to the ready queue.
Definition state.h:30
PriorityLevel
Discrete priority levels, from highest (Realtime) to lowest (Idle).
Definition priority.h:20
@ Normal
Default priority for user processes.
Definition priority.h:24
std::uint64_t Tick
Simulation clock tick counter.
Definition types.h:18
std::uint32_t ProcessId
Unique identifier for a process.
Definition types.h:12
constexpr ProcessId INVALID_PID
Sentinel value indicating an invalid/unassigned process ID.
Definition types.h:46
constexpr std::int32_t NICE_DEFAULT
Default nice value (no adjustment).
Definition priority.h:37
Process priority levels and the Priority struct.
ProcessState enum class and validated state transitions.
Single history entry stored by the UI history buffer.
Definition tui_models.h:118
TuiSnapshot snapshot
Captured immutable TUI snapshot.
Definition tui_models.h:123
std::size_t sequence
History index/sequence.
Definition tui_models.h:120
Immutable memory-focused snapshot consumed by TUI views.
Definition tui_models.h:74
std::size_t totalVirtualSlots
Total number of virtual memory slots.
Definition tui_models.h:76
std::vector< std::optional< ProcessId > > frameOwners
Optional frame ownership map (one entry per frame when provided).
Definition tui_models.h:88
std::optional< std::size_t > totalFrames
Optional total number of physical frames.
Definition tui_models.h:82
std::size_t freeVirtualSlots
Number of free virtual memory slots.
Definition tui_models.h:79
std::optional< std::size_t > freeFrames
Optional number of free physical frames.
Definition tui_models.h:85
Immutable process row used by TUI views.
Definition tui_models.h:21
Tick cpuTime
Total CPU time consumed by process.
Definition tui_models.h:41
PriorityLevel effectivePriority
Dynamic/effective process priority.
Definition tui_models.h:35
PriorityLevel basePriority
Static/base process priority.
Definition tui_models.h:32
std::optional< std::size_t > laneIndex
Optional scheduler lane ownership metadata.
Definition tui_models.h:44
ProcessState state
Current process lifecycle state.
Definition tui_models.h:29
std::int32_t nice
Nice value used for fine-grained priority adjustment.
Definition tui_models.h:38
std::string name
Human-readable process name.
Definition tui_models.h:26
Immutable scheduler-focused snapshot consumed by TUI views.
Definition tui_models.h:49
std::vector< ProcessId > blockedQueue
Ordered blocked queue PIDs when available.
Definition tui_models.h:54
std::size_t blockedCount
Blocked queue size summary.
Definition tui_models.h:66
std::vector< std::vector< ProcessId > > perLaneReadyQueues
Per-lane ready queues when available.
Definition tui_models.h:60
std::vector< ProcessId > runningQueue
Running process IDs across scheduler lanes.
Definition tui_models.h:57
std::size_t readyCount
Ready queue size summary.
Definition tui_models.h:63
std::vector< ProcessId > readyQueue
Ordered ready queue PIDs when available.
Definition tui_models.h:51
std::string policyName
Active scheduling policy name when available.
Definition tui_models.h:69
Top-level immutable model snapshot consumed by TUI controller/views.
Definition tui_models.h:93
std::uint64_t sequence
Monotonic snapshot sequence for deterministic ordering.
Definition tui_models.h:110
Tick currentTick
Current simulation tick represented by this snapshot.
Definition tui_models.h:95
TuiMemorySnapshot memory
Memory-related state.
Definition tui_models.h:107
std::uint64_t epoch
Optional runtime epoch metadata for deterministic mode correlation.
Definition tui_models.h:113
std::size_t processCount
Total process count summary.
Definition tui_models.h:98
TuiSchedulerSnapshot scheduler
Scheduler-related state.
Definition tui_models.h:104
std::vector< TuiProcessSnapshot > processes
Process rows for process-focused views.
Definition tui_models.h:101
Common type aliases, sentinel constants, and forward declarations used throughout the Contur 2 kernel...