一、操作系统体系结构知识总览
红色星号:新内容
- 主要类型: 大内核(宏内核/单内核)、微内核、分层结构、模块化、外核
- 考试重点: 大内核和微内核是考试常考的两种体系结构
二、 操作系统的内核
2.1 内核的概念
核心地位: 内核是操作系统最基本、最核心的部分,由一系列内核程序组成
运行模式: 内核程序必须运行在内核态
核心功能
- 时钟管理: 通过时钟中断实现计时功能,是程序并发的基础
- 中断处理: 负责实现中断机制
- 原语: 具有原子性的特殊程序,执行过程不可中断(如设备驱动、CPU切换等)
2.2 大内核与微内核的区别
大内核:
- 特点
- 所有功能模块都包含在内核中
- 应用程序请求服务时只需2次CPU状态转换(用户态↔内核态)
- 优缺点:
- 优点: 高性能(状态转换次数少)
- 缺点: 内核代码庞大,结构混乱,难以维护
- 典型系统: Linux、UNIX
微内核:
- 仅保留与硬件最紧密的部分(时钟管理、中断处理、原语)
- 非内核功能:
- 进程管理、存储器管理、设备管理等运行在用户态
- 特点:
- 功能模块需要频繁请求内核服务
- 应用程序请求服务时可能涉及6次CPU状态转换
- 优缺点:
- 优点: 内核功能少,结构清晰,方便维护
- 缺点: 需要频繁状态转换,性能较低
- 典型系统: Windows NT
2.3 内核知识点回顾
三、操作系统结构
3.1 操作系统结构 -分层结构
内核分多层,每层可单向调用更低一层提供的接口
结构特点:
- 最底层是硬件,最上层是用户接口
- 内核被分为多层,像洋葱一样层层包裹
- 每层只能单向调用相邻低层提供的接口
调用规则:
- 例如三层结构中,第三层只能调用第二层,第二层只能调用第一层
- 第一层是唯一能直接操作硬件的层级
分层结构的优点:
1、便于调试和验证,自底向上逐层调式验证(新增大纲)
2、易扩充和易维护,各层之间调用接口清晰固定
便于调试验证:
采用自底向上逐层调试方法
先验证底层功能正确性,再基于已验证的底层调试上层
举例:硬件厂商已保证硬件特性,只需调试第一层代码
易于扩充维护:
层间调用接口在设计时已明确定义
函数名、参数、返回值等规范固定
可在原有层间插入新层,只需保持接口不变
分层结构的缺点:
1、仅可调用相邻低层,难以合理定义各层边界
2、效率低,不可跨层调用,系统调用执行时间长
边界定义困难
某些功能存在双向依赖关系(如进程管理与内存管理)
严格的单向调用规则导致设计不灵活
效率低下
禁止跨层调用导致系统调用路径冗长
类比:A与D通信需经过B、C中转
返回结果也需要逐层传递
3.2 操作系统结构 – 模块化
特性、思想
1、将内核划分为多个模块,各模块之间相互协作。
2、内核 =主模块+可加载内核模块
- 主模块:只负责核心功能,如进程调度、内存管理可
- 加载内核模块:可以动态加载新模块到内核,而无需重新编译整个内核
- 优点
- 开发效率高:
- 模块间逻辑清晰,接口确定后可并行开发
- 灵活性好:
- 支持动态加载新模块,增强OS适应性
- 无需重新编译整个内核
- 性能优势:
- 模块间直接调用,通信效率高
- 开发效率高:
- 缺点
- 接口设计挑战:
- 模块接口可能设计不合理
- 调试困难:
- 模块间相互依赖增加调试复杂度
- 系统稳定性:
- 内核庞大复杂,难以维护
- 关键模块出错可能导致系统崩溃
- 接口设计挑战:
3.3 操作系统结构 – 宏内核(大内核)、微内核
3.4 操作系统结构 – 外核(内核+外核组成)
内核负责进程调度、进程通信等功能
外核负责为用户进程分配未经抽象的硬件资源,且由外核负责保证资源使用安全
解释:减少了虚拟硬件资源的“映射层”,提升效率
本网站原创文章版权归何大锤的狂飙日记所有。发布者:何大锤,转转请注明出处:何大锤的博客