多任务

前面我们已经基本把单任务场景介绍完全了。不过,单任务在现代内核上是远远不够的,因为这意味着我们一次只能执行一个任务。我们需要在一个设备上同时做多件事情,比如同时播放音乐、编译代码、编辑文档等等。

要并行地执行多任务,我们需要使用时间片进行多任务切换。当到时间片末尾时,内核会停止当前任务并切换到下一个任务。这样,我们就可以在一个设备上同时执行多个任务了。决定何时切换任务的服务叫做 scheduler,管理进程信息的服务叫做 process manager。

实现要求

在我们的系统中,为了简单起见,我们一共需要实现以下几个 service:

  1. Scheduler (S mode)
  2. Drivers (U mode)
  3. File system (U mode)
  4. Process manager (U mode)

Overview

在这一章节中,我们将会实现一个简单的多任务系统。我们将会以 Unix 中的多进程用例作为引入,然后逐步实现我们的多任务系统。