|
Barrelfish
|
The kernel control block. More...
Collaboration diagram for kcb:Data Fields | |
| bool | is_valid |
| kcb has been initialized by a kernel before | |
| struct kcb * | next |
| lvaddr_t | mdb_root |
| mdb root node | |
| enum sched_state | sched |
| which scheduler state is valid | |
| struct dcb * | ring_current |
| RR scheduler state. | |
| struct dcb * | queue_head |
| RBED scheduler state. | |
| struct dcb * | wakeup_queue_head |
| int64_t | kernel_off |
| last value of kernel_now before shutdown/migration | |
The kernel control block.
this is the memory layout of ObjType_KernelControlBlock this struct should contain all the persistent state that belongs to a kernel.
| struct kcb* kcb::next |
kcb scheduling ring. These fields point to the next and previous kcb that should be scheduled when we're running multiple kcbs on the same kernel. invariant: next == NULL –> prev == NULL invariant: next is the next kcb in the ring and prev is the previous kcb in the ring
| struct dcb* kcb::wakeup_queue_head |
current time since kernel start in timeslices. This is necessary to make the scheduler work correctly wakeup queue head
1.8.11