九.虚拟内存VM

news2025/7/16 11:06:28

1.寻址

2.虚拟页

VM将虚拟内存分割为称为 虚拟页的大小固定的块
1247是缓存的、36是未缓存的、05是未分配的
下图为缺页及处理后
页表将虚拟页映射到物理页
页表是一个页表条目( PTE)的数组
多个虚拟页面可以映射到同一个物理共享页面
内存映射:将一组连续的虚拟页映射到一个文件中的任意位置的表示法
如果工作集的大小超出了物理内存的大小,页面将不断换进换出,即抖动

3.地址翻译

PPO=VPO
在MMU中包括一个关于PTE的小的缓存,称为翻译后备缓冲器( TLB )
若TLB有个组,则TLBI由VPN的低t位组成,TLBT由VPN的其他位组成

多级页表

4.内存映射

将一个虚拟内存区域与一个磁盘上的对象关联,以初始化这个虚拟内存区域的内容
匿名文件:内核创建,包含是全是二进制0
用二进制0覆盖牺牲页面并更新页表,将这个页表标记为是驻留在内存中的。
私有对象的写时复制
在物理内存中创建这个页面的一个新副本,更新页表条目指向这个新的副本,然后恢复这个页表的可写权限
fork将两个进程的每个页面都标记为只读、区域结构标记为写时复制。
在新进程返回时,虚拟内存相同,对任一个执行写操作时,写时复制创建新页面,因此为每个进程保持了私有地址空间的概念
execve("a.out", NULL ,NULL);
在当前进程中加载并运行a.out中的层序,用其替代当前程序。
删除已存在的用户区域、映射私有区域、映射共享区域、设置PC
void *mmap(void *start, size_t length, int prog, int flags, int fd, off_t offset);
mmap和函数创建新的虚拟内存区域,并将对象映射到这些区域中
start通常设为NULL
prog为访问权限位:CPU执行、可读2、可写、不能访问
flags描述映射对象类型的位组成:匿名对象、私有写时复制对象、共享对象
int munmap(void *start, size_t length);
删除虚拟内存区域,成功为0,失败为-1

5.动态内存分配

分配内存块时会 对齐
malloc不初始化它返回的内存
calloc将内存初始化为0
realloc可以改变一个以前已分配的块的大小
内部碎片:已分配块比有效载荷大
外部碎片:空闲内存合计足够满足分配请求,但单独哪个都不足够
隐式空闲链表:空闲块通过头部中的大小字段隐含地连接
假碎片:其他空闲块与新释放的空闲块相邻,就是有许多可用的空闲块被分割成小的、无法用的
边界标记:每个块的结尾加一个脚部,存放块大小和是否空闲,以便合并空闲块
显式空闲链表
分类存储:维护多个空闲链表,所有块分成一些等价类,即 size class(大小类)
简单分离存储:每个片大小相等,不分割,不合并,每个块内存开销很小,容易产生碎片
分离适配:块的大小不同,,做首次适配查找合适的块
伙伴系统:每个size class的大小是2的幂,递归地二分割

6.垃圾收集

标记:根节点的所有可达的和已分配的后继
垃圾:未标记的已分配块

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

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

相关文章

蓝牙耳机哪个品牌好一点?佩戴最舒服的蓝牙耳机排行

近年来,蓝牙耳机市场呈爆发式增长,越来越优秀的产品出现在大众视野。那么蓝牙耳机哪个品牌好一点?下面,我来给大家推荐几款佩戴最舒服的蓝牙耳机,一起来看看吧。 一、南卡小音舱蓝牙耳机 参考价:246 蓝牙…

一文带你彻底探究webgis坐标系知识(地理坐标系投影坐标系)

首先讲讲经纬度坐标系的起源与发展。其实目的很简单就是为了用数字化的方式来表示我们的地球和世界。 真正意义上与webgis相关的坐标系我们还得先来说说wgs84坐标系。这是老美1984年提出的一套坐标系。故命名为84坐标系。84坐标系是目前应用范围比较广的坐标系,但他并不是最早…

Elasticsearch:理解 Master,Elections,Quorum 及 脑裂

集群中的每个节点都可以分配多个角色:master、data、ingest、ml(机器学习)等。 我们在当前讨论中感兴趣的角色之一是 master 角色。 在 Elasticsearch 的配置中,我们可以配置一个节点为 master 节点。master 角色的分配表明该节点…

人机协同“全能秘书”丨 AI+金融“降本增效”全靠它!

近年来,我国金融科技蓬勃发展,以人工智能为主要代表的创新技术,为各大金融企业提供了更智能化的金融服务模式,科技与金融业务的深度融合,为金融行业注入新的发展动力。相比较传统人工客服,智能客服以算法为…

函数模板(template关键字的应用)

注释:本文主要介绍了函数模板的由来以及用法,还有关键字template。 我们感到时间的延续像一条我们无法逆行的小溪。 ——柏格森 文章目录一、语言的定式二、函数模板2.1 函数模板格式2.2 模板函数的实例化2.2.1隐式实例化/显式实例化2.3 模板参数的匹配…

SQL注入——floor报错注入

目录 一,涉及到的函数 rand() floor() concat_ws() as别名,group by分组 count() 报错原理 一,涉及到的函数 rand()函数:随机返回0~1间的小数 floor()函数:小数向…

C/C++开发,无可避免的多线程(篇六).线程池封装类

一、线程池概念 线程池是一种多线程处理方式,它包含一个线程工作队列和一个任务队列。当有任务需要处理时,线程池会从线程工作队列中取出一个空闲线程来处理任务,如果线程工作队列中没有空闲线程,则任务会被放入任务队列中等待处理…

M1、M2芯片Mac安装虚拟机

目录前言一、安装二、网络设置三、连接SSH客户端前言 一直想着给M1 Mac上安装虚拟机,奈何PD收费,找的破解也不稳定,安装上镜像就起不来。 注:挂长久的分享莫名其妙被封,需要安装包请私信我。 一、安装 虚拟机选择&a…

一次惨痛教训让我写了个Windows定期备份文件脚本

目录前言正文前言 说实话在写这篇文章的时候,咸鱼不禁又想起了那件男默女泪的往事 我喜欢做笔记,我觉得好记性不如烂笔头,所以在我的学习生涯以及职业生涯阶段,我用过四款笔记应用——Onenote、语雀、印象笔记、Typora 其中我个…

Nacos配置中心,分组配置参考,以及python、go、bash客户端连接获取

Nacos使用说明 nacos官方网站 https://nacos.io/zh-cn/docs/v2/what-is-nacos.html 1、基本配置说明 nacosIP地址:http://xxxxx:8848/nacos/ 服务管理端登录账号:nacos XXX Java最小配置,其他客户端可参考,配置可对应到第三章…

【动态规划】

动态规划1引言题目509. 斐波那契数70. 爬楼梯746. 使用最小花费爬楼梯小结53. 最大子数组和结语引言 蓝桥杯快开始了啊&#xff0c;自从报名后还没认真学过算法有(>﹏<)′&#xff0c;临时抱一下佛脚&#xff0c;一起学学算法。 题目 509. 斐波那契数 斐波那契数 &am…

你来看看这几行代码到底创建了几个字符串?

&#x1f497;推荐阅读文章&#x1f497; &#x1f338;JavaSE系列&#x1f338;&#x1f449;1️⃣《JavaSE系列教程》&#x1f33a;MySQL系列&#x1f33a;&#x1f449;2️⃣《MySQL系列教程》&#x1f340;JavaWeb系列&#x1f340;&#x1f449;3️⃣《JavaWeb系列教程》…

Java中对象的finalization机制

本篇文章我们详细介绍Java中对象的finalization机制&#xff0c;以及怎么使用finalize()方法&#xff0c;将即将被回收的对象&#xff0c;拉回来。1、finalization机制Java语言提供了对象终止&#xff08;finalization&#xff09;机制来允许开发人员提供对象被销毁之前的自定义…

Spring的Async注解线程池扩展方案

目录- [Spring的Async注解线程池扩展方案]- [目录]- [1. 扩展目的]- [2. 扩展实现]- [2.1 扩展Async注解的执行拦截器AnnotationAsyncExecutionInterceptor]- [2.2 扩展Async注解的Spring代理顾问AsyncAnnotationAdvisor]- [2.3 扩展Async注解的 Spring Bean 后置处理器AsyncAn…

Linux安装及管理应用和账号和权限管理 讲解

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a;小刘主页 ♥️每天分享云计算网络运维课堂笔记&#xff0c;努力不一定有收获&#xff0c;但一定会有收获加油&#xff01;一起努力&#xff0c;共赴美好人生&#xff01; ♥️夕阳下&#xff0c;是最美的绽放&#xff0…

不系统学习NodeJs之进程线程

不系统学习NodeJs之进程线程 从工作期间断断续续接触Node&#xff0c;从去年的3月份、10月份、又到今年的3月份&#xff0c;终于又决定要再仔细看看Node的相关。 不系统学习的各种时期笔记&参考记录于此。 参考&#xff1a; Node.js 中文网 一篇文章构建你的 NodeJS 知识…

BIC高颜值在线绘图新增颜色集合本地存储功能

用户可以把自己选择的颜色集合存储在自己浏览器本地(鼠标滑过颜色名字可以显示具体代表哪些颜色和色号)&#xff0c;供同一个工具的多套数据使用或者在不同工具之间共享颜色集合的使用&#xff0c;统一多张图一致的配色。最新访问地址&#xff1a;https://www.bic.ac.cn/BIC/ &…

JavaWeb—CSS

目录 &#xff11;、CSS 技术 &#xff11;.&#xff11;、CSS 技术介绍 &#xff11;.&#xff12;、CSS 语法规则&#xff1a; &#xff11;.&#xff13;、CSS 和 HTML 的结合方式 &#xff11;.&#xff13;.&#xff11;、第一种&#xff1a; &#xff11;.&#xf…

Iterator 迭代器

迭代器 为了兼顾 各个子类的特性 实现无差别可以 访问数据 举个例子 遍历数组和遍历链表 两者代码的写法不一样 为了实现 使用相同的代码 对不同的数据容器进行遍历 就出现了 迭代器 for语句的执行和 interator的实现息息相关 目的 访问各个类型 集合 的数据&#xff…

Spring源码解析-Spring 循环依赖

Spring源码解析简图&#xff1a; Spring 如何解决循环依赖&#xff0c;⽹上的资料很多&#xff0c;但是感觉写得好的极少&#xff0c;特别是源码解读⽅⾯&#xff0c;我就⾃⼰单独出⼀ 篇&#xff0c;这篇⽂章绝对肝&#xff01; 文章目录&#xff1a; 一. 基础知识 1.1 什么…