static | ProcessTable() |
private | ProcessTable() |
public nothrow void | AddProcessToExecutableINodeProcessMap(Process* process) |
public nothrow void | AddProcessToProcessMap(Process* process) |
public nothrow Process* | CloneProcess(Process* parent) |
public Process* | CreateProcess(const String<char>& name, ulong entryPoint, ulong textSegmentBaseAddress, ulong textSegmentSize, ulong dataSegmentSize, ulong poolSegmentSize, ulong minStackSegmentSize, ulong maxStackSegmentSize, ulong stackSegmentIncrement, int sid) |
public nothrow void | FreeProcess(Process* process) |
public inline nothrow Process* | GetIdle() const |
public inline nothrow Process* | GetInit() const |
public inline nothrow Process* | GetNextReadyProcess() |
public Process* | GetProcess(int pid) const |
public nothrow Process* | GetProcessFromExecutableINodeProcessMap(const INodeKey& executableINodeKey) const |
public inline nothrow Process* | GetRunning() const |
public static nothrow ProcessTable& | Instance() |
public inline nothrow void | PutToReadyQueue(Process* process) |
public inline nothrow bool | ReadyQueueEmpty() const |
public nothrow void | RemoveProcessFromExecutableINodeProcessMap(Process* process) |
public inline nothrow void | SetInit(Process* init_) |
public inline nothrow void | SetRunning(Process* running_) |
private HashMap<INodeKey, Process*, INodeKeyHash, EqualTo<INodeKey>> | executableINodeProcessMap |
private Process* | free |
private Process | idleProcess |
private Process* | init |
private static UniquePtr<ProcessTable> | instance |
private Machine& | machine |
private int | nextFreeProcessSlot |
private int | nextPID |
private HashMap<int, Process*, Hasher<int>, EqualTo<int>> | processMap |
private Process[1024] | processSlots |
private Queue<Process*> | readyQueue |
private Process* | running |