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

本文主要是介绍操作系统-操作系统体系结构(内核 外核 模块化 宏内核 微内核 分层结构),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 大内核与微内核
    • 总览
    • 操作系统的内核
    • 大内核与微内核的性能差异
    • 小结
  • 分层结构与模块化与外核
    • 总览
    • 分层结构
    • 模块化
    • 宏内核,微内核
    • 外核

大内核与微内核

总览

在这里插入图片描述

操作系统的内核

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

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

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

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

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

而大内核只需要两次变态

在这里插入图片描述

小结

在这里插入图片描述

分层结构与模块化与外核

总览

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

分层结构

在这里插入图片描述

每层只会下一层的接口

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

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

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

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

模块化

在这里插入图片描述

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

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

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

宏内核,微内核

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

在这里插入图片描述

在这里插入图片描述

外核

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

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

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

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

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

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

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

这篇关于操作系统-操作系统体系结构(内核 外核 模块化 宏内核 微内核 分层结构)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/629406

相关文章

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨

五大特性引领创新! 深度操作系统 deepin 25 Preview预览版发布

《五大特性引领创新!深度操作系统deepin25Preview预览版发布》今日,深度操作系统正式推出deepin25Preview版本,该版本集成了五大核心特性:磐石系统、全新DDE、Tr... 深度操作系统今日发布了 deepin 25 Preview,新版本囊括五大特性:磐石系统、全新 DDE、Tree

Java中switch-case结构的使用方法举例详解

《Java中switch-case结构的使用方法举例详解》:本文主要介绍Java中switch-case结构使用的相关资料,switch-case结构是Java中处理多个分支条件的一种有效方式,它... 目录前言一、switch-case结构的基本语法二、使用示例三、注意事项四、总结前言对于Java初学者

Linux内核之内核裁剪详解

《Linux内核之内核裁剪详解》Linux内核裁剪是通过移除不必要的功能和模块,调整配置参数来优化内核,以满足特定需求,裁剪的方法包括使用配置选项、模块化设计和优化配置参数,图形裁剪工具如makeme... 目录简介一、 裁剪的原因二、裁剪的方法三、图形裁剪工具四、操作说明五、make menuconfig

结构体和联合体的区别及说明

《结构体和联合体的区别及说明》文章主要介绍了C语言中的结构体和联合体,结构体是一种自定义的复合数据类型,可以包含多个成员,每个成员可以是不同的数据类型,联合体是一种特殊的数据结构,可以在内存中共享同一... 目录结构体和联合体的区别1. 结构体(Struct)2. 联合体(Union)3. 联合体与结构体的

如何安装HWE内核? Ubuntu安装hwe内核解决硬件太新的问题

《如何安装HWE内核?Ubuntu安装hwe内核解决硬件太新的问题》今天的主角就是hwe内核(hardwareenablementkernel),一般安装的Ubuntu都是初始内核,不能很好地支... 对于追求系统稳定性,又想充分利用最新硬件特性的 Ubuntu 用户来说,HWEXBQgUbdlna(Har

PostgreSQL如何查询表结构和索引信息

《PostgreSQL如何查询表结构和索引信息》文章介绍了在PostgreSQL中查询表结构和索引信息的几种方法,包括使用`d`元命令、系统数据字典查询以及使用可视化工具DBeaver... 目录前言使用\d元命令查看表字段信息和索引信息通过系统数据字典查询表结构通过系统数据字典查询索引信息查询所有的表名可

内核启动时减少log的方式

内核引导选项 内核引导选项大体上可以分为两类:一类与设备无关、另一类与设备有关。与设备有关的引导选项多如牛毛,需要你自己阅读内核中的相应驱动程序源码以获取其能够接受的引导选项。比如,如果你想知道可以向 AHA1542 SCSI 驱动程序传递哪些引导选项,那么就查看 drivers/scsi/aha1542.c 文件,一般在前面 100 行注释里就可以找到所接受的引导选项说明。大多数选项是通过"_