20、深入理解计算机系统笔记,虚拟存储器,基本原理(2)-阿里云开发者社区

开发者社区> hopegrace> 正文

20、深入理解计算机系统笔记,虚拟存储器,基本原理(2)

简介: 2)页命中 3)缺页 DRAM缓存不命中称为缺页(page fault)。 VM page fault (before). The reference to a word in VP 3 is a miss and triggers a page fault.
+关注继续查看

2)页命中

wps_clip_image-2283

3)缺页

DRAM缓存不命中称为缺页(page fault)。

wps_clip_image-32142

VM page fault (before). The reference to a word in VP 3 is a miss and triggers a

page fault.

wps_clip_image-20798

VM page fault (after). The page fault handler selects VP 4 as the victim and

replaces it with a copy of VP 3 from disk. After the page fault handler restarts the

faulting instruction, it will read the word from memory normally, without generating

an exception.

在虚拟存储器的习惯用法中,块被称为页。在磁盘和存储器之间传送页面的活动收做交换(swapping)或者页面调度(paging)。一直等待,直到最后时刻,也就是当有不命中发生时,才换入页面的这种策略被称为换需页面调度(demand paging)。

4)分配页面

wps_clip_image-7248

Allocating a new virtual page. The kernel allocates VP 5 on disk and points PTE

5 to this new location.

6)利用unixgetrusage函数监测缺页的数量。

6、虚拟存储器作为存储器管理的工具

OS为每个进程提供一个独立的页表,因而也就是一个独立的虚拟地址空间。

wps_clip_image-6117

How VM provides processes with separate address spaces. The operating maintains a

separate page table for each process in the system.

1)简化链接

每个linux进程都使用如图示格式。

wps_clip_image-16696

    用户栈总是从虚拟地址0xbfffffff向下伸展。程序总是从虚拟地址0x08048000处开始,共享对象总是加载在从虚拟地址0x4000000处开始的区域。

2)简化共享

一般,每个进程都有自己私有的代码,数据,堆,栈区域,是不和其他进程共享页面的。

然而,在一些情况下,还是需要进程来共享代码,数据,如内核代码,C的库函数。OS通过将不同进程中适当的虚拟页面映射到相同的物理页面,从而安排多个进程共享这部分代码的一个拷贝。

3)简化存储器分配

当一个运行在用户进程中的程序要额外堆空间时,OS分配一个适当数字,如k个连续的虚拟地址空间,并且将它们映射到物理存储器中任意位置的k个任意的物理页面(不必要连续,可以是分散地分配)。

4)简化加载

映射一个连续虚拟页面的集合到任意一个文件中的任意一个位置的概念叫做存储器映射(memory mapping)。

7、虚拟存储器作为存储器保护的工具

wps_clip_image-6584

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
云服务器ECS首次使用体验
自我简介,在阿里云官网参与飞天加速计划,在校大学生免费领取为期两周的服务器,阿里云ECS的使用攻略,实现了文章图片上传功能,云服务器ECS使用期间的收获和总结,以及自己对未来的展望。
24 0
ECS使用体验
阿里云开发者社区里不光有着丰富的知识,还有着十分优秀的性能和非常优秀的服务!他的优点还很多,对于我来说他的优点,是可以花费很少的钱去学习,性价比高,里面的知识丰富,我很需要。 还有的就是,我使用阿里云,感觉非常省力,不需要花时间担心卡掉或死机的问题。
5 0
ECS体验
阿里云使用起来,非常省力。不需要花时间维修服务器硬件,有阿里监控服务器,让我很放心。 阿里云服务器稳定,不会出现异常关机等掉线状况。 阿里云服务器非常安全,不会出现安全问题。 阿里云的价格也非常的亲民,非常省钱,尤其对我们学生用户非常友好。
5 0
ECS初体验
介绍得到阿里云ECS后,怎么将毕设部署到服务器中。
24 0
项目中用了 Disruptor 之后,性能提升了2.5倍
存储设备往往是速度越快价格越昂贵,速度越快价格越低廉。在计算机中,CPU 的速度远高于主存的速度,而主存的速度又远高于磁盘的速度。为了解决不同存储部件的速度不对等问题,让高速设备充分发挥性能,引入了多级缓存机制。
8 0
编码 5 分钟,命名 2 小时?Java 开发都需要参考的一份命名规范!
简洁清爽的代码风格应该是大多数工程师所期待的。在工作中笔者常常因为起名字而纠结,命名已经成为我工作中的拦路虎,夸张点可以说是编程5分钟,命名两小时!
11 0
不要再封装各种 Util 工具类了,这个神级框架值得拥有!
Hutool 谐音 “糊涂”,寓意追求 “万事都作糊涂观,无所谓失,无所谓得” 的境界。 Hutool 是一个 Java 工具包,也只是一个工具包,它帮助我们简化每一行代码,减少每一个方法,让 Java 语言也可以 “甜甜的”。Hutool 最初是我项目中 “util” 包的一个整理,后来慢慢积累并加入更多非业务相关功能,并广泛学习其它开源项目精髓,经过自己整理修改,最终形成丰富的开源工具集。(FROM 自作者简介)
4 0
Mac mini M1 上成功启动 Ubuntu
从上周末起,Corellium 就开始发布他们在 Apple M1 上的 Linux 启动工作。现在,他们已经可以在 Mac mini M1 通过 USB 启动完整的 Ubuntu桌面。并且,Corellium 开发人员已经在 Linux 邮件列表中发表了该系列的 7 个补丁,这些是使 Linux 在当前的基于 Apple M1 ARM 的硬件上启动所需的最小更改。该系列补丁内容如下:
9 0
Docker从入门到上瘾
Linux容器是与系统其他部分隔离开的一系列进程,从另一个镜像运行,并由该镜像提供支持进程所需的全部文件。容器提供的镜像包含了应用的所有依赖项,因而在从开发到测试再到生产的整个过程中,它都具有可移植性和一致性。
8 0
为什么要放弃 JSP ?
以前的项目大多数都是Java程序猿又当爹又当妈,既搞前,又搞后端。 随着时代的发展,渐渐的许多大中小公司开始把前后端的界限分的越来越明确,前端工程师只负责前端的事情,后端工程师只管后端的事情。正所谓术业有专攻,一个人如果什么都会,那么每一样都很难达到精通。
3 0
+关注
698
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载