多任务
前面我们已经基本把单任务场景介绍完全了。不过,单任务在现代内核上是远远不够的,因为这意味着我们一次只能执行一个任务。我们需要在一个设备上同时做多件事情,比如同时播放音乐、编译代码、编辑文档等等。
要并行地执行多任务,我们需要使用时间片进行多任务切换。当到时间片末尾时,内核会停止当前任务并切换到下一个任务。这样,我们就可以在一个设备上同时执行多个任务了。决定何时切换任务的服务叫做 scheduler,管理进程信息的服务叫做 process manager。
实现要求
在我们的系统中,为了简单起见,我们一共需要实现以下几个 service:
- Scheduler (S mode)
- Drivers (U mode)
- File system (U mode)
- Process manager (U mode)
Overview
在这一章节中,我们将会实现一个简单的多任务系统。我们将会以 Unix 中的多进程用例作为引入,然后逐步实现我们的多任务系统。