操作系统的体系结构

一、内核结构

操作系统内核也有两种类别:大内核结构、微内核结构

 

大内核结构:也叫宏内核/单内核。将操作系统的主要功能模块都作为操作系统内核。大内核结构包括进程管理、存储器管理、设备管理等功能(第四层)和时钟管理、中断处理、原语(第五层)。

大内核优点:性能更高(CPU状态转换次数更少)

大内核缺点:内核代码庞大,结构混乱,难以维护 

 

微内核结构:只将最基本的操作系统功能保留在内核内。包括时钟管理、中断处理和原语(第五层)。

微内核优点:内核功能少,结构清晰,易于维护

微内核缺点:性能低,CPU需要频繁地在内核态与用户态之间切换 

 

补充:为什么大内核结构CPU状态切换次数更少?

如下图,如果一个应用程序需要请求操作系统服务,该服务同时涉及到进程管理、存储器管理以及设备管理,那么在大内核结构下,CPU只需要从用户态切换到内核态就可以使用这些服务,然后再切换回用户态,总共共需要2次切换;而在微内核结构下,每使用一种服务就需要切换两次,总共需要切换6次切换。

二、分层结构 

 

最底层是硬件,最高层是用户接口。

高层可以调用相邻的用户接口。

分层结构优点:

1.便于调试和验证,自下向上逐层验证

2.易于扩充与维护,各层之间调用接口清晰固定

分层结构缺点:

1.难以合理定义各层之间的边界

2.效率低,仅可调用相邻低层,系统调用执行时间很长

三、模块化结构

 

将操作系统内核划分为多个模块,各个模块之间相互协作。

操作系统内核=主模块+可加载模块

主模块:负责操作系统核心功能,如进程调度,内存管理

可加载模块:可动态加载新模块到操作系统内核中,无需重新编译整个内核,如设备驱动程序

模块化结构优点:

1.模块间逻辑清晰,易于维护,确定模块间接口后可多模块开发

2.支持动态加载新的内核模块,增强系统的适应性

3.效率高,任意模块都可以调用其他模块

模块化结构缺点:

1.模块之间的接口普定义未必合理实用

2.模块间相互依赖,难以调试和验证

四、外核结构

外核负责为用户进程分配未经抽象的硬件资源,并且负责保证资源使用安全 。

 

什么是未经抽象的硬件资源?

即一片连续的存储空间,相比于不连续的空间使用效率更高。

 

外核结构优点:

1.可以直接给用户进程分配不虚拟、不抽象的硬件资源,用户进程更加灵活高效地使用硬件资源

2.减少虚拟硬件资源的映射层,提升效率(映射层:普通操作系统给用户进程分配的都是虚拟的硬件资源,比如虚拟内存,用户进程在访问自己的地址空间时只能提供虚拟地址,要想获得实际的物理地址,操作系统必须去查页表)

外核结构缺点:

1.降低了系统的一致性。有的进程分配了虚拟的地址,有的进程分配了实际的物理地址。

2.操作系统更加复杂

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南林yan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值