Module os::task

source · []
Expand description

Task management implementation

Everything about task management, like starting and switching tasks is implemented here.

A single global instance of TaskManager called TASK_MANAGER controls all the tasks in the operating system.

Be careful when you see __switch ASM function in switch.S. Control flow around this function might not be what you expect.

Modules

context 🔒

Implementation of TaskContext

switch 🔒

Rust wrapper around __switch.

task 🔒

Types related to task management

Structs

Global variable: TASK_MANAGER

Task Context

The task manager, where all the tasks are managed.

Inner of Task Manager

Functions

exit current task, then run next task

exit current task

suspend current task

run first task

rust next task

suspend current task, then run next task