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

目录
相关文章
|
存储 监控 Linux
zabbix使用snmp监控Linux主机(二十)
使用snmp监控Linux主机 1.snmp协议介绍 SNMP(简单网络管理协议)也是应用层的一种协议,默认端口号为161,我们平时监控Linux主机都是安装一个agent客户端进行监控,但是有的公司还需要监控网络设备和Windows主机,这时就不得不采用snmp协议去监控设备了
889 0
zabbix使用snmp监控Linux主机(二十)
|
消息中间件 机器学习/深度学习 存储
字节跳动大数据开发面试题-附答案 (一)
此面试题来自牛客网友分享的字节跳动应届一面,面试时长一小时。 网友情况:985 本硕。
2179 0
字节跳动大数据开发面试题-附答案 (一)
|
10月前
node环境之当我们遇到需要付费的依赖库@fortawesome/fontawesome-pro导致npm install无法进行怎么办-fontawesome-pro依赖库
node环境之当我们遇到需要付费的依赖库@fortawesome/fontawesome-pro导致npm install无法进行怎么办-fontawesome-pro依赖库
237 3
node环境之当我们遇到需要付费的依赖库@fortawesome/fontawesome-pro导致npm install无法进行怎么办-fontawesome-pro依赖库
|
Java 测试技术 API
SpringBoot单元测试快速写法问题之计算测试用例的分支覆盖率如何解决
SpringBoot单元测试快速写法问题之计算测试用例的分支覆盖率如何解决
|
自然语言处理 JavaScript 算法
【插件】IDEA这款插件,爱到无法自拔
本文介绍了阿里云「通义灵码」这一强大IDEA插件,它不仅能够智能生成代码、解答研发问题,还支持多种编程语言和编辑器。文章详细展示了如何安装使用该插件,并通过多个实际案例说明其在代码解释、优化、生成注释及单元测试等方面的应用,助力开发者提高效率。强烈推荐尝试!
449 1
【插件】IDEA这款插件,爱到无法自拔
|
监控 Serverless 云计算
迎接 Serverless 时代:机遇、挑战与未来展望
Serverless架构作为新兴的云计算范式,正在改变软件开发和部署的方式。它让开发者无需管理服务器即可构建和运行应用,具有成本效益、高开发效率和自动扩展等优势。本文探讨了Serverless架构的机遇与挑战,包括快速迭代、微服务支持和事件驱动模型,并分析了其面临的冷启动、状态管理和调试难题。未来,随着语言支持、集成工具和安全性的提升,Serverless架构有望成为主流选择。
Union和Union All到底有什么区别
Union和Union All到底有什么区别
660 1
|
存储
Elasticsearch exception [type=cluster_block_exception, reason=blocked by: [FORBIDDEN/12/index r【已解决】
Elasticsearch exception [type=cluster_block_exception, reason=blocked by: [FORBIDDEN/12/index r【已解决】
375 1
|
NoSQL Java Redis
Redis 从入门到精通之Redis操作删除指定Key
删除redis 可以使用Del、unlinke。推荐使用unlink。Redis是一个内存数据库,删除key会立即释放内存,因此要慎重删除,避免误删重要数据。
7031 121
下一篇
开通oss服务