Skip to content

Commit 9a38e4f

Browse files
committed
update ch5:0 for os arch
1 parent ffef9f7 commit 9a38e4f

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

source/chapter5/0intro.rst

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,30 @@
171171
本章代码树
172172
--------------------------------------
173173

174+
伤齿龙操作系统 -- ProcessOS的总体结构如下图所示:
175+
176+
.. image:: ../../os-lectures/lec7/figs/process-os-detail.png
177+
:align: center
178+
:scale: 30 %
179+
:name: process-os-detail
180+
:alt: 伤齿龙操作系统 - Address Space OS总体结构
181+
182+
通过上图,大致可以看出伤齿龙操作系统 -- ProcessOS在内部结构上没有特别大的改动,但把任务抽象进化成了进程抽象,其主要改动集中在进程管理的功能上,即通过提供新的系统调用服务:sys_fork(创建子进程)、sys_waitpid(等待子进程结束并回收子进程资源)、sys_exec(用新的应用内容覆盖当前进程,即达到执行新应用的目的)。为了让用户能够输入命令或执行程序的名字,ProcessOS还增加了一个 `read` 系统调用服务,这样用户通过操作系统的命令行接口 -- 新添加的 `shell` 应用程序发出命令,来动态地执行各种新的应用,提高了用户与操作系统之间的交互能力。
183+
184+
而由于有了进程的新抽象,需要对已有任务控制块进行重构,ProcessOS中与进程相关的核心数据结构如下图所示:
185+
186+
.. image:: ../../os-lectures/lec7/figs/process-os-key-structures.png
187+
:align: center
188+
:scale: 10 %
189+
:name: process-os-key-structures
190+
:alt: 进程相关的核心数据结构
191+
192+
193+
从上图可知,进程控制块 ``TaskControlBlock`` 包含与进程运行/切换/调度/地址空间相关的各种资源和信息。以前的任务管理器 ``TaskManager`` 分离为处理器管理结构 ``Processor`` 和新的 ``TaskManager`` 。 ``Processor`` 负责管理 CPU 上正在执行的任务和一些相关信息;而新的任务管理器 ``TaskManager`` 仅负责管理没在执行的所有任务,以及各种新的进程管理相关的系统调用服务。
194+
195+
196+
位于 ``ch5`` 分支上的伤齿龙操作系统 - ProcessOS的源代码如下所示:
197+
174198
.. code-block::
175199
:linenos:
176200

0 commit comments

Comments
 (0)