Skip to content

Commit 7388e34

Browse files
committed
update ch3-4:0 for os arch
1 parent 66b5601 commit 7388e34

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

source/chapter3/0intro.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@
261261
:name: more-task-multiprog-os-detail
262262
:alt: 始初龙协作式多道程序操作系统 -- CoopOS总体结构
263263

264-
通过上图,大致可以看出相对于MultiprogOS,CoopOS进一步改进了 `AppManager` 内核模块,可以通过 `task` 任务控制块来管理应用程序的执行过程,支持应用程序主动放弃 CPU 并切换到另一个应用继续执行,从而提高系统整体执行效率。应用程序在运行时有自己所在的内存空间和栈,确保被切换时相关信息不会被其他应用破坏。如果当前应用程序正在运行,则该应用对应的任务处于运行(Running)状态;如果该应用主动放弃处理器,则该应用对应的任务处于就绪(Ready)状态。操作系统进行任务切换时,需要把要暂停任务的上下文(即任务用到的通用寄存器)保存起来,把要继续执行的任务的上下文恢复为暂停前的内容,这样就能让不同的应用协同使用处理器了。
264+
通过上图,大致可以看出相对于MultiprogOS,CoopOS进一步改进了 `AppManager` 内核模块,把它拆分为负责加载应用的 `Loader` 内核模块和管理应用运行过程的 `TaskManager` 内核模块。 `TaskManager` 通过 `task` 任务控制块来管理应用程序的执行过程,支持应用程序主动放弃 CPU 并切换到另一个应用继续执行,从而提高系统整体执行效率。应用程序在运行时有自己所在的内存空间和栈,确保被切换时相关信息不会被其他应用破坏。如果当前应用程序正在运行,则该应用对应的任务处于运行(Running)状态;如果该应用主动放弃处理器,则该应用对应的任务处于就绪(Ready)状态。操作系统进行任务切换时,需要把要暂停任务的上下文(即任务用到的通用寄存器)保存起来,把要继续执行的任务的上下文恢复为暂停前的内容,这样就能让不同的应用协同使用处理器了。
265265

266266

267267
腔骨龙分时多任务操作系统 -- TimesharingOS的总体结构如下图所示:
@@ -272,7 +272,7 @@
272272
:name: time-task-multiprog-os-detail
273273
:alt: 腔骨龙分时多任务操作系统 -- TimesharingOS总体结构
274274

275-
通过上图,大致可以看出相对于CoopOS,TimesharingOS最大的变化是改进了 `Trap_handler` 内核模块,支持时钟中断,从而可以抢占应用的执行。并通过进一步改进 `AppManager` 内核模块,提供任务调度功能,这样可以在收到时钟中断后统计任务的使用时间片,如果任务的时间片用完后,则切换任务。从而可以公平和高效地分时执行多个应用,提高系统的整体效率。
275+
通过上图,大致可以看出相对于CoopOS,TimesharingOS最大的变化是改进了 `Trap_handler` 内核模块,支持时钟中断,从而可以抢占应用的执行。并通过进一步改进 `TaskManager` 内核模块,提供任务调度功能,这样可以在收到时钟中断后统计任务的使用时间片,如果任务的时间片用完后,则切换任务。从而可以公平和高效地分时执行多个应用,提高系统的整体效率。
276276

277277
位于 ``ch3`` 分支上的腔骨龙分时多任务操作系统 -- TimesharingOS 的源代码如下所示:
278278

source/chapter4/0intro.rst

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,18 @@
138138
本章代码树
139139
-----------------------------------------------------
140140

141+
头甲龙操作系统 - Address Space OS的总体结构如下图所示:
142+
143+
.. image:: ../../os-lectures/lec5/figs/addr-space-os-detail.png
144+
:align: center
145+
:scale: 30 %
146+
:name: addr-space-os-detail
147+
:alt: 头甲龙操作系统 - Address Space OS总体结构
148+
149+
通过上图,大致可以看出头甲龙操作系统 - Address Space OS为了提高操作系统和应用程序执行的安全性,增强了内存管理能力,提供了地址空间隔离机制,给APP的内存地址空间划界,不能越界访问OS和其他APP。在具体实现上,扩展了 `TaskManager` 的管理范围,每个 `Task` 的上下文 `Task Context` 还包括该任务的地址空间,在切换任务时,也要切换任务的地址空间。新增的内存管理模块主要包括与内核中动态内存分配相关的页帧分配、堆分配,以及表示应用地址空间的 `Apps MemSets` 类型和内核自身地址空间的 `Kernel MemSet`类型。 `MemSet` 类型所包含的页表 `PageTable` 建立了虚实地址映射关系,而另外一个 `MemArea` 表示任务的合法空间范围。
150+
151+
位于 ``ch4`` 分支上的头甲龙操作系统 - Address Space OS的源代码如下所示:
152+
141153
.. code-block::
142154
:linenos:
143155
:emphasize-lines: 59

0 commit comments

Comments
 (0)