考研408《操作系统》复习笔记,第三章《操作系统体系结构》
一、操作系统大致体系结构
宏观上看,主要就分为【非内核部分】和【内核部分】
一般来说,【非内核部分】就是GUI可视化界面
- 比如我们熟知的Ubuntu、CentOS系统,他们底层都是Linux,我们不管用哪一个系统,终究都是执行一样的Linux指令,但是他们的样子却完全不一样,这就是因为他们的各自的开发团队都是在开发【非内核部分】,而【内核部分】其实都是Linux的内核
【内核部分】就是涉及到底层硬件的一些操作程序,是操作系统里最最重要的东西,比如 “时钟管理程序、中断处理程序、原语程序(不会受中断信号而停下,一气呵成的程序)” 这些涉及直接操作底层硬件资源的程序,必须必须在内核部分!
- 但是有的系统会把 “进程管理、存储器管理、设备管理” 这些功能也放到内核部分,有的不会,这就区分出了两种结构类型的操作系统,后面我会讲
二、操作系统的内核
操作系统的内核是操作系统最重要的部分!!!
然后【时钟管理、中断处理、原语】这些【与硬件管理比较紧密的模块】必须在内核部分,不管是什么操作系统都一样
而内核部分是否包含【进程管理、存储器管理、设备管理】这些【对系统资源进行管理功能的】的部分,决定了这个操作系统是两大类——【大内核】、【微内核】的哪一种?
操作系统结构分为两大类:【大内核】、【微内核】
【大内核】:就是内核包含【进程管理、存储器管理、设备管理】这些【对系统资源进行管理功能的】的部分(大内核又称“宏内核” 、“单内核”)
【微内核】:内核不包含【进程管理、存储器管理、设备管理】这些【对系统资源进行管理功能的】的部分,只有跟硬件有关的功能
两种结构的性能区别:
我们知道要运行【非内核程序】CPU就要变成【用户态】,要运行【内核程序】CPU就要变成【内核态】
【大内核】:所以如果【进程管理、存储器管理、设备管理】这些都在内核部分的话,假设一个应用程序要用到【进程管理、存储器管理、设备管理】这些功能的时候,CPU只需要在【用户态】和【内核态】之间转变2次
不过内核的代码会非常多,结构混乱,不利于操作系统的开发人员维护,模块耦合度高
- 优点:性能高(CPU转变状态会消耗时间成本,少变几次性能就高了)
- 缺点:内核代码又多又臭,不便于维护
【微内核】:所以如果【进程管理、存储器管理、设备管理】这些不在内核部分的话,假设一个应用程序要用到【进程管理、存储器管理、设备管理】这些功能的时候,CPU需要在【用户态】和【内核态】之间转变6次!!
不过内核代码会简洁蛮多,内核模块只关注涉及硬件的那几个功能,耦合度低便于维护
- 优点:内核代码简洁,便于维护
- 缺点:性能低(CPU转变状态会消耗时间成本,多变几次性能就低了)
【总结】
三、五大类特性总结(选择题考优缺点)
1、分层结构(层次结构)
概念:内核分多个层次,从里到外每一层依次向临近的上一层提供接口服务(不能跨层)
优点:
- 1、便于调试和验证,因为可以自底向上逐层调试,每一层基于低一层的正确性来验证自己⭐
- 2、便于维护和扩充,各层之间调用接口清晰
缺点:
- 1、各层级之间的划分界限不明确,比如内存管理层有时会需要调用进程管理层,进程管理层也可能调用内存管理层
- 2、仅仅可调用边界相邻底层,不能跨层,效率低,系统执行时间长
2、模块化结构
概念:内核划分为多个模块,各模块之间相互协作
【内核 = 主模块 + 可加载内核模块】
主模块:只关心核心功能,例如进程调度、内存管理
可加载内核模块:可动态加载新模块到内核,比如驱动模块,但有没有它都不影响内核,也无需重新整个编译,只是起到锦上添花的效果
优点:
- 1、模块之间逻辑清晰,结构清晰,易于维护,确定模块接口之后可以多模块同时开发(像软件开发一样)
- 2、可动态加载新的模块进内核(比如安装新的驱动、安装新的文件系统...),增加内核自适应
- 3、各个模块之间之间互相调用就行,不需要额外建立通信,执行效率高
缺点:
- 1、模块之间接口定义未必合理
- 2、模块之间依赖性大,更难以维护、调试
3、外核结构
概念:
内核负责进程调度、进程通信的功能
外核负责直接为用户进程分配硬件资源,并由外核维护资源使用的安全
优点:
- 1、可以更直接地为用户分配 “不虚拟、不抽象” 的硬件资源,用户资源更灵活的使用硬件资源
- 2、减少了虚拟硬件的 “映射层” ,提升效率
缺点:
- 1、降低了系统的一致性
- 2、是系统更加复杂,更不便于维护
4、大内核/单核/宏内核 结构
概念:所有系统功能都放内核里,各个模块可以直接互相调用(大内核也借鉴了“模块化”的思想)
优点:
- 性能高(CPU转变状态会消耗时间成本,少变几次性能就高了),各个模块之间互相直接调
缺点:
- 1、内核代码又多又臭,不便于维护
- 2、有一个功能模块出错,会导致整个内核、整个系统瘫痪
5、微内核结构
概念:只把硬件相关的核心功能(中断、时钟管理、原语...)放在内核,【进程管理、存储器管理、设备管理】这些对系统资源进行管理功能放到非内核部分
优点
- 1、内核代码简洁,便于维护
- 2、【进程管理、存储器管理、设备管理】这些对系统资源进行管理功能出错不会导致整个系统瘫痪
缺点
- 1、性能低(CPU转变状态会消耗时间成本,多变几次性能就低了)
- 2、用户态下的各个功能不能直接互相调,需要内核建立 “消息通信”,执行效率低
原文地址:https://blog.csdn.net/m0_73991249/article/details/144299888
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!