# 1.4 操作系统体系结构 ## 一、简单结构(无结构) ### 1.1 特点 早期的操作系统没有清晰的结构,如 MS-DOS。 **结构特点**: - 操作系统代码不分层,所有功能混杂在一起 - 应用程序可以直接访问硬件 - 没有模块化的设计 **缺点**: - 代码难以理解和维护 - 容易出现错误 - 难以扩展和修改 ### 1.2 MS-DOS 结构 MS-DOS 采用简单的结构,主要分为: - BIOS(基本输入输出系统) - DOS 内核 - 命令处理程序 应用程序可以直接访问硬件,导致系统不稳定。 --- ## 二、模块化结构 ### 2.1 基本思想 将操作系统按功能划分为若干模块,各模块之间通过接口通信。 **主要模块**: - 进程管理模块 - 内存管理模块 - 文件管理模块 - 设备管理模块 ### 2.2 优点 - **提高开发效率**:不同模块可以并行开发 - **增强可维护性**:修改一个模块不会影响其他模块 - **便于扩展**:可以增加新的模块 ### 2.3 缺点 - **接口定义困难**:模块之间的接口需要精心设计 - **模块间关系复杂**:模块之间可能存在复杂的依赖关系 - **性能问题**:模块间通信可能带来开销 --- ## 三、分层式结构 ### 3.1 基本思想 将操作系统分为若干层,每层只能调用下层提供的服务,不能调用上层服务。 **层次划分**: ``` 第 N 层:用户接口层 第 N-1 层:... ... 第 2 层:操作系统服务层 第 1 层:硬件抽象层 第 0 层:硬件 ``` ### 3.2 典型例子:THE 系统 THE 系统采用分层结构: - 第 5 层:用户程序 - 第 4 层:输入输出管理 - 第 3 层:操作员控制台通信 - 第 2 层:内存管理 - 第 1 层:进程调度和处理器分配 - 第 0 层:硬件 ### 3.3 优点 - **便于调试和验证**:可以从底层开始逐层调试 - **易于扩充**:可以在现有层次上增加新层 - **结构清晰**:层次关系明确 ### 3.4 缺点 - **效率较低**:调用下层服务需要逐层传递 - **功能划分困难**:某些功能难以确定放在哪一层 - **灵活性差**:不能跨层调用 --- ## 四、微内核结构 ### 4.1 基本思想 将最基本的功能放入微内核,其他服务功能移到用户态的服务器。 **微内核功能**: - 进程(线程)管理 - 低级存储管理 - 中断和陷入处理 - 进程间通信(IPC) **用户态服务器**: - 文件服务器 - 设备驱动服务器 - 网络服务器 - 图形服务器 ### 4.2 典型例子 - **Mach**:卡内基梅隆大学开发的微内核 - **Minix**:教学用微内核操作系统 - **QNX**:商业实时微内核操作系统 - **L4**:高性能微内核 ### 4.3 优点 - **提高了系统的可扩展性**:可以增加新的服务器 - **增强了系统的可靠性**:服务器崩溃不影响内核 - **提高了系统的可移植性**:与硬件相关的代码集中在微内核 - **便于分布式系统的实现**:服务器可以分布在不同机器上 ### 4.4 缺点 - **性能较低**:需要频繁的用户态和核心态切换 - **通信开销大**:进程间通信需要经过微内核 - **设计复杂**:需要精心设计微内核和服务器之间的接口 --- ## 五、外核结构 ### 5.1 基本思想 让内核分配硬件资源给应用程序,由应用程序自己管理资源。 **内核功能**: - 资源分配和保护 - 不提供服务,只确保资源的安全使用 **库操作系统**: - 运行在用户态 - 提供传统操作系统的服务 - 应用程序链接库操作系统 ### 5.2 优点 - **灵活性高**:应用程序可以自定义资源管理方式 - **性能好**:减少了内核干预 - **可定制性强**:不同应用可以使用不同的库操作系统 ### 5.3 缺点 - **安全性问题**:应用程序直接管理资源可能带来安全隐患 - **复杂度高**:应用程序需要处理更多底层细节 - **可移植性差**:应用程序与硬件紧密相关 --- ## 六、虚拟机结构 ### 6.1 基本思想 在裸机上运行虚拟机监控程序(VMM),在 VMM 上运行多个虚拟机,每个虚拟机可以运行不同的操作系统。 **层次结构**: ``` 应用程序 操作系统(客户机) 虚拟机监控程序(VMM) 硬件 ``` ### 6.2 类型 **类型 1(裸机型)**: - VMM 直接运行在硬件上 - 如 VMware ESXi、Microsoft Hyper-V、Xen **类型 2(宿主型)**: - VMM 运行在宿主操作系统上 - 如 VMware Workstation、VirtualBox ### 6.3 优点 - **隔离性好**:不同虚拟机之间相互隔离 - **可运行多个操作系统**:同时运行 Windows、Linux 等 - **便于测试和开发**:可以在虚拟机中测试软件 - **提高资源利用率**:一台物理机运行多个虚拟机 ### 6.4 缺点 - **性能开销**:虚拟化带来一定的性能损失 - **资源竞争**:多个虚拟机共享物理资源 - **复杂性高**:虚拟化技术实现复杂 --- ## 七、客户机-服务器结构 ### 7.1 基本思想 操作系统分为两部分: - **客户机(Client)**:请求服务的应用程序 - **服务器(Server)**:提供服务的进程 **通信方式**: - 客户机通过消息传递向服务器请求服务 - 服务器处理请求并返回结果 ### 7.2 优点 - **模块化**:功能分布在不同的服务器中 - **可扩展性**:可以增加新的服务器 - **适用于分布式系统**:服务器可以分布在不同机器上 ### 7.3 缺点 - **通信开销**:消息传递带来开销 - **可靠性问题**:服务器故障影响服务 --- ## 八、操作系统结构的选择 ### 8.1 选择因素 - **系统目标**:通用系统还是专用系统 - **性能要求**:实时性要求高还是低 - **可靠性要求**:关键任务还是一般应用 - **可扩展性要求**:是否需要频繁扩展 - **开发和维护成本** ### 8.2 现代操作系统的趋势 - **混合结构**:结合多种结构的优点 - **模块化设计**:便于扩展和维护 - **虚拟化支持**:支持虚拟机和容器 - **安全性和隔离性**:更强的安全机制 --- ## 九、考研重点 1. **各种体系结构的特点**:简单、模块化、分层、微内核、外核、虚拟机 2. **微内核结构的优缺点**:可扩展性、可靠性 vs 性能 3. **分层结构的层次划分**:只能调用下层服务 4. **虚拟机结构**:类型 1 和类型 2 的区别 5. **客户机-服务器结构**:适用于分布式系统 6. **现代操作系统的设计趋势** --- *第一章完,进入第二章:进程管理*