当前位置:
文档之家› Windows操作系统-体系结构(一)
Windows操作系统-体系结构(一)
• 非对称多处理(Asymmetric Multiprocessing, ASMP): 又称主从模式(Master-slave mode)。
• 对称多处理(Symmetric Multiprocessing, SMP): 操作系统交替在各个处理器上执行。任务负载较为 平均,性能调节容易——"傻瓜式"
5 4 3 2 1 0 Ù ÷± ² ×Ô Ã §Ì ò Ó » ³ Ð ä ë ä ö Ü í Ê È /Ê ³ ¹ À Ù ÷± ø Ì ¨Å ² ×Ô £ ½ ³ Í Ð Ú æ Í Å Ì Ü í Ä ´ º ´ Å ¹ À ¦ í ÷Ö ä Í à À Ì ò ´ À Æ ·Å º ¶ µ ³ Ð
– – – – Professional Server Advanced Server Datacenter Server 2 4 8 32
24
Windows的体系结构
系统支持 系统支撑 系统支持进程 进程 处理器
服务进程 服务进程
用户程序 用户程序
环境子系统 环境子系统
子系统动态链接库 子系统动态链接库
硬件抽象层(HAL)
为了维护可移植性,Windows内部组件和用户编写 的设备驱动程序并不直接访问硬件,而是通过调用 Hal.dll中的例程。
•READ_PORT_XXX •WRITE_PORT_XXX •READ_PORT_BUFFER_XXX •WRITE_PORT_ BUFFER_XXX 读(写)I/O端口 从连续的I/O端口读 (写)一组数据
设备驱动程序
• 可加载的核心态模块 • I/O系统和相关硬件之 间的接口 • WDM=Windows Driver Model • 设备驱动程序的分类
系统支持 系统支撑 系统支持进程 进程 处理器 服务进程 服务进程 用户程序 用户程序 环境子系统 环境子系统
子系统动态链接库 子系统动态链接库 用户态 用户态
执行体 执行体 内核 核心 设备驱动程序 设备驱动程序
核心态 核心态
窗口与图形 图形引擎
硬件抽象层(HAL) 硬件抽象层(HAL)
• HAL隐藏各种与硬件有关的细节,例如I/O接口、 中断控制器以及多处理器通信机制等 • 实现多种硬件平台上的可移植性
10
操作系统结构设计
几种常见的操作系统结构
层次结构的特点
–分解成许多功能单一的模块,各模块之间有 清晰的组织结构和依赖关系 –具有更高的可读性和可适应性 –层次结构是单向依赖的,上层模块建立在下 层基础上 –很容易增加或替换掉一层而不影响其它层次 –便于修改、扩充
11
操作系统结构设计
几种常见的操作系统结构
• • •
可靠 灵活 适合分布式计算的需求
缺点
效率较低
18
Windows操作系统设计模型
• 融合了分层操作系统和微内核操作系统的设 计思想 • Windows通过硬件机制实现了核心态以及用 户态两个特权级别。对性能影响很大的操作 系统组件运行在核心态。核心内没有保护。 • 设计充分体现了机制与策略分离的思想
20
Windows操作系统设计模型
Windows操作系统设计模型
•可移植性的获得
两种手段
– 分层的设计。依赖于处理器体系结构或平台的系统底 层部分被隔离在单独的模块之中,系统的高层可以被 屏蔽在千差万别的硬件平台之外。提供操作系统可移 植性的两个关键组件是HAL和内核。依赖于体系结构 的功能在内核中实现,在相同体系结构中,因计算机 而异的功能在HAL中实现。 – Windows大量使用高级语言——执行体、设备驱动程 序等用C语言编写,图形用户界面用C++编写。只有 那些必须和系统硬件直接通信的操作系统部分,或性 能极度敏感的部分是用汇编语言编写的。汇编语言代 码分布集中且少。
15
操作系统结构设计
几种常见的操作系统结构
•微内核结构
• CMU的Mach、早期的Windows NT…… • 非常适宜于应用在网络环境下,应用于 分布式处理的计算环境中 • 由两大部分组成 :
– “微”内核 – 服务进程
16
操作系统结构设计
几种常见的操作系统结构
•微内核结构
•微内核
运行在核心态的内核提供所有操作 系统基本都具有的那些操作,包括 线程调度、虚拟存储、消息传递、 设备驱动以及内核的原语操作集和 中断处理等。这些部分通常采用层 次结构并且只提供了一个很小的功 能集合,通常称为微内核。
19
Windows操作系统设计模型
Windows操作系统设计模型
• Windows的核心态组件使用了面向对象的设计 原则 • 出于可移植性以及效率因素的考虑,大部分代 码使用了基于C语言的对象实现。 • Windows的很多系统服务运行在核心态,这使 得Windows更加高效,而且也是相当稳定的。
4
操作系统结构设计
Windows的设计目标
• 可扩充性——当市场需求变化时,代码必须易于扩 充改动 • 可移植性——系统必须能够在多种硬件体系结构中 运行和相对简单地移入新的体系结构 • 可靠性及健壮性——系统能防止内部故障及外部侵 扰造成的损害,应用程序不应该损害操作系统及正 在运行的其他应用程序 • 兼容性——用户界面和API应与已有的Windows 版本兼容 • 性能——系统应该在每一种硬件平台上尽可能快地 响应
22
Windows操作系统设计模型
Windows操作系统设计模型
•对称多处理支持
23
Windows操作系统设计模型
Windows操作系统设计模型
•对称多处理支持
• Windows是一个支持SMP的操作系统,操 作系统本身和用户线程可以在任何处理器 上运行——不存在主处理器 • 不同版本支持的处理器数目不同:
•服务进程
运行在用户态的并以客户/服务器方式运行的进程。操作系统所 有的其它部分被分成若干个相对独立的服务进程,提供各种系 统功能、文件系统服务以及网络服务等。客户进程与服务器进 程之间使用消息进行通信。
17
操作系统结构设计
几种常见的操作系统结构
•微内核结构
主要优点
• 机制与策略分离
机制(mechanism)----任务在系统中完成的 方法 策略(policy)----决定应该执行哪个任务,何 时执行等等
13
操作系统结构设计
几种常见的操作系统结构
•虚拟机结构
若干个370虚拟机
•系统的核心 ----虚拟机监控程序(VM) VM/370在裸机上运行并且具
备了多道程序功能。该系统
系统调用陷入 CMS I/O指令陷入 CMS VM/370 370裸机 CMS
向上层提供了若干台虚拟机。这些虚拟机仅仅是精确复制的 裸机硬件, 包含:核心态/用户态,I/O功能,中断,及其 它真实硬件所具有的全部内容。
3
操作系统结构设计
Windows的设计目标
• 总原则:市场需求 • 需求:
驱动
设计目标
–提供一个真32位抢占式可重入的虚拟内存操作系统 –能够在多种硬件体系结构和平台上运行 –能够在对称多处理系统上运行并具有良好的可伸缩性 –优秀的分布式计算平台,既可作为网络客户,又可作 为网络服务器 –可运行多数现有16位MS-DOS和Microsoft Windows 3.1 应用程序 –符合政府对符合POSLX 1003.1的要求 –符合政府和企业对操作系统安全性的要求 –支持Unicode,适应全球市场的需要
14
操作系统结构设计
几种常见的操作系统结构
•虚拟机结构
若干个370虚拟机
由于每台虚拟机都与裸机 相同,所以每台虚拟机可 以运行一台裸机所能够运 行的任何类型操作系统。 •会话监控系统(CMS)
系统调用陷入 CMS I/O指令陷入 CMS VM/370 370裸机 CMS
程序在执行系统调用时,它的系统调用陷入其虚拟机中的操 作系统。然后CMS发出硬件I/O指令,在虚拟机者执行为 该系统调用所需的其它操作。这些I/O指令被VM/370捕 获,作为对真实硬件模拟的一部分,VM/370随后就执行 这些指令。
层次结构的层间关系
全序
µ3µ µ µ2µ µ µ1µ µ µ0µ µ
半序
12
操作系统结构设计
几种常见的操作系统结构
分层原则
–为了增加操作系统的可适应性,并且便于将操作系统 移植到其它机器上,必须把与机器特点紧密相关的软 件,如中断处理,输入输出管理等放在紧靠硬件的最 低层。 –为了便于操作系统从一种操作方式转 变到另一种操 作方式,通常把多种操作方式共同使用的基本部分放 在内层,而把随着这些操作方式而改变的部分放在外 层。 –为了给进程的活动提供必要的环境和条件,因此必须 要有一部分软件——系统调用的各功能,来为进程提 供服务,通常这些功能模块(各系统调用功能)构成 操作系统内核,放在系统的内层。
根据功能划分系统中的模块 优点
结构紧密,接口简单直接,系统效率高
8
操作系统结构设计
几种常见的操作系统结构
• 模块组合结构
缺点
–模块间转接随便 –数据基本上作为全程量处理 –常常关中断,系统的并发性难以提高
9
操作系统结构设计
几种常见的操作系统结构
• 层次结构
–把操作系统的所有功能模块按功能的调用次序, 分别排列成若干层,各层之间的模块只能是单 向依赖或单向调用的关系 – E.W.Dijkstra的THE系统:
用户态 用户态
执行体 执行体 内核 核心 设备驱动程序 设备驱动程序
核心态 核心态
窗口与图形 图形引擎
硬件抽象层(HAL) 硬件抽象层(HAL)
25
Windows操作系统体系结构
硬件抽象层(HAL)
• HAL=Hardware Abstraction Layer • HAL是一个核心态模块 (HAL.DLL),它为运行 Windows的硬件平台提供低级接口。