@[TOC]
1.操作系统的内核
操作系统包含内核和非内核功能
:ice_cream:非内核功能:如GUI
:ear_of_rice:内核包括:进程管理,存储器管理,设备管理,处理器管理,时钟管理,中断管理,原语。
时钟管理:利用时钟中断实现计时功能,也实现了并发性
原语:原语是一种特殊的程序,具有原子性。也就是说,这段程序的运行必须一气呵成,不可被中断。和事务类似。
2.操作系统的体系结构
内核:包括大内核和微内核,大内核是整个内核,而微内核只保留时钟管理、中断处理、原语这些与硬件紧闭相连的功能,把进程管理、存储器管理等纳入了非内核功能,这些功能更多的是对数据结构的操作,而不会直接涉及到硬件部分。
区别:非内核是在用户态下执行的,内核功能是在内核态下执行,所以微内核就把那些管理放到了非内核态下执行。
举个例子:一个应用程序想要请求操作系统的服务,这个服务的处理同时涉及到进程管理,存储器管理,设备管理。
如果在大内核下,所有请求都会转为内核态处理,而在微内核下,每个在用户态下的管理都要转换到内核态下进行处理,这样就大大增加了状态转化的数量,浪费了更多的资源和成本。
3.总结
大内核:把操作系统的主要功能都作为系统内核,运行在核心态。
- 优点:高性能
- 缺点:内核代码庞大,结构混乱,难以维护。
微内核:只把最基本的功能保留在内核
- 优点:内核功能少,结构清晰,方便维护
- 缺点:需要频繁地在核心态和用户态之间切换,性能低。