(五)操作系统结构 (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设计的原则,尽可能将操作系统各 功能模块排成有序层次,以便尽量减少系统中循环现象
层次结构 例如E. W. Dijkstra的THE系统: 5 操作员 用户程序 输入/输出管理 操作员一进程通信 内存和磁盘管理 处理器分配和多道程序
层次结构 – 例如E.W.Dijkstra的THE系统: 1 2 3 4 5 处理器分配和多道程序 内存和磁盘管理 操作员-进程通信 输入/输出管理 用户程序 操作员 0
式微内核( Microkernel))方 (4)客户/服务器( Client/serve 操作系统结构技术的发展是与整个计算机技术的发展相联系 的。操作系统采用客户/服务器结构,它将非常适应于分布 式处理的计算机环境中,所以说C/S模式是第三代操作系统。 。C/S结构的思想是把0S分成内核和若干个进程。每个进程实 现单个的一套服务(例如:主存服务、进程生成服务、处理 机调度服务),称为服务器进程。每个服务器进程运行在用 户态,它执行一个循环以检查是否有客户已请求某项服务 而客户可以是另外的操作系统成分,也可以是应用程序。C/ S结构模式的操作系统有卡内基.梅隆大学研制的Mach0S和美 国微软公司研制的 WindowsNT操作系统等
( 4)客户/服务器( Client/Server )方 式/微内核(Microkernel )结构 1。操作系统结构技术的发展是与整个计算机技术的发展相联系 的。操作系统采用客户/服务器结构,它将非常适应于分布 式处理的计算机环境中,所以说C/S模式是第三代操作系统。 2。C/S结构的思想是把OS分成内核和若干个进程。每个进程实 现单个的一套服务(例如:主存服务、进程生成服务、处理 机调度服务),称为服务器进程。每个服务器进程运行在用 户态,它执行一个循环以检查是否有客户已请求某项服务。 而客户可以是另外的操作系统成分,也可以是应用程序。C/ S结构模式的操作系统有卡内基.梅隆大学研制的Mach OS和美 国微软公司研制的WindowsNT操作系统等
微内核模式的特点 优点: 良好的扩充性:只需添加支持新功能的服务进程即可 可靠性好:调用关系明确,执行转移不易混乱 便于网络服务,实现分布式处理:以同样的调用形式,在 下层可通过核心中的网络传送到远方服务器上(远地过程 调用RPC, Remote Procedure Cal) 缺点: 消息传递比直接调用效率要低一些(但可以通过提高硬件 性能来补偿) RPC的过程:RPC应用程序一- RPC Stub( client) Network-一 RPC Server--进行本地调用
微内核模式的特点 • 优点: – 良好的扩充性:只需添加支持新功能的服务进程即可 – 可靠性好:调用关系明确,执行转移不易混乱 – 便于网络服务,实现分布式处理:以同样的调用形式,在 下层可通过核心中的网络传送到远方服务器上 (远地过程 调用 RPC, Remote Procedure Call) • 缺点: – 消息传递比直接调用效率要低一些 (但可以通过提高硬件 性能来补偿 ) RPC的过程:RPC应用程序--RPC Stub(client)-- Network--RPC Server--进行本地调用
。NT0 s家寂右条罷成分需连程R式成 运行在核心态内核, WindowsNt称为ⅦT执行体。N执行体结构 是层次式与微内核的结合,它由一组部件构成。NT最底层是 硬件抽象层(HAL),N内核是第二层,它负责对中断和异常 作出响应;调度线程,提供一组基本对象和接口。MT内核上 是一组部件:对象管理程序、安全调用监视程序、进程管理 程序、本地过程调用功能和虚拟内存管理程序等。MT执行体 最上层系统服务是N执行体为用户态的进程提供的一个接口。 运行在用户态的并以客户/服务器方式活动的进程。用户态 服务器进程又称保护子系统。 Windows№有二类保护子系统: 环境子系统和集成子系统 环境子系统有Win32子系统、OS/2子系统和 POSIX子系统 几种,每种子系统为特定的操作系统提供一个API。集成子系 统是完成重要操作系统功能的服务器。这包括安全子系统 网络软件中的若干部件(工作站服务和网络服务器服务)
客户/服务器(C/S)方式-1 3。NT OS由NT执行体和用户态服务器进程两部分组成: • 运行在核心态内核,WindowsNT称为NT执行体。NT执行体结构 是层次式与微内核的结合,它由一组部件构成。NT最底层是 硬件抽象层(HAL),NT内核是第二层,它负责对中断和异常 作出响应;调度线程,提供一组基本对象和接口。NT内核上 是一组部件:对象管理程序、安全调用监视程序、进程管理 程序、本地过程调用功能和虚拟内存管理程序等。NT执行体 最上层系统服务是NT执行体为用户态的进程提供的一个接口。 • 运行在用户态的并以客户/服务器方式活动的进程。用户态 服务器进程又称保护子系统。WindowsNT有二类保护子系统: 环境子系统和集成子系统。 • 环境子系统有Win32子系统、OS/2子系统和POSIX子系统 几种,每种子系统为特定的操作系统提供一个API。集成子系 统是完成重要操作系统功能的服务器。这包括安全子系统, 网络软件中的若干部件(工作站服务和网络服务器服务)
3。 Windows nt框架图 登录进 Win32客 POSX客 OS/2客 程 OS/2子系 统 POSIX子系 统 安全子系统 win32子系统 用户态 核心态 系统服务 I/O管理程序 对象管理安全调用进程管理本地过程虚拟内存 文件程序 执行体序监视程序程序 NT 调用功能管理程序缓冲存储管理程序 设备驱动程序 内 核 网终驱动程序 硬件抽象层 消息传递 系统捕获
3。Windows NT 框架图 Win32 客 户 登录进 程 POSIX 子 系 统 OS / 2 客 户 POSIX 客 户 Win32子系统 系 统 服 务 I/O管理程序 对象管理 安全调用 进程管理 本地过程 虚拟内存 文件 程序 程 序 监视程序 程序 调用功能 管理程序 缓冲存储管理程序 设备驱动程序 内 核 网络驱动程序 OS / 2 子 系 统 安全子系统 硬 件 抽 象 层 消息传递 系统捕获 用户态 核心态 NT 执行体 返1