操作系统-操作系统体系结构(内核 外核 模块化 宏内核 微内核 分层结构)

大内核与微内核

总览

在这里插入图片描述

操作系统的内核

操作系统的核心功能在内核中
在这里插入图片描述
对于与硬件关联程度的程序
在这里插入图片描述
由于进程管理,存储器管理,设备管理这些工作与硬件联系较少,有时候不会把它们放到内核中。
所以有的操作系统不把这些功能放到内核中,只保留与硬件接触最紧密的部分

所以此时就有两种内核设计方法

属于内核的功能需要运行在内核态,不属于内核的功能运行在用户态
在这里插入图片描述

大内核与微内核的性能差异

采用微内核时,进程管理,存储管理,设备管理都涉及到需要请求内核的工作,此时需要变态

而大内核只需要两次变态

在这里插入图片描述

小结

在这里插入图片描述

分层结构与模块化与外核

总览

在这里插入图片描述
在这里插入图片描述

分层结构

在这里插入图片描述

每层只会下一层的接口

从底层开始调试,从而保证上一层关于底一层方面的接口没有问题,从而只需关注本层的相关调试

扩充方便,只需要提供对于层与层之间的接口即可

有时候底层可能需要高层的功能,此时就与高层只能调用底层这个规定不同了,所以说难以合理定义各层的边界

不能跨层调用,此时需要一层一层往下传递
在这里插入图片描述

模块化

在这里插入图片描述

模块调用多,所以接口的定义实现有时不够完善从而使得每个模块都正好满足

都能相互调用,此时如果某个模块出现问题,可能出现的问题是调用的模块的问题,也有可能是自身模块的问题

确定接口就可以并行开发就是说确定好接口后就可以同时准备各个接口的代码实现
在这里插入图片描述

宏内核,微内核

内核中每个模块之间的依赖性很强,所以当内核中某个模块出现问题,可能会导致整个系统出现问题

在这里插入图片描述

在这里插入图片描述

外核

Exokernel
外核分配回收未经抽象(没有虚拟化或者说物理地址)的硬件资源

程序通过库函数调用普通内核的一些内核功能,也可以调用外核的一些功能

在普通操作系统中,进程申请内存空间时得到的时虚拟的地址空间(连续的),此时虚拟页面对应到实际的物理页框中,这些物理页框在内存中其实是离散的。给进程(一般是存文件)分配的外存空间也是虚拟的地址空间(连续),对应物理磁盘的存储空间也可能是离散的

外核给用户进程直接分配未经抽象的硬件资源,当用户进程经常要随机访问自己所分配到的虚拟外存空间时,此时由于实际对应的物理空间是离散的,在随机访问各个位置时可能需要大量的移动磁头。而如果采用外核分配,直接得到一块连续的物理外存空间,当随机访问各个地址时,磁头移动的距离减少,性能从而提升

外核也能申请连续物理内存空间,此时用户看到就是实实在在的物理内存地址空间。

外核需要保证硬件资源使用安全,即本进程不能访问其他进程的空间,其他进程也不能访问本进程的空间
在这里插入图片描述
一致性:每个进程申请的地址类型不同(物理地址和虚拟地址),这样对后续的管理需要有不同的处理,所以也会更复杂

虚拟地址分配时,进程访问访问自己地址空间时,此时需要查页表,将虚拟地址转换为实际物理地址
在这里插入图片描述

  • 30
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

看星猩的柴狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值