Skip to content

Latest commit

 

History

History
14 lines (9 loc) · 1.01 KB

ch02-00-task.md

File metadata and controls

14 lines (9 loc) · 1.01 KB

任务管理

本章我们来实现第一类内核对象:任务管理(Tasks)。

任务对象主要包括:线程 Thread,进程 Process,作业 Job。以及一些辅助性的对象,例如负责暂停任务执行的 SuspendToken 和负责处理异常的 Exception

为了能够真实表现线程对象的行为,我们使用 Rust async 运行时 async_std 中的用户态协程来模拟内核线程。 这样就可以在用户态的单元测试中检验实现的正确性。 考虑到未来这个 OS 会跑在裸机环境中,将会有不同的内核线程的实现,我们创建一个特殊的硬件抽象层(Hardware Abstraction Layer,HAL),来屏蔽底层平台的差异,对上提供一个统一的接口。 这个 HAL 的接口未来会根据需要进行扩充。

本章中我们只会实现运行一个程序所必需的最小功能子集,剩下的部分则留到跑起用户程序之后再按需实现。