\quad
一. 大内核与微内核
\quad
由于对系统资源进行管理的功能不会直接涉及硬件, 所以有的就没有把这个功能放在内核里面
注意: 考试的时候不要写变态, 要写CPU状态的转换
\quad
二. 分层结构, 模块化和外核
\quad
\quad
2.1 分层结构
\quad
只能调用相邻一层, 不能跨层调用
优点
1.便于调试和验证,自底向上逐层调试验证
2.易扩充和易维护,各层之间调用接口清晰固定
缺点
1.仅可调用相邻低层,难以合理定义各层的边界
2.效率低,不可跨层调用,系统调用执行时间长
\quad
2.2 模块化
\quad
可加载内核模块是锦上添花, 可实现模块拓展
将内核划分为多个模块,各模块之间相互协作。
内核=主模块+可加载内核模块
主模块:只负责核心功能,如进程调度、内存管理
可加载内核模块:(可以动态加载新模块到内核,而无需重新编译整个内核)
优点:
1.模块间逻辑清晰易于维护,确定模块间接口后即可多模块同时开发
2.支持动态加载新的内核模块(如:安装设备驱动程序、安装新的文件系统模块到内核),增强OS适应性
3.任何模块都可以直接调用其他模块,无需采用消息传递进行通信,效率高
缺点:
1.模块间的接口定义未必合理、实用
2.模块间相互依赖,更难调试和验证
\quad
2.3 宏内核与微内核
\quad
关于宏内核与微内核的优缺点上面已有提到
\quad
三. 外核
\quad
内核负责进程调度、进程通信等功能,外核负责为用户进程分配未经抽象的硬件资源(如内存存储空间,解释: 内存空间零散),且由外核负责保证资源使用安全
用户看到的内存似乎是连续的, 但是这是操作系统通过映射,抽象和虚拟化出来的(这是普通操作系统给的,和外核不同), 其实在磁盘中是离散的, 同样的, 文件存储空间,外存空间也是
外核可以给用户分配未经抽象的硬件资源, 经常随机访问的就会给一整片连续的磁盘模块, 从而提升性能
优点:
1.(外核可直接给用户进程分配"不虚拟、不抽象"的硬件资源),使用户进程可以更灵活的使用硬件
资源
2.减少了虚拟硬件资源的"映射层",提升效率
普通的操作系统分配空间时, 虚拟地址映射到物理地址是需要损耗时间的
而外核给的如果是你在这个空间区间内, 你就不需要去映射, 因为是实实在在的地址
缺点
1.降低了系统的一致性
2.使系统变得更复杂