Expand description
Implementation of TaskManager
It is only used to manage processes and schedule process based on ready queue. Other CPU process monitoring functions are in Processor.
Structs§
- PID2PCB instance (map of pid to pcb)
- TASK_MANAGER instance through lazy_static!
- A array of
TaskControlBlockthat is thread-safe
Functions§
- Set a task to stop-wait status, waiting for its kernel stack out of use.
- Add a task to ready queue
- Fetch a task out of the ready queue
- Insert item(pid, pcb) into PID2PCB map (called by do_fork AND ProcessControlBlock::new)
- Get process by pid
- Remove item(pid, _some_pcb) from PDI2PCB map (called by exit_current_and_run_next)
- Remove a task from the ready queue
- Wake up a task