Linux进程地址空间第三讲

在这里插入图片描述
至今为止, 我们所学到的大多数的知识, 包括语言, 数据结构, 动静态库等等的 都是在下面这3G, 也就是用户空间里的(进程等待, 信号之类的与内核有关的是在上面那1G里的)

所以对于我们来说, 我们并没有怎么接触上面的这些部分。

上面这部分(1G)映射的是操作系统的代码和数据

用户级页表和内核级页表

用户空间通过用户级页表映射到自己的代码和数据, 而内核空间通过内核级页表映射到操作系统的代码和数据

对于每一个进程 每个进程都需要有自己的用户级页表, 而内核级页表只有1份所以, 每一个进程的内核级空间对应的数据是一样的, 所以进程在切换的时候内核空间的内容其实是不变的

在这里插入图片描述
解释一下第三句话, 第三句话的意思就是 操作系统如果想执行自己的代码, 可以通过进程的PCB找到进程的地址空间然后执行对应的代码, 因为操作系统中一定有正在运行的进程。

操作系统的本质: 是一个基于时钟中断的一个死循环。

操作系统中有一个时钟芯片, 他会每隔很短很短的时间向计算机发送时钟中断, 而一旦被CPU接受到, 就会根据中断向量表去执行对应的方法, 这个方法就可能是操作系统中的某个方法。

举个例子:

我们CPU在调度进程的时候, 如果此时接收到了时钟中断, 就会将该进程剥离下来, 接着执行下一个进程。

用户态和内核态

CPU里面有一个CR3寄存器, 它里面存放的是用户级页表的地址(物理地址)
在这里插入图片描述
CPU里面还有一个寄存器ecs 他的低两位表示CPU当前的工作模式
在这里插入图片描述
其中 00 表示内核态 11 表示用户态

所以我们来个总结
内核态: 允许你访问操作系统的代码和数据
用户态: 只能访问你自己的代码和数据
我们在调用系统调用的时候, 我们的操作系统会吧ecs的低2位设为00, 然后在仅此地址空间里的内核空间找到对应的代码然后执行就可以了。

信号的检测和处理的流程图

在这里插入图片描述

在这里插入图片描述

那么我们就有个问题, 如何我们的代码全是自己写的内容, 没有系统调用呢? 此时怎么进行信号的检测和处理呢?

由于我们的进程是在被不断的调度的, 当我们的进程被调度的时候, 操作系统会把进程的PCB 地址空间, 页表等等拿到CPU上, 此时肯定是内核态的, 然后开始执行代码时 又是用户态的, 所以这之间一定存在 内核态向用户态的转变, 也就一定会进行信号的检测和处理。

所以 不仅仅是系统调用会让进程从用户态变成内核态

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

NXP i.MX8系列平台开发讲解 - 1.1 导读前言

专栏文章目录传送门:返回专栏目录 文章目录 目录 1. 本专辑介绍 2. 学习本专辑作用 3.关于作者 1. 本专辑介绍 本专辑将会介绍Linux 驱动开发,Android BSP 驱动涉及HAL层调试,适用于嵌入式软件开发人员,和有兴趣向该方向发展…

题目----力扣--移除链表元素

题目 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 示例 1: 输入:head [1,2,6,3,4,5,6], val 6 输出:[1,2,3,4,5]示例 2: 输入&…

1-2 ARM单片机GPIO

def:通用输入输出口 GPIO输出模式原理讲解 1:推挽输出 2:复用推挽输出 电流最大是20mA,对于单片机来说总体的输出是由范围的 开漏/复用开漏输出 外部接上拉电阻的开漏输出 线与的概念 注: 与的概念:全1为1&…

动态内存开辟(下)

前言 动态内存开辟以及柔性数组的介绍 一、 几个经典的笔试题 1. 题目一 void Getmemory(char*p) {p (char*)malloc(100); } int main() {char* str NULL;Getmemory(str);strcpy(str, "hello world");printf(str);return 0; } 这段代码我们可以发现两个很明显…

2-5 任务:打印九九表

本次实战的目标是通过编写程序实现打印九九乘法表、字符矩形、字符平行四边形和字符菱形等图形,以及解决百钱买百鸡问题和输出素数等实际问题。在实战过程中,我们将学习并掌握以下知识点。 双重循环的使用:通过双重循环实现九九乘法表的打印&…

视频素材库在哪里找免费手机版?8个可以用手机浏览的素材网

在视觉内容占据主导地位的今天,合适的视频素材可以大大提升项目的吸引力和效果。以下列出的视频素材网站为广告制作者、社交媒体策略师及电影制作人提供了从传统到现代风格的各种视频素材选择,满足不同的创作需求。 1. 蛙学府(中国&#xff…

大模型系列之解读MoE

Mixtral 8x7B 的推出, 使我们开始更多地关注 基于MoE 的大模型架构, 那么,什么是MoE呢? 1. MoE溯源 MoE的概念起源于 1991 年的论文 Adaptive Mixture of Local Experts(https://www.cs.toronto.edu/~hinton/absps/jjn…

艺术的新领域——探索元宇宙艺术展带来的沉浸式艺术体验

在数字化的浪潮中,元宇宙艺术展成为了一种全新的展览形式,它通过虚拟现实、3D建模技术和互动平台,将传统艺术与现代科技巧妙结合,提供了一种前所未有的艺术欣赏方式。此类展览不仅展示了艺术作品的新颖呈现,还为参观者…

京东生产环境十万并发秒杀系统三高架构

文章目录 三高——高并发、高可用、高可扩展用数据库乐观锁解决超卖阿里巴巴:为了提升数据库性能,对数据库的源码级别做了改造——在DB内部实现内存队列,一次性接收很多的请求,一次性更新。京东:redis,mq&a…

【C++ 关键字】const 关键字详解

文章目录 1. const 概念2.常量指针 和 指针常量 的区别2.1 常量指针(底层 const)2.2 指针常量 (顶层 const) 3.const 关键字的作用4.const 和 define 的区别5.const 总结 1. const 概念 const 是一个关键字,被修饰的值不能改变,是…

AI模型:windows本地运行下载安装ollama运行Google CodeGemma可离线运行数据模型【自留记录】

AI模型:windows本地运行下载安装ollama运行Google CodeGemma可离线运行数据模型【自留记录】 CodeGemma 没法直接运行,需要中间软件。下载安装ollama后,使用ollama运行CodeGemma。 类似 前端本地需要安装 node.js 才可能跑vue、react项目 1…

字节和旷视提出HiDiffusion,无需训练,只需要一行代码就可以提高 SD 生成图像的清晰度和生成速度。代码已开源。

字节和旷视提出HiDiffusion,无需训练,只需要一行代码就可以提高 SD 生成图像的清晰度和生成速度。代码已开源。 支持将图像生成的分辨率提高至40964096,同时将图像生成速度提升1.5至6倍。 支持所有 SD 模型同时也支持 SD 模型的下游模型&…

在Unity中实现分页数据显示和分页控制

参考:用两种简单的方式实现unity的分页效果 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.Rendering.VirtualTexturing; using UnityEngine.TerrainUtils;public class PageControll…

上网行为审计软件分享|三款热门上网行为监控软件推荐

“小王,去找一款软件给我们公司安上,你去搜上网行为审计软件,看看买哪家合适” 这是某公司老板交给助理的一项工作,原话是这样的。 可见其实这类软件大多是人还是比较陌生的。 上网行为审计软件顾名思义就是对上网行为也就是电…

PTA|小字辈

题目 本题给定一个庞大家族的家谱,要请你给出最小一辈的名单。 输入格式: 输入在第一行给出家族人口总数 N(不超过 100 000 的正整数) —— 简单起见,我们把家族成员从 1 到 N 编号。随后第二行给出 N 个编号&#x…

streamlit通过子目录访问

运行命令: streamlit hello 系统默认使用8501端口启动服务: 如果想通过子目录访问服务,可以这么启动服务 streamlit hello --server.baseUrlPath "app" 也可以通过以下命令换端口 streamlit hello --server.port 9999 参考&…

面试题:String类型长度有限制吗?最大多少?

简介 Java中String是有长度限制的。String还有长度限制?是的有,而且在JVM编译中还有规范,String长度限制的场景(将某固定文件转码成Base64的形式用字符串存储,在运行时需要的时候在转回来,当时文件比较大),那这个规范限制到底是怎么样的,我们分析下。 …

Unreal游戏GPU参数详解,游戏性能优化再升级

UWA GOT Online For Unreal GPU模式近期全新发布,方便开发者从渲染和带宽的角度进行GPU分析。同时,此次更新中UWA也增加了丰富的GPU参数,涵盖了GPU SoC和GPU Counter模块。这些新增的参数不仅能够帮助Unreal开发者从宏观层面监控GPU的压力状况…

12V系统车灯电源口浪涌过压防护方案及保护器件选型推荐

12V系统车灯驱动电源口浪涌过压防护方案图 12V系统车灯驱动电源口浪涌过压防护方案详解 从图中可知,方案针对车灯驱动电路电源输入口的浪涌过压保护。在车载12V系统中,电源线上面的瞬态浪涌主要来源于抛负载。在12V系统车灯驱动电源输入端,东…

怎么把图片尺寸在线修改?5种方法调整方式介绍

在日常生活和工作中,我们经常遇到需要调整图片尺寸的情况,无论是为了适应自媒体文章内容中的图片、还是上传社交媒体平台要求,调整图片尺寸是一项非常有用的技能。在本教程中,我们将介绍几个方便快捷的图片处理工具,帮…