自学内容网 自学内容网

【操作系统】体系结构

🌹😊🌹博客主页:【Hello_shuoCSDN博客

操作系统详见  【操作系统专项

✨C语言知识详见:【C语言专项

目录

操作系统的内核

操作系统结构——分层结构

操作系统结构——模块化

 操作系统结构——宏内核、微内核

操作系统结构——外核


操作系统的内核

内核是操作系统最基本、最核心的部分。

实现操作系统内核功能的那些程序就是内核程序

原语是一种特殊的程序,具有原子性。也就是说,这段程序的运行必须一气呵成,不可被“中断”。

时钟管理是利用时钟中断实现计时功能。

非内核功能 (如GUI) ——Ubuntu、CentOS的开发团队,其主要工作是实现非内核功能,而内核都是用了Linux内核。

把所有功能都包括在操作系统内核中的叫做大内核,而内核中如果只保留与硬件最紧密的这一部分,那么这种内核就叫做微内核。

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

一个故事:现在,应用程序想要请求操作系统的服务,这个服务的处理同时涉及到进程管理、存储管理、设备管理
注意:变态的过程是有成本的,要消耗不少时间,频繁地变态会降低系统性

(补充:这里的变态是简写易懂的形式,在真正书写的时候要书写——CPU状态的转换

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

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

知识总框:

操作系统体系结构的特征、思想以及优缺点:

操作系统结构——分层结构

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

内核分多层,每层可单向调用更低一层提供的接口

优点:

1.便于调试和验证,自底向上逐层调试验证
2.易扩充和易维护,各层之间调用接口清晰固定

缺点:
1.仅可调用相邻低层,难以合理定义各层的边界
2.效率低,不可跨层调用,系统调用执行时间长

操作系统结构——模块化

    模块化是将操作系统按功能划分为若干个具有一定独立性的模块。每个模块具有某方面的管理功能,并规定好各模块间的接口,使各模块之间能通过接口进行通信。还可以进一步将各模块细分为若干个具有一定功能的子模块,同样也规定好各子模块之间的接口。把这种设计方法称为模块-接口法,如图所示为由模块、子模块等组成的模块化操作系统结构。

模块化结构的操作系统

将内核划分为多个模块,各模块之间相互协作。
内核=主模块+可加载内核模块
主模块:只负责核心功能,如进程调度、内存管理
可加载内核模块:可以动态加载新模块到内核,而无需重新编译整个内核

 优点:

1模块间逻辑清晰易于维护,确定横块间接口后即可多模块同时开发
2. 支持动态加载新的内核模块(如:安装设备驱动程序、安装新的文件系统模块到内核),增强OS适应性
3. 任何模块都可以直接调用其他模块,无需采用消息传递进行通信,效率高

缺点:

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

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

 操作系统结构——宏内核、微内核

操作系统结构——外核

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

优点:

1. 外核可直接给用户进程分配“不虚拟、不抽象”的硬件资源,使用户进程可以更灵活的使用硬件资源。
2. 减少了虚拟硬件资源的“映射层”,提升效率。

缺点:

1.降低了系统的一致性

2.使系统变得更复杂


原文地址:https://blog.csdn.net/Hello_shuo/article/details/142668344

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!