分层法
优点
-
便于系统的调试和验证,简化了操作系统的设计
-
易于扩充、易于维护
此处的易于扩充的意思是:因为分层操作系统只需要向上下提供接口,所以即使更改某一层,只要接口名字一样,就不会对其他层次造成影响
缺点
-
合理定义各层比较困难,不够灵活(圈住要考的,常考点)
-
效率较差
这里我想到了计算机网络的几层结构,也是上层到下层需要经过好多层,未来是不是可以优化一下
模块化
优点
- 提高操作系统可维护性
缺点
- 模块化难以区分不同模块功能界限
- 难以调试和开发
宏内核
主流操作系统的内核架构,Windows、Mac、Android、iOS均为宏内核
优点
- 性能好,是所有架构中性能最好的
缺点
- 内核容易变得很复杂,就像一个人越胖行动就越困难,宏内核也有类似的问题
- 新增功能需要去更改内核代码,不安全
- 一部分宕机,整个宏内核就寄了
微内核(重点)
新兴操作系统:鸿蒙OS、谷歌Fuchsia,今后操作系统设计的方向
基本概念
内核中放的有什么部分?
- 低级io
- 低级进程管理和调度
- 低级存储器管理
- 中断和中断处理
- 进程间通信
注意:无文件系统
低级存储器管理只进行逻辑地址转换为物理地址、地址变换等极度依赖于硬件的功能。而虚拟存储器管理,页面置换算法,内存分配和回收都放到微内核周围的服务器里。
优点
- 内核可以做的非常小
- 采用cs架构,增加新功能不需要更改内核代码,安全性提高
- 一个组件停止工作不影响内核和其他组件运行
缺点
- 性能不好(常考)
由于很多功能部分不在内核态运行,导致其需要资源的时候经常需要切换到内核态,造成巨大的切换开销。解决办法是将其他功能部分动态的添加到内核中。
外核
优点
- 减少映射层