【王道操作系统】ch1计算机系统概述-04操作系统结构

文章目录

  • 【王道操作系统】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之外的其他空间,这个行为也应该被外核发现并制止。所以外核它分配了这些硬件资源之后,还需要保证这些硬件资源的使用安全。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/714039.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

redis03 八种数据类型

思维草图 String类型 字符串类型,是redis中最简单的存储类型,可以包含任何数据,例如jpg图片或者序列化的对象等,底层都是以字节数组形式存储,最大能存储512MB的数据。 常用命令 KEY命名规范 加前缀,分…

802.11局域网的 MAC 帧

目录 802.11 局域网的 MAC 帧 802.11 数据帧的三大部分 1.关于 802.11 数据帧的地址 最常用的两种情况 2.序号控制字段、持续期字段和帧控制字段 802.11 局域网的 MAC 帧 802.11 帧共有三种类型:控制帧、数据帧和管理帧。 802.11 数据帧的三大部分 MAC 首部&…

基于 STM32U5 片内温度传感器正确测算温度

目录预览 1、引言 2、问题 3、小结 01 引言 STM32 在内部都集成了一个温度传感器,STM32U5 也不例外。这个位于晶圆上的温度传感器虽然不太适合用来测量外部环境的温度,但是用于监控晶圆上的温度还是挺好的,以防止芯片过温运行。 02 问题…

sqllabs第五关floor报错注入

实验环境sqllabs第五关 floor()报错注入的原因是group by在向临时表插入数据时,由于rand()多次计算导致插入临时表时主键重复,从而报错,又因为报错前concat()中的SQL语句或函数被执行,所以该语句报错且被抛出的主键是SQL语句或函…

深入理解Lambda表达式:基础概念与实战演练【第114篇—python:Lambda表达式】

深入理解Lambda表达式:基础概念与实战演练 在现代编程语言中,Lambda表达式作为一种轻量级的匿名函数形式,越来越受到程序员的青睐。特别是在函数式编程兴起的今天,Lambda表达式在简化代码、提高可读性方面发挥着重要作用。本文将…

C++笔记(六)--- 静态成员变量/函数(static)

目录 C语言中静态变量 C静态成员变量 C静态成员函数 C语言中静态变量 1.函数内部用static修饰的变量,只能在此函数使用,但所修饰的变量不随函数释放而释放,下次调用时的值仍为上次结束时的值2.static修饰的全局变量只能在其定义的文件使用…

数据可视化原理-腾讯-热力图

在做数据分析类的产品功能设计时,经常用到可视化方式,挖掘数据价值,表达数据的内在规律与特征展示给客户。 可是作为一个产品经理,(1)如果不能够掌握各类可视化图形的含义,就不知道哪类数据该用…

CSP-201712-2-游戏

CSP-201712-2-游戏 解题思路 初始化变量:定义整数变量n和k,分别用来存储小朋友的总数和淘汰的特定数字。然后定义了num(用来记录当前报的数)和peopleIndex(用来记录当前报数的小朋友的索引)。 初始化小朋…

MATLAB环境下基于离散小波变换的体外血管图像处理

下面简要介绍小波变换的部分应用。 信号去噪。小波去噪是根据有效信号和噪声信号在小波变换后表现出的不同特性实现的,一般可用于去除语音、图像、视频等中的噪声信号。小波去噪方法根据对小波系数的非线性处理方式分为三类,分别是小波变换模极大值去噪…

电子电器架构新趋势 —— 最佳着力点:域控制器

电子电器架构新趋势 —— 最佳着力点:域控制器 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师(Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师…

备战蓝桥杯---状态压缩DP基础1之棋盘问题

它只是一种手段,一种直观而高效地表示复杂状态的手段。 我们先来看一道比较基础的: 直接DFS是肯定不行,我们发现对某一行,只要它前面放的位置都一样,那么后面的结果也一样。 因此我们考虑用DP,并且只有0/…

蓝桥杯-单片机组基础6——定时计数器与外部中断混合使用(附小蜜蜂课程代码)

蓝桥杯单片机组备赛指南请查看这篇文章:戳此跳转蓝桥杯备赛指南文章 本文章针对蓝桥杯-单片机组比赛开发板所写,代码可直接在比赛开发板上使用。 型号:国信天长4T开发板(绿板),芯片:IAP15F2K6…

4.1.CVAT——目标检测的标注详细步骤

文章目录 1. 进入任务1. 创建任务2. 已创建的task3. 进入标注界面 2. 选择标注类型2.1 选择标注类型2.2 进行标注2.3 遮挡 2.快捷键3.导出标注结果 1. 进入任务 登录后会看到如下图界面,CVAT的标注最小单位是Task,每个Task为一个标注任务。点击Task按钮…

[法规规划]国家数据局局长刘烈宏《激活数据要素价值》演讲要点解析

国家数据局党组书记、局长刘烈宏在北大光华论坛上发表了题为《激活数据要素价值》的演讲,当时曾极大推动了市场热度,引发了行业思考。现在演讲过去了一段时间,但是温故而知新,我们不妨结合演讲之后的市场反应,回顾一下…

html基本标签

<h1></h1> <p></p> h是标签从h1~h6&#xff0c;没用h7,h8 p是段落 <a href"https://www.educoder.net">Educoder平台</a> href可以指定链接进行跳转 <img src"https://www.educoder.net/attachments/download/2078…

【论文精读】DALLE: Zero-Shot Text-to-Image Generation零样本文本到图像生成

文章目录 一、前言二、摘要三、方法&#xff08;一&#xff09;主要目标&#xff08;二&#xff09;stage 1&#xff1a;训练离散变分自动编码器&#xff08;dVAE&#xff09;&#xff08;三&#xff09;stage 2&#xff1a;训练自回归转换器&#xff08;四&#xff09;公式表达…

Flutter开发之CupertinoApp

Flutter开发之CupertinoApp 最近由于使用Flutter编程更多&#xff0c;使用Flutter更顺手&#xff0c;相对于其他前端框架来说&#xff0c;Flutter在跨平台、响应式UI、自绘引擎、即插即用的组件和庞大的社区生态支持方面有更大的优势&#xff1b;Flutter拥有更低的学习成本&am…

gpt批量工具,gpt批量生成文章工具

GPT批量工具在今天的数字化时代扮演着越来越重要的角色&#xff0c;它们通过人工智能技术&#xff0c;可以自动批量生成各种类型的文章&#xff0c;为用户提供了便利和效率。本文将介绍5款不同的GPT批量工具&#xff0c;并介绍一款知名的147GPT生成工具&#xff0c;以及另外一款…

c++/c图的邻近矩阵表示

#include<iostream> using namespace std;#define MaxVerterNum 100 typedef char VerterType; typedef int EdgeType; typedef struct {VerterType vexs[MaxVerterNum]; // 存储顶点EdgeType edges[MaxVerterNum][MaxVerterNum]; // 存储邻接矩阵int n, e; // 顶点数和边…

netlink原理及应用

什么是netlink netlink是一种基于网络的通信机制&#xff0c;允许内核内部、内核与用户态应用之间甚至用户态应用之间进行通信&#xff1b;netlink的主要作用是内核与用户态之间通信&#xff1b;它的思想是&#xff0c;基于BSD的socket使用网络框架在内核和用户态之间进行通信…