操作系统:体系结构

1.内核的划分

操作系统:体系结构_第1张图片

1.术语解释
  • 时钟管理:利用时钟断实现计时功能。
  • 原语是一种特殊的程序,具有原子性。也就是说,这段程序的运行必须一气呵成,不可被“中断”
  • Ubuntu、Centos的开发团队,其主要工作是实现非内核功能,而内核都是用了Linux内核。

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

2.注意
  • 操作系统内核需要运行在内核态
  • 操作系统的非内核功能运行在用户态

2.大内核(又称:宏内核/单内核)

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

注意:变态(用户态和内核态之间的变换)的过程是有成本的,
要消耗不少时间,频繁地变态会降低系统性能

1.特性
  • 所有的系统功能都放在内核里(大内核结构的OS通常也采用了"模块化"的设计思想)
2.优缺点
  • 优点:性能高,内核内部各种功能都可以直接相互调用
  • 缺点:内核代码庞大,结构混乱,难以维护;大内核中某个功能模块出错,就可能导致整个系统崩溃

典型的大内核/宏内核/单内核操作系统:Linux、UNIX

3.微内核

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

1.特性

只把中断、原语、进程通信等最核心的功能放入内核。
进程管理、文件管理、设备管理等功能以用户进程的形式运行在用户态。

2.优点
  • 优点:内核功能少,结构清晰,方便维护;
  • 内核外的某个功能模块出错不会导致整个系统崩溃.
3.缺点
  • 缺点︰性能低,需要频繁的切换用户态/核心态。
  • 用户态下的各功能模块不可以直接相互调用,只能通过内核的"消息传递"来间接通信;

典型的微内核操作系统:Windows NT

4.分层结构

最底层是硬件,最高层是用户接口,每层可调用更低一层。

1.优点
  • 便于调试和验证,自底向上逐层调试验证。
  • 易扩充和易维护,各层之间调用接口清晰固定。
2.缺点
  • 仅可调用相邻低层,难以合理定义各层的边界。
  • 效率低,不可跨层调用,系统调用执行时间长。

5.模式化

1.特性
  • 将内核划分为多个模块,各模块之间相互协作。
  • 内核=主模块+可加载内核模块
  • 主模块︰只负责核心功能,如进程调度、内存管理
  • 可加载内核模块:可以动态加载新模块到内核,而无需重新编译整个内核
2.优点
  • 模块间逻辑清晰易于维护,确定模块间接口后即可多模块同时开发
  • 支持动态加载新的内核模块(如∶安装设备驱动程序、安装新的文件系统模块到内核),增强OS适应性
  • 任何模块都可以直接调用其他模块,无需采用消息传递进行通信,效率高
3.缺点
  • 模块间的接口定义未必合理、实用
  • 2.模块间相互依赖,更难调试和验证

6.外核

1.特性
  • 内核负责进程调度、进程通信等功能,
  • 外核负责为用户进程分配未经抽象的硬件资源,且由外核负责保证资源使用安全
2.优点
  • 外核可直接给用户进程分配"不虚拟、不抽象的硬件资源,使用户进程可以更灵活的使用硬件资源
  • 减少了虚拟硬件资源的"映射层",提升效率
3.缺点
  • 降低了系统的一致性
  • 使系统变得更复杂

你可能感兴趣的:(操作系统,windows,linux)