操作系统体系结构

操作系统体系结构

引例

 

 

内核是操作系统最基本,最核心的部分,实现操作系统内核功能的那些程序就是内核程序

有的操作系统会将和硬件接触最紧密的例如时钟管理,中断等等放在内核中,像进程管理,存储器管理,设备管理等功能呢不放在内核中。这种区别就引出了大内核小内核。

 

而其也会对系统的性能造成影响。

操作系统的内核运行在内核态,非内核运行在用户态。

 

 

在内核态和用户态切换是需要成本的,要消耗不少时间,频繁的切换会导致系统性能降低

大内核(宏内核/单内核)

将操作系统的主要功能模块都作为内核,运行在核心态。

优点

高性能

缺点

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

1.内核庞大功能复杂,难以维护

2.大内核中某个功能模块出错,就可能导致整个女系统崩溃

典型

Linux,UNIX

微内核

只把最基本的功能保留在内核

优点

内核功能少,结构清晰,方便维护

1.内核小功能少、易于维护,内核可靠性高

2.内核外的某个功能模块出错不会导致整个系统克崩溃

缺点

需要频繁的在核心态和用户态之间切换,性能低

1.性能低,需要频繁的切换 用户态/核心态。用户态下的各功能模块不可以直接相互调用,只能通过内核的"消息传递"来间接通信

2.用户态下的各功能模块不可以直接相互调用女只能通过内核的"消息传递“来间接通信

典型

Windows NT

分层结构

 

特性、思想

内核分多层,每层可单向调用更低一层提供的接网(只可以相邻级调用)

优点

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

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

缺点

1.仅可调用相邻低层,难以合理定义各层的边界

2.效率低,不可跨层调用,系统调用执行时间长

模块化

 

特性、思想

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

内核 =主模块+可加载内核模块

主模块:只负责核心功能,如进程调度、内存管理

可加载内核模块:可以动态加载新模块到内核,而无需重新编译整个内核

优点

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

2.支持动态加载新的内核模块(如:安装设备驱动程序、安装新的文件系统模块到内核),增强OS适应性

3.任何模块都可以直接调用其他模块,无需采用消息传递进行通信,效率高

缺点

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

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

外核

 

特性、思想

内核负责进程调度、进程通信等功能,外核负责中为用户进程分配未经抽象的硬件资源,且由外核负责保证资源使用安全

优点

1.外核可直接给用户进程分配“不虚拟、不抽象"内的硬件资源,使用户进程可以更灵活的使用硬件资源

2.减少了虚拟硬件资源的"映射层",提升效率

缺点

1.降低了系统的一致性

2.使系统变得更复杂

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值