1、第十一章 操作系统设计,操作系统设计目标 操作系统基本内核 操作系统体系结构 基于公共变量的结构 基于消息传递的结构 微内核结构,操作系统设计方法 模块接口法 核扩充法 层次化方法 面向对象方法,11.1 操作系统设计目标,正确性 高效性 系统效率Tu: 执行用户程序所占时间 Tsu: 执行操作系统程序为用户服务所占时间 Tsm: 执行操作系统程序做系统管理所占时间 可维护性 易读,易修改,易裁减,易扩充 可移植性,11.2 操作系统基本内核,内核成分 中断处理(非系统调用) 原语管理 处理机调度,中断处理,原语管理,处理机调度,11.3 操作系统体系结构,操作系统组成成分 主动成分:进程,线
2、程 被动成分:模块,对象 操作系统体系结构 基于共享变量的体系结构 基于消息通讯的体系结构 微内核结构,成分间的关系,主动,主动,消息,主动,主动,公共变量,1. 主动-主动,2. 主动-被动,主动,主动,被动,主动,被动,被动,成分间的关系,被动-被动,被动,主动,主动,主动,被动,被动,被动,被动,11.3.1 基于共享变量的体系结构,优点:效率高 缺点:不适合分布,11.3.2 基于消息通讯的体系结构,基本内核,高级通讯原语,优点:适合分布 缺点:效率不高,11.3.3 微内核结构,文件系统,设备驱动,虚拟存储,进程控制,应用程序,应用程序,微内核 (Micro-kernel),硬件,微
3、内核(micro-kernel)是体积很小的内核,只包括操作系统中绝对必要的成分,其它与应用有关的系统功能以进程或线程模式在目态执行 .,微内核组成,处理机调度 基本中断处理程序 同步机制 基本内存管理 进程通讯原语 电源管理,优缺点,优点 体积小,正确性健壮性容易保障 适应性好,灵活性强,应用面广 缺点 实现效率低,11.4 操作系统设计方法,1. 模块接口法功能1:模块1功能2:模块2 .功能n:模块n,优点:高效 缺点:正确性难于保障,基本内核,硬件,扩充1,扩充2,OS1,OS2,特点:适应性好 Eg. RC4000 P.B.Hansen,2. 核扩充法,3. 层次化方法E.W. Di
4、jkstra分若干层层间单向依赖(全序,半序)Example system: THE,M1,M2,M4,M9,M6,M7,M8,M5,M3,层次化设计的实现 1. 确定设计目标(An) 2. 确定宿主系统(A0) 3. 层次设计(1) 自底向上(bottom-up) (3) 混合策略A0,A1,A2,An-1,An A0,A1,A2,An-1,An优点:易于调试缺点:可能偏离设计目标(2) 自顶向下(top-down)An,An-1,An-2,A2,A1,A0优点:无偏差缺点:调试困难(仿真),4. 分层原则(1) 与界面有关的放在高层(2) 与硬件有关的放在低层(3) 并发控制放较低层(4)
5、 其它放在中层,分层实例,6层,5层,4层,3层,2层,0层,1层,系统调用(OS API),宿住系统,中断处理,原语管理,内存管理 设备管理,虚拟存储 文件管理,进程(线程)管理 高级通讯,SPOOLing系统 作业调度 终端命令,处理机调度,5. 面向对象设计方法 Building Operating systems with objects + threads Benefits: (1) Better organization/structure of inherent complexityinheritance, containment,. (2) Reduced developmen
6、t effort through reuse (3) More extensible and maintainable systemExample systems: Windows2000/XP,11.5 系统举例Windows2000,基本组成 (1) 硬件抽象层(HAL):体现硬件无关性可加载的核心模块HAL.dll,掩盖了与硬件有关的细节,例如I/O接口、中断控制等 (2) 核心(kernel):由操作系统中最常用、最基础的构件组成其中包括调度、上下文切换、中断处理、异步过程调用(APC)、延迟过程调用(DPC)、多处理机同步等内核常住内存 (3) 执行体(Executive):是Win
7、dows2000操作系统的主体,包括进程管理器、虚拟内存管理器、安全引用管理器、I/O管理器、本地过程调用等其中I/O管理包含了所有与外部打交道的成分,如文件、网络等.,Windows2000/XP设计特点,基于服务 由NT发展而来 C/S模型,RPC,LPC,DPC 关于微内核 最初:NT微内核 目前:不是纯微内核结构 文件、虚拟存储等已被放入核心 关于面向对象 执行体采用O2设计原则 大部分代码非O2语言编写 数据对用户模式访问是公开的或数据访问是共享的或受限制时才使用对象,OS/2应用,Win32应用,OS/2子系统,系统级线程,Win32子系统,POSIX子系统,POSIX应用,系统服
8、务,执行体,用户态,系统态,对象 管理器,安全 访问控制,进程 管理器,虚拟存 储管理器,本地 过程调用,核心,HAL,文件系统,缓存管理,设备驱动,网络管理,I/O管理器,硬件,Windwso2000/XP体系结构,对象头部属性,对象体,对象名(Object name) 对象目录(directory in which object live) 安全描述字(access security descriptor) 配额使用价格(resource quota charges) 打开把柄记数(open handle counter) 打开把柄数据库(open handle database) 永久/临时(permanenttemporary) 核心/用户模式(kernel/user mode) 访问记数(reference counts) 对象类型指针(type object pointer),对象体(Object body),Windows2000/XP对象,