Linux系统基础——内存管理

news2024/11/20 18:40:15

Linux系统内存管理

特此说明: 刘超的趣谈linux操作系统是比较重要的参考资料,本文大部分内容和所有图片来源于这个专栏。

1 物理内存

物理内存根据 NUMA 架构分节点。每个节点里面再分区域。每个区域里面再分页。
物理内存页通过伙伴系统进行分配。进程通过虚拟地址访问。kwapd可以根据物理页面的使用情况对页面换入换出。

在这里插入图片描述

2 虚拟内存

虚拟内存,每个进程都有自己独有的内存空间(进程空间),从进程的角度可划分进程空间为用户空间和内核空间。
1、进程用户态虚拟地址空间布局:有存放二进制可执行代码的Text段、存放静态常量的Data段、存放未初始化静态变量的BSS段。
2、进程在内核态布局空间是独一份:存放内核活动需要的代码和数据。

在这里插入图片描述

3 空间映射

分段机制: 基于虚拟内存中将内存空间分成多个段空间,同样也把物理内存分成多个段空间,通过段基地址+段内偏移量+段表实现虚拟内存和物理内存的映射关系。
分页机制: 将物理空间和虚拟空间分别划分成一个个页空间,虚拟地址通过页号和页内偏移+页表实现映射。另外,内存紧张时可以将暂时不用的页换出到硬盘空间,需要时再换入到内存空间。

在这里插入图片描述

4 缺页异常

产生缺页异常的本质原因是物理页没有分配到内存或者没有在页表中建立有效映射关系。通常三种情况:一种是匿名页,一种是文件映射,一种是物理页被换出
待补充

9 References

  • https://time.geekbang.org/column/article/94926

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

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

相关文章

xv6 源码调试环境搭建

一、资源 官网:https://pdos.csail.mit.edu/6.828/2022/ 二、搭建 xv6 调试环境 1、下载 xv6 源码 git clone git://github.com/mit-pdos/xv6-riscv.git2、安装工具链 特别说明:ubuntu 仓库中已经提供,可直接安装。 1、从 ubuntu 仓库中…

前端小知识:文本分句、词、字(Intl.Segmenter)

5. 文本分字、词、句 参考文章: https://mp.weixin.qq.com/s/MLmi-Yoi9sez8-5DPtcBVw   官方文档(构造参数): https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter/Segmenter   …

Redis系列:深刻理解高性能Redis的本质

1 背景 分布式系统绕不开的核心之一就是数据缓存,有了缓存的支撑,系统的整体吞吐量会有很大的提升。通过使用缓存,我们把频繁查询的数据由磁盘调度到缓存中,保证数据的高效率读写。 当然,除了在内存内运行还远远不够&…

Linux系统基础——BIOS和Bootloader

BIOS和Bootloader 特此说明: 刘超的趣谈linux操作系统是比较重要的参考资料,本文大部分内容和所有图片来源于这个专栏。 1 了解背景 1.1 目的 操作系统不是在板子上电就直接运行的,上电到系统启动的中间过程要搞明白,比如了解linux系统启动…

12月24日:数据结构

Btree结构 ​​​​​​ BTree和BTree详解_菜鸟笔记的博客-CSDN博客_btree 简单的说一下什么是聚簇索引 , 和非聚簇索引有啥区别 聚簇索引:索引和数据存储放在了同一个文件中,找到了索引也就能找到数据 非聚簇索引:将数据存储和索引分开放置…

AAAI2023 | 户外超大规模场景数据如何生成?READ告诉你答案(浙大阿里巴巴)

点击下方卡片,关注“自动驾驶之心”公众号ADAS巨卷干货,即可获取点击进入→自动驾驶之心【多传感器融合】技术交流群后台回复【READ】获取论文和代码!!!摘要合成自由视角真实感图像是多媒体领域的一项重要任务。随着高…

最长上升子序列(详解二分优化)

最长上升子序列一、题目描述二、思路分析1、问题分析2、思路分析(1)状态转移方程状态表示状态转移(2)循环设计三、代码实现一、题目描述 二、思路分析 1、问题分析 其实这道题第一个思路就是深度优先搜索,类似于全排…

一维树状数组

引入 树状数组和线段树具有相似的功能,但他俩毕竟还有一些区别:树状数组能有的操作,线段树一定有;线段树有的操作,树状数组不一定有。但是树状数组的代码要比线段树短,思维更清晰,速度也更快&a…

设计模式-命令模式

将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作 命令模式( Command Pattern) 是对命令的封装,每一个命令都是一个操作:请求的一方 发出请求要求执行…

DIDL1_基础优化算法

基础优化算法梯度下降选择学习率小批量随机梯度下降选择批量大小Batch_size总结梯度下降 挑选一个初始值w0w_0w0​重复迭代参数 t1,2,3 wtw_twt​等于上一个时刻wt−1w_t-1wt​−1减去一个(学习率标量和损失函数关于wt−1w_t-1wt​−1处的梯…

【20天快速掌握Python】day12-文件操作

1.文件的打开与关闭 想一想: 如果想用word编写一份简历,应该有哪些流程呢? 打开word软件,新建一个word文件 写入个人简历信息 保存文件 关闭word软件 同样,在操作文件的整体过程与使用word编写一份简历的过程是很相…

B树(B-树) [数据结构与算法][Java]

B树 B树又称为多路平衡树查找树, 是一种组织和维护外存文件系统非常有效的数据结构 因为我们的二分搜索树构建的时候很可能会出现不平衡的情况, 所以我们提出了自平衡二分搜索树(AVL树)对我们的普通的二分搜索树进行了一个优化, 而自平衡二分搜索树中当元素很多的时候树的高度…

Axure绘制密码输入框

当我们在绘制登录页面时,如果登录方式包含账号密码登录,那么我们就会使用到密 码输入框,而常见的密码输入框,通常会使用到小眼睛控制密码的明文和密文显示。 大家知道axure中的输入框,当你设置成密码类型时&#xff…

结构体内存对齐问题

结构体重点😃 1.结构体内存对齐问题,是在计算结构体的大小时,对结构体成员在内存中的位置进行研究的问题。 废话不多说,先看两个例子: 例题1: struct S1 {char c1;int age;char c2; };int main() {struc…

Spring Cloud Alibaba 2022.0.0.0 版本发布啦!

01新版本预览Aliware本次发布的 Spring Cloud Alibaba 2022.0.0.0-RC1 版本,是基于社区 2022.x 主干分支进行构建发布第一个 Release Candidate(RC)版本,考虑到本次版本升级属于重大版本变更,因此暂时先以 RC 版本形式…

如何不改一行代码,让Hippy启动速度提升50%?

导读|Hippy使用JS引擎进行异步渲染,在用户从点击到打开首屏可交互过程中会有一定的耗时,影响用户体验。如何优化这段耗时?腾讯客户端开发工程师李鹏,将介绍QQ浏览器通过切换JS引擎来优化耗时的探索过程和效果收益。在分…

雷神科技在北交所上市首日破发:上半年业绩下滑,路凯林为董事长

12月23日,青岛雷神科技股份有限公司(下称“雷神科技”,BJ:872190)在北京证券交易所(即北交所)上市。本次上市,雷神科技的发行价为25.00元/股,发行数量为1250万股,发行后总…

2023春季招聘面试集锦:MYSQL数据库高频面试题

mysql索引的数据结构,各自优劣 索引的数据结构和具体存储引擎的实现有关,在MySQL中使用较多的索引有Hash索引,B树索引等, InnoDB存储引擎的默认索引实现为:B树索引。对于哈希索引来说,底层的数据结构就是…

Dubbo(尚硅谷)学习笔记1

我们的dubbo需要一个注册中心也就是我们的zookeeper。 我们先把zookeeper搭建起来: 我这里是用的zookeeper3.3.4当然想用其它版本的也可以去官网去找。 我们运行这个文件: 第一次是会运行失败,所以我们还是找到这个文件 把下面的文件复制一…

小学生要学python开发游戏吗

小学生要学python开发游戏吗    小学生要学python开发游戏吗?为什么 而学, 到底需要如何做到, 又该如何学习. 就我个人来说, 小学生要学python开发游戏吗很有意义, 不能不说非常重大.    一般来讲, 我们都必须务必慎重的考虑考虑. 莎士比亚在不经意间这样说过&a…