北大计算机系课件 虚拟内存

合集下载

计算机操作系统第7章虚拟存储器管理PPT课件

计算机操作系统第7章虚拟存储器管理PPT课件

三 请在这里输入您的主要叙述内容
本章目录
7.1 虚拟存储器的基本概念 7.2 请求分页虚拟存储管理 7.3 页面置换算法 7.4 页面调度性能 7.5 请求分段存储管理方式 7.6 Windows 2000/XP系统存储器管理实例
28.07.2020
《计算机操作系统》- 第7章
3
本章目录
28.07.2020
《计算机操作系统》- 第7章
17
内存分配策略和分配算法
固定与可变:
指为进程分配的物理块数是固定的还是变化 的
局部与全局:
指因内存不够需要置换时,换出的页面是该 进程的页面,还是内存中所有进程的某一页面。
28.07.2020
《计算机操作系统》- 第7章
18
内存分配策略和分配算法
13
请求分页中的硬件支持 页表机制
状态位P:
访用问于字指段示该A:页是否已调入内存,供程序访问时 参修用考改于。位记M录:本页在一段时间内被访问的次数,或 记外表录存示本地该页址页最:在近调已入有内多存长后时是间否未被被修访改问过,,供供选置择换
换页用出面于页时指面参出时考该参。页考在。外存上的地址,通常是物理块 号,供调入该页时参考。
以页为单位转换 需硬件:
(1)请求分页的页表机制 (2)缺页中断 (3)地址变换机构
需实现请求分页机制的软件(置换软件等)
28.07.2020
《计算机操作系统》- 第7章
9
虚拟存储器的实现方式
请求分段系统
以段为单位转换:
(1)请求分段的段表结构 (2)缺段中断 (3)地址变换机构
需实现请求分段机制的软件(置换软件等)
独立性
围内。
局部性原理

计算机操作系统课件:第5章存储器管理03-虚拟存储器

计算机操作系统课件:第5章存储器管理03-虚拟存储器


雨 换进和换出能有效地提高内存利用率。
虚拟性
指能够从逻辑上扩充内存容量,使用户所看到 的内存容量远大于实际内存容量。这是虚拟存储器 所表现出来的最重要的特征,也是实现虚拟存储器 的最重要的目标。
虚拟存储器的实现方法
虚拟存储器的实现建立在离散分配的存储器管
大 理方式的基础上。




院 |
# 分页虚拟存储管理方式
页面调度策略

虚拟存储器系统通常定义三种策略
外 软
来规定如何(何时)以及怎样进行页面


调度。

| |
☆ 调页策略


☆ 内存分配及置换策略
☆ 页面置换算法
1.页面调入策略
虚拟存储器的调入策略决定采用什

外 软
么样的方式将所缺页面由外存调入到内


存之中。

|
|

两种常用调页策略:

☆ 请求调页


时就会出现分配的内存物理块数增多,缺页
|
|

率反而提高的异常现象。

Belady 现 象 的 原 因 : FIFO 算 法 的 置 换
特征与进程访问内存的动态特征是矛盾的,
即被置换的页面并不是进程不会访问的。
3.页面置换算法
2).先进先出算法 (FIFO)

外 例1:假定系统为某进程分配了三个物理块,一个

件 作业要依次访问如下页面:

院 |
0,1,2,3,0,1,4,0,
|
景 雨
1,2,3,4。请采用FIFO页面

操作系统课件:ch9-虚拟内存(virtual memory)

操作系统课件:ch9-虚拟内存(virtual memory)
–请求分段调度(Demand segmentation)
虚拟内存的实现过程
1. 在程序装入时,不必将其全部读入到内存,而 只需将当前需要执行的部分页或段读入到内存, 就可让程序开始执行。
2. 在程序执行过程中,如果需执行的指令或访问 的数据尚未在内存(称为缺页或缺段),则由 处理器通知操作系统将相应的页或段调入到内 存,然后继续执行程序。
内存中可以放更多进程,并发度好,效率高
将需要的部分放入内存,有些用不到的部分从来不
放入内存,内存利用率高
Байду номын сангаас
如一些处理异常
程序开始执行、响应时间等更快
的代码!
虚拟内存思想既有利于系统,又有利于用户
如何实现虚拟内存!
虚拟内存
1.1 • 虚拟内存引入的原因 1.2 • 虚拟内存 1.3 • 虚拟内存的实现
•加载进程A
0
A.0
1
A.1
2
A.2
3
A.3
4
5
6
7
8
9
10
11
12
13
14
分页示例
•加载进程B
0
A.0
1
A.1
2
A.2
3
A.3
4
B.0
5
B.1
6
B.2
7
8
9
10
11
12
13
14
本章教学目标
• 虚拟内存引入的原因 • 虚拟内存 • 虚拟内存实现原理:调页 • 虚拟内存考虑的问题
一个游戏引起的联想…
用户眼里的内存!
4G 操作系统段
用户代码段
cs:ip 逻辑地址
用户数据段

操作系统原理课件-第十四讲虚拟存储器(VIRTUAL MEMORY)

操作系统原理课件-第十四讲虚拟存储器(VIRTUAL MEMORY)

虚拟存储器的实现方式
❖ 请求分页系统 (demand paging)
❖ 请求分段系统 (demand segmentation)
4.8.2 请求分页存储管理方式 (虚拟页式(virtual paging))
在简单页式存储管理的基础上,增加请求调页和页面置换功能。
请求分页的实现 请求分页的策略
请求分页的实现——硬件支持
1)内存分配问题: 不必一次装入作业的所有页面,究竟装入时分配多少个内存块?
2)调页问题: 不是所有的页面都在内存中,哪些页面应该在内存中? 剩下的页面何时调入?从何处调入?如何调入?
3)页面置换问题: 当没有空闲内存块,又需要调入新的页面时,要将已装入内 存的页面置换出去,如何选取页面置换?
1.内存分配策略 P147
例:UNIX方式
4.8.3 Page Replacement Algorithms (中级调度算 法)
功能:需要调入页面时,选择内存中哪个物理页面被置换。称 为replacement policy。
目标:把未来不再使用的或短期内较少使用的页面调出, 通常只能在局部性原理指导下依据过去的统计数据进行预 测;
对换技术(置换) ——Swapping P129
什么是对换技术? 为什么要对换?
早期的对换技术:解决由于内存不足而无法同时容纳 多个用户程序的问题。
多道程序环境下的对换技术:把内存中暂时不能运行 的进程,或暂时不用的程序和数据,换出到外存上, 以腾出足够的内存,把具备运行条件的进程,或所需 要的程序和数据,换入内存。
2、问题产生的原因 作业装入的“一次性” 作业装入后的“驻留性”
3、解决方法的探索 不需一次全部装入作业 装入内存的程序可在不需要访问时暂时退出内存

虚拟内存

虚拟内存
虚拟内存
计算机系统内存管理的技术
01 简介
03 调度方式
目录
02 工作原理 04 虚拟存储地址变换
目录
05 的关键问题
07 相关概念
06 设置
虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整 的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需 要时进行数据交换。大多数操作系统都使用了虚拟内存,如Windows家族的“虚拟内存”;Linux的“交换空间” 等。
相关概念
的访问过程
实地址与虚地址
异构体系
用户编制程序时使用的地址称为虚地址或逻辑地址,其对应的存储空间称为虚存空间或逻辑地址空间;而计 算机物理内存的访问地址则称为实地址或物理地址,其对应的存储空间称为物理存储空间或主存空间。程序进行 虚地址到实地址转换的过程称为程序的再定位。
虚存空间的用户程序按照虚地址编程并存放在辅存中。程序运行时,由地址变换机构依据当时分配给该程序 的实地址空间把程序的一部分调入实存。每次访存时,首先判断该虚地址所对应的部分是否在实存中:如果是, 则进行地址转换并用实地址访问主存;否则,按照某种算法将辅存中的部分程序调度进内存,再按同样的方法访 问主存。
由此可见,每个程序的虚地址空间可以远大于实地址空间,也可以远小于实地址空间。后一种情况通常出现 在多用户或多任务系统中:实存空间较大,而单个任务并不需要很大的地址空间,较小的虚存空间则可以缩短指 令中地址字段的长度。
有了虚存的机制后,应用程序就可以透明地使用整个虚存空间。对应用程序而言,如果主存的命中率很高, 虚存的访问时间就接近于主存访问时间,而虚存的大小仅仅依赖于辅存的大小。

操作系统虚拟内存

操作系统虚拟内存

PPT文档演模板
操作系统虚拟内存
请求分页存储管理
内存物理块数也应该取整数。 例如,如果内存能够提供62个内存物理块,并发进程有
P1(有10个页面)和P2(有127个页面),则进程P1和P2分配 到的内存物理块分别为:
PPT文档演模板
操作系统虚拟内存
请求分页存储管理
Ü 进程优先权分配法
– 对于在系统中所处地位重要、时间要求紧迫的进程,系统应该考虑给 其分配较多的内存空间,使其加速完成。在实际应用中,将按比例分 配法和进程优先级结合起来考虑,系统把内存中可以分配的物理块分 为两部分,一部分按照比例分配给各并发进程,另一部分根据进程的 优先权进行适当增加。
PPT文档演模板
操作系统虚拟内存
虚拟存储器概念
虚拟存储器定义:是指具有请求调入功能和置换功能,能够 从逻辑上对内存空间进行扩展,允许用户的逻辑地址空间大 于物理内存地址空间的存储管理系统。
虚拟存储器的组织形式如下图所示。
PPT文档演模板
虚拟存储管理的组织
操作系统虚拟内存
虚拟存储器概念
Ü 在虚拟存储器中,一般将硬盘作为外存,因此,硬盘也被称为对 换设备。
– 在进程初次执行时,开始会有大部分的页面调入内存,这时的进程切 换开销很大。
– 如果发生缺页时系统调入页面,而每次又仅调入一个页面,则启动磁 盘作I/O的频率很高。由于每次启动磁盘时会产生一个时间延迟,因 此,会造成系统用于I/O的时间增长,系统效率降低。
– 对于执行顺序跳跃性大的程序,缺页情况变化大,难以趋向稳定的水 平,从而引起系统不稳定。
– 能否将作业不执行的部分暂时存放在外存,待到进程需要执行时, 再将其从外存调入内存。
– 将外存作为内存的补充,从逻辑上扩充内存,是虚拟存储管理的 基本思想。

虚拟内存

虚拟内存

浅析虚拟内存一.什么是虚拟内存CPU只能够访问内存中的数据,但内存的大小是有限的,所以利用硬盘上的空间先将内存中不急用的放在硬盘上,用的时候再调入内存。

说白了就是用空间换时间!二.虚拟内存的工作原理作业提交时,先全部进入辅助存储器,作业投入运行时,不把作业的全部信息同时装入主存储器,而是将其中当前使用的部分先装入主存储器,其余暂时不用的部分先存放在作为主存扩充的辅助存储器中,待用到这些信息时,再由系统自动把它们装入到主存储器中,这就是虚拟内存的基本工作原理。

三.为什么要设立虚拟内存其实,在虚拟内存的概念中就已经提到了设立虚拟内存的原因。

设立虚拟内存是为了解决内存不足的问题。

当计算机的物理内存不够大时而作业调度的信息量的大小超过了物理内存的大小,这时候就需要用到虚拟内存(硬盘上的一块存储空间)。

把暂时不用的信息放在辅助存储器上。

四.如何设立虚拟内存1.右击我的电脑,在下拉菜单中单击“属性”。

出现如下界面:2.在顶部的选项中选择“高级”菜单。

出现界面:3.选择性能相对应的菜单“设置”。

出现界面:4.选择顶部的“高级”菜单选项。

出现界面:5.在虚拟内存选项中单击“更改”。

出现界面:6.在这里你可以设置虚拟内存的位置(硬盘的哪个分区),通过自定义大小选项设置虚拟内存的大小,一般设为物理内存的1.5倍或者两倍。

然后单击“设置”、“确定”。

最后,重起电脑以使设置生效。

五.“虚拟内存不够”的几个可能1、感染病毒有些病毒发作时会占用大量内存空间,导致系统出现内存不足的问题。

赶快去杀毒,升级病毒库,然后把防毒措施做好!2、虚拟内存设置不当虚拟内存设置不当也可能导致出现内存不足问题,一般情况下,虚拟内存大小为物理内存大小的2倍即可,如果设置得过小,就会影响系统程序的正常运行。

重新调整虚拟内存大小以WinXP 为例,右键点击“我的电脑”,选择“属性”,然后在“高级”标签页,点击“性能”框中的“设置”按钮,切换到“高级”标签页,然后在“虚拟内存”框中点击“更改”按钮,接着重新设置虚拟内存大小,完成后重新启动系统就好了。

北大 nachos 考试 虚拟内存实验讲解

北大 nachos 考试 虚拟内存实验讲解

0x…
UserStack uninit data Init data
…… 0x8: 0x4: 0x14: 0x10: 0x0 0x0:
…… JAL 8 SLL r0,r0,0 SYSCALL ADDIU r2,r0,0 JAL 52
0x0
Thread类中关于用户程序的属性 #ifdef USER_PROGRAM int userRegisters[NumTotalRegs]; AddrSpace *space; #endif
1. 创建user address space并初始化 2. 用machine->Run来运行user address space中的指令
用户线程
StartProcess: 1. 创建user address space并初始化 2. 用machine->Run来运行user address space中的指令
agenda
• Nachos 用户程序 生成过程 • Nachos 用户程序 可执行文件格式 • Nachos使用MIPS模拟器执行用户程序过程
• 装载用户程序到MIPS模拟器 • 使用MIPS模拟器执行用户程序
用户线程
用户线程
如何让Nachos支持用户程序?
#ifdef USER_PROGRAM … #endif
data用户程序生成过程用户可执行程序示例更改后的haltcincludesyscallhintintmain最终的halt可执行文件内容0x456789abvirtualaddr0x0infileaddr0x28size2720x1100x138160x1200x80490a032code内容initdata内容uninitdata内容noffheader用户可执行程序示例更改后的haltcincludesyscallhintintmain最终的halt可执行文件内容0x456789abvirtualaddr0x0infileaddr0x28size2720x1100x138160x1200x80490a032code内容initdata内容uninitdata内容noffheader0x0
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

存储层次的级别
分段传 输单位
寄存器堆 指令操作数
较高级别 较快
程序/编译器 1-8 字节 Cache控制 8-128字节 操作系统 512-4K字节 用户/操作员 Mbytes
Cache
块(Blocks) 存储器
主存
M Bytes 100ns-1us $0.01~0.001
磁盘
G Bytes 毫秒 10-3~10-4美分
页(Pages)
磁盘 文件(Files) 磁带
磁带
无限 秒 ~分 10-6
较大 较低级别
北京大学计算机科学技术系
北京大学微处理器研究开发中心
存储所有我们已读(写)、 听(说)、看的信息
人类数据类型 /小时 阅读文字(含少量图片) 200 K 以120wpm说 以1KBps说 50Kb/s POTS的视频 200Kb/s VHS质量的视频 4.3Mb/s HDTV/DVD视频
可供选择的方案:
00 用户进程的P0区域 01 用户进程的P1区域 10 系统名字空间
(1) 硬件相联映射: 每个页帧需要一个表项(O(|M|)),而不是每个页一个表项 (O(|N|)) (2) 基于散列表的“软件”方案(反向页表:inverted page table)
页号 偏移量
是否出现 访问权限 页号 物理地址
0 1
已占用 . . .
k-1
北京大学计算机科学技术系
北京大学微处理器研究开发中心
最佳页面大小
• 选择页面大小使得碎片最少
• 页面大 内部碎片变得严重
• 增加页面数量/名字空间 更大的页表 • 一般而论,通常需要增加页面大小,这是因为,
• 随着RAM价格下降,存储器变得更大
• 处理器速度和磁盘速度之间的差距变大 • 编程人员需要越来越大的虚拟地址空间 • 当今,大多数机器的页面大小为4K字节,另外,页面大小有继 续增加的趋势
页表
访问 权限
PA
+ 物理存 储器地址
实际上,经常采用串联方式
位于物理 存储器的表
北京大学计算机科学技术系
北京大学微处理器研究开发中心
地址映射算法
If V = 1 then 该虚拟地址指示的所需页存放在主存中 else 该虚拟地址指示的所需页存放在第二级存储器中 访问权限 R = 只读, R/W = 读/写, X = 只可执行 If 访问的类别 与 指定的访问权限 不相符, then 保护违例故障(protection_violation_fault) If 没有设置有效位(V)then 缺页(page fault)
北京大学计算机科学技术系
北京大学微处理器研究开发中心
虚拟存储
• 提供一种理想中的非常非常大的存储器 • 许多工作所需存储器的总和大于实际的物理存储器 • 每个工作的地址空间大于实际的物理存储器 • 使得可利用的(快速、昂贵)的物理存储器得以很好地利用 • 简化存储器的管理 (当今,使用虚拟存储技术的主要原因) • 使用存储层次,保持平均访问时间很低 • 至少包括两级存储层次:主存 和 二级存储 • 虚拟地址 程序员使用的地址 • 虚拟地址空间 上述地址的集合 • 存储器地址 物理存储器中存储字的地址,也称为物理地 址或实地址( Real address)
页表 表项
10 10 10 0 0 访问位
页表表项
最近替换指针 (lrp) 如果需要进行替换,将lrp前移 到下一个页表项(与表的大小取 模)直到发现一个具有0位的页 表项;这就是要替换的目标;在 上述工作的同时,将所有检查过 的页表项的访问位置为0。
北京大学微处理器研究开发中心
一种优化的策略是查找最近既没有被访问,又“不脏”的页
TLB访问时间与Cache访问时间是可比的(但要小一些) (也比主存访问时间要小得多)
北京大学计算机科学技术系
北京大学微处理器研究开发中心
变换旁视缓冲器
• 就像其他的cache, TLB可以是全相联的、组相联的,也可以是 直接映射的
• TLB一般较小,通常即使在高性能机器中也只有128 - 256个表项 。这样就可以实现全相联查找。大多数中等性能的机器使用n路 组相联的组成。
北京大学计算机科学技术系
北京大学微处理器研究开发中心
虚拟存储系统设计的基本问题
• • • • 从二级存贮器向主存传输信息块的大小 某信息块的访问需要引入存储M,但是M已经装满,那么M中的一些区域就 必须释放,为新的信息块腾出空间 替换策略(replacement policy) M中的哪个区域将安放新的信息块 放置策略(placement policy ) 失效的信息项只有在出现页面失效(fault)时,才从第二级存储器中取出 读取/装入策略(fetch/load policy)
物理地址
北京大学计算机科学技术系分页 Nhomakorabea织物理地址 0 1024 7168 页帧 0 1 7 1K 1K 1K 地址 变换 映射 0 1024 页 0 1
1K 1K
映射单位
物理存储器
31744 地址映射 虚拟地址 页号 31 1K
也是从虚拟存 储器到物理存 储器的传输单 位
虚拟存储器
10 偏移量
页表基址 寄存器 到页表 的索引 V
1封信
1部电影
美国国会图书 馆 (文字)
美国国会图书 馆 (声音+电影 )
Giga Tera Peta
美国国会图书 馆 (图像)
所有相片
所有磁盘
Exa
所有磁带
北京大学计算机科学技术系
Zetta
现在的所有信息 Yotta
北京大学微处理器研究开发中心
本讲提纲
°重温存储层次和Cache引论
°虚拟存储器
°页表和快表(TLB) °保护 °存储层次对计算机科学其他学科的影响
北京大学计算机科学技术系
北京大学微处理器研究开发中心
页面替换 (续)
非最近使用:
与每个页面相关联的是一个访问标志: 访问标志(reference flag) = 1 如果该页在最近的过去被访问过 = 0 否则 如果需要替换,选择任意一个访问标志为0的页帧替换掉。该页是在最 近的过去没有被访问过的页。 • 非最近使用(NRU)替换策略的实现:
北京大学计算机科学技术系
/天 (/4年) 2 -10 M/G 0.5 M/G 40 M/G .25 G/T 1 G/T 20 G/T
/一生 60-300 G 15 G 1.2 T 25 T 100 T 1P
43 K 3.6 M 22 M 90 M 1.8 G
北京大学微处理器研究开发中心
一部小说
Kilo Mega
mem disk
cache
reg
pages
frame
分页组织
虚拟 和 物理 地址被划分为同等大小的信息块
页帧(page frames) 页(pages)
北京大学计算机科学技术系 北京大学微处理器研究开发中心
地址映射
V = {0, 1, . . . , n - 1} 虚拟地址空间 M = {0, 1, . . . , m - 1} 物理地址空间
- 预测未来访问通常很困难
绝大多数系统只实现了按需调页,而没有实现预测
北京大学计算机科学技术系 北京大学微处理器研究开发中心
虚拟地址 和 Cache
VA CPU Translation hit data PA
miss
Cache
Main Memory
• 需要一次额外的存储访问来将虚拟地址变换成物理地址 • 这使得cache访问的代价非常高,而且这也是我们希望尽可能 快得执行的“最内层循环” • 思考:为什么总是用物理地址来访问cache? 虚拟地址cache 有一个很难对付的问题! • 同义问题(synonym problem):两个不同的虚拟地址可 以映射到同一物理地址 => 两个不同的cache表项包含对 同一物理地址的数据! • 对于更新:必须更新所有具有同一物理地址的cache表项 或者 允许 存储器不一致 • 确定上述情况需要大量的硬件,特别是需要对物理地址标 签进行相联查找以确定是否出现多次命中
n>m
映射: V M U {0} 地址映射函数 MAP(a) = a‘ 如果在虚拟地址 a 的数据出现在物理地址 a’ ,并且 a‘ 在 M中
= 0 如果在虚拟地址 a 的数据不出现在M中
a
名字空间 V
0
失效信息项故障
缺页处理
处理器
a
地址变换 机制
主存
a'
二级存储
OS 完成这一传输
北京大学微处理器研究开发中心
北京大学计算机科学技术系 北京大学微处理器研究开发中心
快表(TLB)
加速地址变换的一种方式是使用一种关于最近使用页表表项的特殊 cache 它有很多名字,但最经常使用的名字是变换旁视缓冲 器(Translation Lookaside Buffer:TLB)或快表!
虚拟地址 物理地址 脏位 访问 有效位 访问方式
VA CPU TLB Lookup miss Translation data hit hit PA Cache miss Main Memory
使用TLB 的地址变换
1/2 t
t
20 t
北京大学计算机科学技术系
北京大学微处理器研究开发中心
域变得不可利用 • 再分配(Relocation):将程序或数据移动到地址空间中一个新
的区域(可能需要调整所有的指针) 外部碎片(External Fragmentation):数据块之间的剩余空间
内部碎片(Internal Fragmentation):程序大小通常并不是页
面大小的整数倍,最后一个页帧中就会出现“浪费”
相关文档
最新文档