diff --git a/source/chapter5/0intro.rst b/source/chapter5/0intro.rst index f16b177080290ef09586f624f7420b84237486ba..08d4f575a263d1bda6a1359b7c616ff4bbfd7129 100644 --- a/source/chapter5/0intro.rst +++ b/source/chapter5/0intro.rst @@ -20,7 +20,14 @@ 于是,本章我们会开发一个用户 **终端** (Terminal) 或称 **命令行** 应用(Command Line Application, 俗称 **Shell** ) ,形成用户与操作系统进行交互的命令行界面(Command Line Interface),它就和我们今天常用的 OS 中的命令行应用(如 Linux中的bash,Windows中的CMD等)没有什么不同:只需在其中输入命令即可启动或杀死应用,或者监控系统的运行状况。这自然是现代 OS 中不可缺少的一部分,并大大增加了系统的 **可交互性** ,使得用户可以更加灵活地控制系统。 -为了方便开发,我们需要在已有抽象的基础上引入一个新的抽象:进程,还需要实现若干基于进程的功能强大的系统调用。 +为了在用户态就可以借助操作系统的服务动态灵活地管理和控制应用的执行,我们需要在已有的 **任务** 抽象的基础上进一步扩展,形成新的抽象: **进程** ,并实现若干基于 **进程** 的强大系统调用。 + +- 创建(create):操作系统需要提供一些创建新进程的服务。用户在shell中键入命令或用鼠标双击应用程序图标(这需要GUI界面,目前我们还没有实现)时,会调用操作系统服务来创建新进程,运行指定的程序。 +- 销毁(destroy):操作系统还需提供退出并销毁进程的服务。进程会在运行完成后可自行退出,但还需要其他进程(如创建这些进程的父进程)来回收这些进程最后的资源并销毁这些进程。 +- 等待(wait):操作系统提供等待进程停止运行是很有用的,比如上面提到的退出信息的收集。 +- 信息(info):操作系统也可提供有关进程的身份和状态等进程信息,例如进程的ID,进程的运行状态,进程的优先级等。 +- 其他控制:操作系统还可有其他的进程控制服务。例如,让一个进程能够杀死另外一个进程,暂停进程(停止运行一段时间),恢复进程(继续运行)等。 + .. note::