一文说透虚拟内存

为什么我们需要虚拟内存

提供一个虚拟化封装,让上层的程序员不用担心内存分配,物理地址的总大小。同时如果要手动管理内存是一件麻烦的事,比如一个程序读到另一个程序的物理地址,并且也很难保障多个处理器不会同时读取写入同一块物理地址,同时page table上也可以记录下对页的访问权限。

 

虚拟内存的定义

Give the programmer the illusion of a large address space while having a small physical memory

就是利用小块空间,并且软硬件结合来给程序员一个错觉-----我们有一个大到用不完的空间,并且对每个处理器来说都是这样。

虚拟内存的实现

比如我们有2^31的虚拟地址和2^27的物理地址,然后都有12bit的page offset,也就是4kb一个页

 

那我们怎么完成这个地址的转换呢?

通过一个page table。

VPN就是page table entris的编号,然后page table entires存了物理地址PPN,然后两个共用一个offset,这样就组成了物理地址,就可以去内存中寻址了。

同时为了确定在不在内存里面,或者还没有分配,多了一个valid bit。

但是这样的话,load和store,已经取instruction都要先到内存里面访问page table然后再访问物理地址。这样就进行了两次内存访问。

所以我们有了TLB(translation lookside buffer)也就是把一部分的page table缓存在cache里面,来加快访问。这样做有可行性------因为pc一般都是+4,而一个page又很大,有4kb,也就是支持1000条取指令。硬件如下。

 

 同时多个processor都独自拥有page table,可以不用担心别的处理器会对其产生影响,也可以通过一些库来共享physical page。Using different page tables for different programs provides memory protection。

软硬件的分工

 

当page hit的时候,处理器发送地址给MMU,然后MMU到内存或者cache中取物理地址,然后到内存中取数据。

 

发生了page fault,第四步触发了异常,然后异常处理程序,就从disk取page,然后重新执行。

物理页替换算法

因为如果要严格的LRU的话,要保存全局访问顺序,开销太大。我们就用一个bit来粗劣的估计

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

GitHub Action 使用

GitHub Action 使用 GitHub Actions 是一种持续集成和持续交付 (CI/CD) 平台,可用于自动执行生成、测试和部署管道。 您可以创建工作流程来构建和测试存储库的每个拉取请求,或将合并的拉取请求部署到生产环境。GitHub 提供 Linux、Windows 和 macOS 虚拟…

训练AI数据模型所需要的高性能计算机配置

目录 配置一 配置二 配置三 云服务器和超级计算机 AI模型训练是一种机器学习的过程,通过训练深度学习模型来自动化处理数据和完成任务。AI训练可以帮助企业和研究人员开发出更加智能、高效的应用,从而提高生产力和创新能力。 以下是按训练性能从低到…

对挖矿病毒 kdevtmpfsi 的处理办法

需求背景: 服务器CPU资源使用一直处于100%的状态,通过 top 命令查看,发现可疑进程 kdevtmpfsi。通过 google搜索,发现这是挖矿病毒。 排查方法 首先:查看 kdevtmpfsi 进程,使用 ps -ef | grep kdevtmpfsi …

数据结构之线性表

文章目录1. 线性表的定义2. 线性表的抽象数据类型3. 线性表的顺序存储结构4. 线性表的链式存储结构5. 单链表结构和顺序存储结构优缺点6. 静态链表7. 循环链表8. 双向链表1. 线性表的定义 零个或多个数据元素的有限序列 线性表的定义中强调有限和序列两个方面。 有限&#xff…

华硕ROG|玩家国度 冰刃7双屏 GX650PY Windows11原厂预装系统 工厂模式恢复安装带ASUSRecevory一键还原

华硕ROG|玩家国度 冰刃7双屏 GX650PY Windows11原厂预装系统 工厂模式恢复安装带ASUSRecevory一键还原 文件地址:https://pan.baidu.com/s/1snKOsH3OMl3GZLqeAf-GLA?pwd8888 华硕工厂恢复系统 ,安装结束后带隐藏分区以及机器所有驱动软件 需准备一个…

【树】你真的会二叉树了嘛? --二叉树LeetCode专题Ⅲ

Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法......感兴趣就关注我吧!你定不会失望。 🌈个人主页:主页链接 🌈算法专栏:专栏链接 我会一直往里填充内容哒! &…

MySQL基础-变量/流程控制/游标/触发器

文章目录MySQL基础-变量/流程控制/游标/触发器一、变量1、系统变量2、用户变量二、流程控制1、分支语句2、循环语句3、跳转语句三、游标1、概念2、使用四、触发器1、触发器概念2、触发器使用3、触发器的优缺点MySQL基础-变量/流程控制/游标/触发器 一、变量 在MySQL数据库的存…

RocketMQ水平扩展及负载均衡详解

文章目录 Broker端水平扩展Broker负载均衡commit logProducer负载均衡Consumer负载均衡集群模式广播模式RocketMQ是一个分布式具有高度可扩展性的消息中间件。本文旨在探索在broker端,生产端,以及消费端是如何做到横向扩展以及负载均衡的。 Broker端水平扩展 Broker负载均衡…

前端项目-05-轮播图banner和Floor组件开发-全局轮播图组件抽取

目录 1-轮播图模块数据开发 2-floor组件开发 3-抽取全局轮播图组件 1-轮播图模块数据开发 轮播图需要用到swiper插件,先安装5.4.5版本的swiper:npm install --save swiper^5.4.5 --force 模拟从服务器获取数据; 1-编写mockRequests的js…

【ACWing算法课】二分查找

前言🍉 二分查找一个简单的算法,但是因为边界问题往往写不好。特此记录模板,以便快捷使用。 [二分查找]从列表q找到第一个>k的数,返回位置👑 [二分查找]从列表q找到第一个>k的数,返回位置def bsear…

three.js实现3d球体树状结构布局——树状结构的实现

目录系列文章安装依赖基本分析实体类场景相机渲染器辅助线环境光点光源球形几何体球形几何体的材质线几何体线几何体的材质物体文本轨道控制实现效果实现源码参考文档系列文章 three.js实现3d球体树状结构布局——添加入场、出场、点击放大等动画 安装依赖 npm i three three…

Adaptive AUTOSAR——Time Synchronization(VRTE 3.0 R21-11)

15 Time Synchronization 15.1 What is Time Synchronization? 时间同步是自适应平台基础中的一个功能集群。时间同步通过库向应用程序提供C API,该库作为RTA-VRTE入门套件的一部分提供,并与应用程序链接以访问该功能。 本版本包含非常少量的时间同步…

ASIC-WORLD Verilog(1)一日Verilog

写在前面 在自己准备写一些简单的verilog教程之前,参考了许多资料----asic-world网站的这套verilog教程即是其一。这套教程写得极好,奈何没有中文,在下只好斗胆翻译过来(加了自己的理解)分享给大家。 这是网站原文&…

Helm学习笔记

文章目录概念定义helm组件helm的工作流程helm安装helm仓库helm部署应用helm应用的更新或回退或卸载概念 定义 学习helm首先得了解helm是什么,我们先来看一下helm的定义:helm是将kubernetes的各种资源对象打包,类似于Linux中的yum工具&#…

【HTML系列】第六章 · 框架标签、HTML实体、HTML全局属性和meta元信息

写在前面 Hello大家好, 我是【麟-小白】,一位软件工程专业的学生,喜好计算机知识。希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正&#xff0…

【前端面试题——微信小程序】

目录1.请谈谈wxml与标准的html的异同?2.请谈谈WXSS和CSS的异同?3.请谈谈微信小程序主要目录和文件的作用?4.请谈谈小程序的双向绑定和vue的异同?5.简单描述下微信小程序的相关文件类型?6.微信小程序有哪些传值(传递数据…

jsp+javaEE+mysql校园物品租赁系统dzkf5294程序

1.物品信息管理:管理员发布物品信息后,普通用户便可以查询到该物品信息,用户选择某个物品信息,查询物品信息,管理员审核添加,或删除物品信息。 2.租赁管理:管理员发布租赁…

ChatGPT大解密:带您探讨机器学习背后的秘密、利用与发展

一、什么是机器学习?二、ChatGPT 的运作原理三、ChatGPT 生活利用1、自然语言处理2、翻译3、自动回复四、ChatGPT vs 其他相关技术五、ChatGPT 的未来1、未来发展2、职业取代3、客服人员4、翻译人员5、语言学家6、机遇与挑战六、结语这篇文章,将带着各位…

ThreeJS-投影、投影模糊(十七)

无投影&#xff1a; 完整的代码&#xff1a; <template> <div id"three_div"></div> </template> <script> import * as THREE from "three"; import { OrbitControls } from "three/examples/jsm/controls/Or…

再不转型为ChatGPT程序员,有遭受降维打击的危险

Open AI在演示GPT-4的时候&#xff0c;有这么一个场景&#xff1a;给一个界面草图&#xff0c;就可以生成网页代码。这个演示非常简单&#xff0c;如果界面原型比较复杂呢&#xff1f;像这样&#xff1a;ChatGPT能不能直接生成HTML, CSS,JavaScript代码&#xff0c;把这个网页给…
最新文章