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协议去监控设备了
856 0
zabbix使用snmp监控Linux主机(二十)
|
人工智能 JSON 前端开发
【Spring boot实战】Springboot+对话ai模型整体框架+高并发线程机制处理优化+提示词工程效果展示(按照框架自己修改可对接市面上百分之99的模型)
【Spring boot实战】Springboot+对话ai模型整体框架+高并发线程机制处理优化+提示词工程效果展示(按照框架自己修改可对接市面上百分之99的模型)
|
存储 Java BI
XXL-JOB定时任务知识点和应用实例
XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。该处只是介绍xxl_job的一下基础知识和使用的实例,具体的安装调试请参照对应的最新的官方文档,中文开源地址:https://www.xuxueli.com/xxl-job
4008 0
|
Java 测试技术 API
SpringBoot单元测试快速写法问题之计算测试用例的分支覆盖率如何解决
SpringBoot单元测试快速写法问题之计算测试用例的分支覆盖率如何解决
|
8月前
node环境之当我们遇到需要付费的依赖库@fortawesome/fontawesome-pro导致npm install无法进行怎么办-fontawesome-pro依赖库
node环境之当我们遇到需要付费的依赖库@fortawesome/fontawesome-pro导致npm install无法进行怎么办-fontawesome-pro依赖库
200 3
node环境之当我们遇到需要付费的依赖库@fortawesome/fontawesome-pro导致npm install无法进行怎么办-fontawesome-pro依赖库
|
10月前
|
前端开发 Java easyexcel
SpringBoot操作Excel实现单文件上传、多文件上传、下载、读取内容等功能
SpringBoot操作Excel实现单文件上传、多文件上传、下载、读取内容等功能
669 8
|
12月前
|
监控 Serverless 云计算
迎接 Serverless 时代:机遇、挑战与未来展望
Serverless架构作为新兴的云计算范式,正在改变软件开发和部署的方式。它让开发者无需管理服务器即可构建和运行应用,具有成本效益、高开发效率和自动扩展等优势。本文探讨了Serverless架构的机遇与挑战,包括快速迭代、微服务支持和事件驱动模型,并分析了其面临的冷启动、状态管理和调试难题。未来,随着语言支持、集成工具和安全性的提升,Serverless架构有望成为主流选择。
|
消息中间件 Java Kafka
如何在Java中实现实时数据同步与更新
如何在Java中实现实时数据同步与更新
Bad Request, Resolved [org.springframework.http.converter.HttpMessageNotReadableException,跟着视频仔细比对
Bad Request, Resolved [org.springframework.http.converter.HttpMessageNotReadableException,跟着视频仔细比对
Union和Union All到底有什么区别
Union和Union All到底有什么区别
459 1