文章目录
- 【王道操作系统】ch1计算机系统概述-04操作系统结构
- 操作系统的内核
- 操作系统的体系结构考纲新增内容(红色为全新内容,黄色为原有内容):
- 01 分层结构
- 02 模块化
- 03 宏内核(大内核)和微内核
- 04 外核
【王道操作系统】ch1计算机系统概述-04操作系统结构
操作系统的内核
操作系统内核是操作系统最基本、最核心的部分,实现操作系统内核功能的那些程序就是内核程序。
最底层的时钟管理、中断管理、原语是与硬件关联最紧密的三个模块,这些功能是必须放在内核当中的。还有一些管理相关的功能,如进程管理,存储器管理。对于这些功能的管理,更多的是对数据结构的一个操作,而不会直接涉及到硬件。所以有的操作系统并不把这些管理功能放在内核当中,而只在内核当中保留与硬件接触最紧密的这些部分。
因此,这就引出了两种截然不同的内核的设计方法:
- 大内核
把所有的这些功能都包含在操作系统内核当中的这种结构,就叫做大内核(宏内核/单内核)。 - 微内核
而如果内核当中只保留与硬件关系最紧密的这些部分,那么这种内核就叫做微内核。
背景:一个应用程序想要请求操作系统服务,这个服务的处理同时涉及到进程管理、
存储管理、设备管理。 - 在大内核的操作系统下,CPU的状态将会发生2次改变
- 在微内核的操作系统下,CPU的状态将会发生6次改变
而CPU状态的切换是有成本的,频繁地切换状态会降低系统的性能。
操作系统的体系结构考纲新增内容(红色为全新内容,黄色为原有内容):
01 分层结构
02 模块化
03 宏内核(大内核)和微内核
04 外核
- 内核负责进程调度、进程通信等功能
- 外核负责为用户进程分配未经抽象的硬件资源,且由外核负责保证资源使用安全
在普通的操作系统当中,如果用户进程他想要申请使用一片内存空间。那么给他分配的内存空间是经过虚拟化的。用户进程自己看到的视角,似乎是自己拥有了一整片连续的这个内存空间。但事实上,这只是虚拟的地址空间,操作系统内核会把这些虚拟空间映射到实际的物理空间中,这些物理空间在内存当中通常是离散的。
除了内存空间之外,给进程分配的文件存储空间、外存空间也是经过抽象的。对于进程来说,他觉得自己的文件好像是连续的一个地址空间。但事实上,这个文件的各个块。在磁盘当中,很有可能是被离散存放的,所以普通的操作系统给用户进程分配的磁盘空间也是经过抽象的。
而外核可以给用户进程直接分配未经抽象的硬件资源
。
优点:比如一个用户进程知道自己的这一片存储空间是经常需要随机访问的,一会访问a地址,一会访问b地址。
-
如果给这个用户进程分配的磁盘空间在外存当中是离散的,那么用户进程在随机访问这些文件块的时候,意味着
这个磁头需要来回横跳,那这样就会导致用户进程对自己的文件随机访问的这种性能效能变低。
-
如果采用外核的这种策略,那么外核可以直接给用户进程分配未经抽象的硬件资源。也就是说,如果这个用户进程他知道自己的这个文件需要频繁的被随机访问,那么我就可以向外核申请给我分配一整片连续的这个磁盘块,比如说从0号块到1024号块,全部都是我的。
用户进程文件数据直接存放到连续的几个磁盘块当中,那他之后想要随机访问自己这个文件里边的任何一块,磁头移动的这些距离就会变少。
外核除了分配回收这些未经抽象的硬件资源之外,还需要负责保证这些硬件资源的使用安全。
- 比如a到b这个空间已经分配给了进程p1,此时另一个进程p2想要访问这片区域。外核就需要及时的发现并且制止。
- 同时,进程p1如果要访问a-b之外的其他空间,这个行为也应该被外核发现并制止。所以外核它分配了这些硬件资源之后,还需要保证这些硬件资源的使用安全。