(五)操作系统结构 (OS structure) (1)操作系统采用结构程序设计的必要性 由于0S日趋庞大,结构日益复杂,错误增加以至不可避免。 例如IBM/360操作系统第一版化了500人年,但在以后每个 新版中都纠错多处。 Microsoft的浏览器程序 Explorer也面 临一群潜在性地涉及到严重隐私和安全问题的臭虫,为此发 布了三个补丁程序包含在IE5.01中。 其次由于OS存在并发性,进程间执行序列数量巨大,推进序 列不确定性,程序错误的某种表现形式不重复出现,可能使 人误解为一次偶然性机器的故障。这给0S调试带来了困难。 为了使0S髙可靠、髙效能、可理解和可修改,操作系统必须 采用结构程序设计方法
(五)操作系统结构 (OS structure) (1) 操作系统采用结构程序设计的必要性 由于OS日趋庞大,结构日益复杂,错误增加以至不可避免。 例如IBM/360操作系统第一版化了5000人年,但在以后每个 新版中都纠错多处。Microsoft的浏览器程序Ixplorer也面 临一群潜在性地涉及到严重隐私和安全问题的臭虫,为此发 布了三个补丁程序包含在IE5.01中。 其次由于OS存在并发性,进程间执行序列数量巨大,推进序 列不确定性,程序错误的某种表现形式不重复出现,可能使 人误解为一次偶然性机器的故障。这给OS调试带来了困难。 为了使OS高可靠、高效能、可理解和可修改,操作系统必须 采用结构程序设计方法
(2)模块接口( modular programming) 法/ 单一结构( monolithic)法 模块接口法是0S最早采用的一种结构程序设计方法,早期 操作系统(ⅠBM的OS)和小型0S(如MSD0S)均属此类型 模块接口法把一个系统按功能分成若干个具有一定独立性和 大小完成某方面功能的模块,并规定好各模块之间的接口。 接着在眀确每个模块的内部功能的基础上对它们进行独立设 计。最后在各模块设计完成后按照模块间的接口关系,将所 有模块逐步链接成一个大系统。 模块接口法的优点是使OS设计实现模块化的基本结构程序设 计方法,它增加了0S灵活性,便于修改和维护。但由于模块 部接口复杂,使得系统的结构关系不清晰,因而使系统的可 靠性降低。故乂称模块接口法为无序模块法
(2) 模块接口(modular programming) 法/ 单一结构(monolithic)法 模块接口法是OS最早采用的一种结构程序设计方法,早期 操作系统(IBM的OS)和小型OS(如MS-DOS)均属此类型。 • 模块接口法把一个系统按功能分成若干个具有一定独立性和 大小完成某方面功能的模块,并规定好各模块之间的接口。 接着在明确每个模块的内部功能的基础上对它们进行独立设 计。最后在各模块设计完成后按照模块间的接口关系,将所 有模块逐步链接成一个大系统。 • 模块接口法的优点是使OS设计实现模块化的基本结构程序设 计方法,它增加了OS灵活性,便于修改和维护。但由于模块 部接口复杂,使得系统的结构关系不清晰,因而使系统的可 靠性降低。故又称模块接口法为无序模块法
模块组合结构 模块组合结构的特点与适应性 模块间转接随便 数据基本上作为全程量处理 常常关中断,系统的并发性难以提高
模块组合结构 模块组合结构的特点与适应性 – 模块间转接随便 – 数据基本上作为全程量处理 – 常常关中断,系统的并发性难以提高
为了减层req法别是清除 循环现象,引入层次结构设计法。它将模块间无序调用变为 有序调用,它把0S的所有功能模块,按功能流图的调用次序, 排列成若干层,各层之间的模块只能是单向调用关系,即是 只允许上层模块调用下层模块。这样不但操作系统的结构清 晰,而且不构成循环 层次结构法采用自底向上法形成操作系统。它先在裸机上 添加第一层精心编制的软件,形成比原来机器功能更强的机 器,称为虚拟机A1。再经过几乎是穷尽无遗的测试后,就有 较大把握确信虚拟机A是正确的。然后,再在A1上增加一层精 心编制的软件,形成功能更强、更接近于实际要求的虚拟机 A2,再经过几乎是穷尽无遗的测试,…如此一层一层地自 底向上地铺设各软件层,每一层都实现若干功能,最后构成 满足要求的虚拟机An。因此只要下层各模块设计是正确的, 就为上层功能模块的设计提供了可靠基础,从而增加了系统 的可靠性
• 为了减少各模块之间无序调动、互相依赖关系,特别是清除 (3)层次(layered)结构法 循环现象,引入层次结构设计法。它将模块间无序调用变为 有序调用,它把OS的所有功能模块,按功能流图的调用次序, 排列成若干层,各层之间的模块只能是单向调用关系,即是 只允许上层模块调用下层模块。这样不但操作系统的结构清 晰,而且不构成循环。 • 层次结构法采用自底向上法形成操作系统。它先在裸机上 添加第一层精心编制的软件,形成比原来机器功能更强的机 器,称为虚拟机A1。再经过几乎是穷尽无遗的测试后,就有 较大把握确信虚拟机A1是正确的。然后,再在A1上增加一层精 心编制的软件,形成功能更强、更接近于实际要求的虚拟机 A2,再经过几乎是穷尽无遗的测试,……如此一层一层地自 底向上地铺设各软件层,每一层都实现若干功能,最后构成 满足要求的虚拟机An。因此只要下层各模块设计是正确的, 就为上层功能模块的设计提供了可靠基础,从而增加了系统 的可靠性
层次结构法-1 1968年 Di jkstra在ELXs机器上编制的操作系统TH中采用 各层间单向依赖,层内各模块互相独立的全序的层次关系 设计。但该系统通信开销大,系统经过层层调用效率低, 该设计方法不适用大型0S。在大层0S中要建立一个全序的 层次结构关系是十分困难,往往无法避免循环现象。因些 层次结构设计应作为0S设计的原则,尽可能将操作系统各 功能模块排成有序层次,以便尽量减少系统中循环现象
层次结构法-1 • 1968年Dijkstra在ELX8机器上编制的操作系统THE中采用 各层间单向依赖,层内各模块互相独立的全序的层次关系 设计。但该系统通信开销大,系统经过层层调用效率低, 该设计方法不适用大型OS。在大层OS中要建立一个全序的 层次结构关系是十分困难,往往无法避免循环现象。因些 层次结构设计应作为OS设计的原则,尽可能将操作系统各 功能模块排成有序层次,以便尽量减少系统中循环现象