第9章 虚存
- 格式:pdf
- 大小:761.41 KB
- 文档页数:61
第9章静电场及其应用1.电荷 (1)2.库仑定律 (5)3.电场电场强度 (10)4.静电的防止与利用 (18)1.电荷一、电荷1.两种电荷:自然界只存在两种电荷,正电荷和负电荷。
2.电荷量:电荷的多少,常用Q或q表示,国际单位制单位是库仑,简称库,符号是C。
3.原子的组成原子由原子核和核外电子组成,原子核由带正电的质子和不带电的中子组成,核外电子带负电。
通常原子内正、负电荷的数量相同,故整个原子对外界表现为电中性。
4.自由电子和离子金属中原子的最外层电子往往会脱离原子核的束缚而在金属中自由运动,这种能自由运动的电子叫作自由电子,失去自由电子的原子便成为带正电的离子。
5.摩擦起电两个物体相互摩擦时,电子从一个物体转移到另一个物体,原来呈电中性的物体由于得到电子而带负电,失去电子的物体则带正电。
二、静电感应1.静电感应:当一个带电体靠近导体时,由于电荷间相互吸引或排斥,导体中的自由电荷便会趋向或远离带电体,使导体靠近带电体的一端带异种电荷,远离带电体的一端带同种电荷的现象。
2.感应起电:利用静电感应使金属导体带电的过程。
三、电荷守恒定律的两种表述1.电荷既不会创生,也不会消灭,它只能从一个物体转移到另一个物体,或者从物体的一部分转移到另一部分;在转移过程中,电荷的总量保持不变。
2.一个与外界没有电荷交换的系统,电荷的代数和保持不变。
四、元电荷1.定义:实验发现的最小电荷量就是电子所带的电荷量,这个最小的电荷量叫作元电荷,用符号e表示。
2.所有带电体的电荷量都是e的整数倍,电荷量是不能连续变化的物理量。
3.元电荷的大小:e=1.602 176 634×10-19C在计算中通常取e=1.60×10-19 C。
4.电子的比荷:电子的电荷量e与电子的质量m e之比。
其值eme=1.76×1011C/kg。
考点1:对感应起电的理解1.过程及现象(1)取一对用绝缘支柱支持的金属导体A、B,使它们彼此接触。
第9章习题(有关虚拟存储器的题目)参考答案3. 下述有关存储器的描述中,正确的是( B、D )A. 多级存储体系由Cache、主存和虚拟存储器构成B. 存储保护的目的是:在多用户环境中,既要防止一个用户程序出错而破坏系统软件或其它用户程序,又要防止用户访问不是分配给他的主存区,以达到数据安全与保密的要求。
C. 在虚拟存储器中,外存和主存以相同的方式工作,因此允许程序员用比主存空间大得多的外存空间编程。
D. Cache和虚拟存储器这两种存储器管理策略都利用了程序的局部性原理。
5.虚拟段页式存储管理方案的特性为( D )A.空间浪费大、存储共享不易、存储保护容易、不能动态连接。
B.空间浪费小、存储共享容易、存储保护不易、不能动态连接。
C.空间浪费大、存储共享不易、存储保护容易、能动态连接。
D.空间浪费小、存储共享容易、存储保护容易、能动态连接。
6. 某虚拟存储器采用页式存储管理,使用LRU页面替换算法,若每次访问在一个时间单位内完成,页面访问序列如下:1、8、1、7、8、2、7、2、1、8、3、8、2、1、3、1、7、1、3、7。
已知主存只允许放4个页面,初始状态时4个页面是全空的,则页面失效次数是___6____。
解答过程:LRU算法的思想:每页设置一个计数器,每次命中一页,该页对应的计数器清零,其他各页的计数器加1;需要替换时,将计数值最大的页换出,所以,对应的访问过程及相应的计数器的内容、替换结果如下:访问序列1 8 1 7 82 7 2 1 83 8 2 1 3 1 7 1 3 7调入的页号a 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1b 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 7c 7 7 7 7 7 7 7 3 3 3 3 3 3 3 3 3 3d 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2各计数器的值a 0 1 0 1 2 3 4 5 0 1 2 3 4 0 1 0 1 0 1 2b 0 1 2 0 1 2 3 4 0 1 0 1 2 3 4 0 1 2 0c 0 1 2 0 1 2 3 0 1 2 3 0 1 2 3 0 1d 0 1 0 1 2 3 4 0 1 2 3 4 5 6 7注:红色标注的页是未命中的访问——共6次7. 主存容量为4MB,虚存容量为1GB,则虚拟地址和物理地址各为多少位?如页面大小为4KB,则页表长度是多少?解:主存容量为4MB,物理地址22位虚存容量为1GB,虚拟地址30位页表长度,即页面数=1GB/ 4KB=218=256K8. 设某系统采用页式虚拟存储管理,页表存放在内存中。
复习题答案第1章计算机系统概述1.1 列出并简要地定义计算机的四个主要组成部分。
主存储器,存储数据和程序;算术逻辑单元,能处理二进制数据;控制单元,解读存储器中的指令并且使他们得到执行;输入/输出设备,由控制单元管理。
1.2 定义处理器寄存器的两种主要类别。
用户可见寄存器:优先使用这些寄存器,可以使机器语言或者汇编语言的程序员减少对主存储器的访问次数。
对高级语言而言,由优化编译器负责决定把哪些变量应该分配给主存储器。
一些高级语言,如C语言,允许程序言建议编译器把哪些变量保存在寄存器中。
控制和状态寄存器:用以控制处理器的操作,且主要被具有特权的操作系统例程使用,以控制程序的执行。
1.3 一般而言,一条机器指令能指定的四种不同操作是什么?处理器-寄存器:数据可以从处理器传送到存储器,或者从存储器传送到处理器。
处理器-I/O:通过处理器和I/O模块间的数据传送,数据可以输出到外部设备,或者从外部设备输入数据。
数据处理:处理器可以执行很多关于数据的算术操作或逻辑操作。
控制:某些指令可以改变执行顺序。
1.4 什么是中断?中断:其他模块(I/O,存储器)中断处理器正常处理过程的机制。
1.5 多中断的处理方式是什么?处理多中断有两种方法。
第一种方法是当正在处理一个中断时,禁止再发生中断。
第二种方法是定义中断优先级,允许高优先级的中断打断低优先级的中断处理器的运行。
1.6 内存层次的各个元素间的特征是什么?存储器的三个重要特性是:价格,容量和访问时间。
1.7 什么是高速缓冲存储器?高速缓冲存储器是比主存小而快的存储器,用以协调主存跟处理器,作为最近储存地址的缓冲区。
1.8 列出并简要地定义I/O操作的三种技术。
可编程I/O:当处理器正在执行程序并遇到与I/O相关的指令时,它给相应的I/O模块发布命令(用以执行这个指令);在进一步的动作之前,处理器处于繁忙的等待中,直到该操作已经完成。
中断驱动I/O:当处理器正在执行程序并遇到与I/O相关的指令时,它给相应的I/O模块发布命令,并继续执行后续指令,直到后者完成,它将被I/O模块中断。
目录一.XP系统虚拟内存标准设法 (2)1.1手动设置虚拟内存 (2)1.2量身定制虚似内存 (2)1.2.1普通设置法 (2)1.2.2精准设置法 (3)二.雨林木风局域网共享教程 (4)第一章:共享的前提工作: (4)第二章:共享的准备工作 (6)第三章:用管理员登录的局域网共享方式 (8)第四章:以来宾登录的局域网共享方式 (10)第五章:使用磁盘映射 (13)第六章:局域网访问常见的故障及解决方法 (14)第七章:增加局域网安全性,为来宾用户设置密码。
(16)《葡萄酒选购指南》 (19)一.XP系统虚拟内存标准设法当系统运行时,先要将所需的指令和数据从外部存储器(如硬盘、软盘、光盘等)调入内存中,CPU 再从内存中读取指令或数据进行运算,并将运算结果存入内存中,内存所起的作用就像一个“二传手”的作用。
当运行一个程序需要大量数据、占用大量内存时,内存这个仓库就会被“塞满”,而在这个“仓库”中总有一部分暂时不用的数据占据着有限的空间,所以要将这部分“惰性”的数据“请”出去,以腾出地方给“活性”数据使用。
这时就需要新建另一个后备“仓库”去存放“惰性”数据。
由于硬盘的空间很大,所以微软W indows操作系统就将后备“仓库”的地址选在硬盘上,这个后备“仓库”就是虚拟内存。
在默认情况下,虚拟内存是以名为Pagefile.sys的交换文件保存在硬盘的系统分区中。
1.1手动设置虚拟内存在默认状态下,是让系统管理虚拟内存的,但是系统默认设置的管理方式通常比较保守,在自动调节时会造成页面文件不连续,而降低读写效率,工作效率就显得不高,于是经常会出现“内存不足”这样的提示,下面就让我们自已动手来设置它吧。
①用右键点击桌面上的“我的电脑”图标,在出现的右键菜单中选择“属性”选项打开“系统属性”窗口。
在窗口中点击“高级”选项卡,出现高级设置的对话框②点击“性能”区域的“设置”按钮,在出现的“性能选项”窗口中选择“高级”选项卡,打开其对话框。
复习题答案第1章计算机系统概述1.1 列出并简要地定义计算机的四个主要组成部分。
主存储器,存储数据和程序;算术逻辑单元,能处理二进制数据;控制单元,解读存储器中的指令并且使他们得到执行;输入/输出设备,由控制单元管理。
1.2 定义处理器寄存器的两种主要类别。
用户可见寄存器:优先使用这些寄存器,可以使机器语言或者汇编语言的程序员减少对主存储器的访问次数。
对高级语言而言,由优化编译器负责决定把哪些变量应该分配给主存储器。
一些高级语言,如C语言,允许程序言建议编译器把哪些变量保存在寄存器中。
控制和状态寄存器:用以控制处理器的操作,且主要被具有特权的操作系统例程使用,以控制程序的执行。
1.3 一般而言,一条机器指令能指定的四种不同操作是什么?处理器-寄存器:数据可以从处理器传送到存储器,或者从存储器传送到处理器。
处理器-I/O:通过处理器和I/O模块间的数据传送,数据可以输出到外部设备,或者从外部设备输入数据。
数据处理:处理器可以执行很多关于数据的算术操作或逻辑操作。
控制:某些指令可以改变执行顺序。
1.4 什么是中断?中断:其他模块(I/O,存储器)中断处理器正常处理过程的机制。
1.5 多中断的处理方式是什么?处理多中断有两种方法。
第一种方法是当正在处理一个中断时,禁止再发生中断。
第二种方法是定义中断优先级,允许高优先级的中断打断低优先级的中断处理器的运行。
1.6 内存层次的各个元素间的特征是什么?存储器的三个重要特性是:价格,容量和访问时间。
1.7 什么是高速缓冲存储器?高速缓冲存储器是比主存小而快的存储器,用以协调主存跟处理器,作为最近储存地址的缓冲区。
1.8 列出并简要地定义I/O操作的三种技术。
可编程I/O:当处理器正在执行程序并遇到与I/O相关的指令时,它给相应的I/O模块发布命令(用以执行这个指令);在进一步的动作之前,处理器处于繁忙的等待中,直到该操作已经完成。
中断驱动I/O:当处理器正在执行程序并遇到与I/O相关的指令时,它给相应的I/O模块发布命令,并继续执行后续指令,直到后者完成,它将被I/O模块中断。
第5章虚拟存储器-题库及参考答案第5章虚拟存储器-选择题参考答案⼀、单项选择题1.【2012统考真题】下列关于虚拟存储器的叙述中,正确的是()A.虚拟存储只能基于连续分配技术B.虚拟存储只能基于⾮连续分配技术C.虚拟存储容量只受外存容量的限制D.虚拟存储容量只受内存容量的眼制2.请求分页存储管理中,若把页⾯尺⼨增⼤⼀倍⽽且可客纳的最⼤页数不变则在程序顺序执⾏时缺页中断次数会()A.增加B.减少C.不变D.可能增加也可能减少3.进程在执⾏中发⽣了缺页中断,经操作系统处理后,应让其执⾏()指令A.被中断的前⼀条B.被中断的那⼀条C.被中断的后⼀条D.启动时的第⼀条4.【2011统考真题】在缺页处理过程中,操作系统执⾏的操作可能是()Ⅰ.修改页表Ⅱ.磁盘1O Ⅲ.分配页框A.仅Ⅰ、ⅡB.仅ⅡC.仅ⅢD.Ⅰ、Ⅱ和Ⅲ5.【2013统考真题】若⽤户进程访问内存时产⽣缺页,则下列选项中,操作系回统可能执⾏的操作是()Ⅰ.处理越界错Ⅱ.置换页Ⅲ.分配内存A.仅Ⅰ、ⅡB.仅Ⅱ、ⅢC.仅Ⅰ、ⅢD.Ⅰ、Ⅱ和Ⅲ6.虚拟存储技术是()A.补充内存物理空间的技术B.补充内存逻辑空间的技术C.补充外存空间的技术D.扩充输⼊/输出缓冲区的技术7.以下不属于虚拟内存特征的是()A.⼀次性B.多次性C.对换性D.离散性8.为使虚存系统有效地发挥其预期的作⽤,所运⾏的程序应具有的特性是()A.该程序不应含有过多的O操作B.该程序的⼤⼩不应超过实际的内存容量C.该程序应具有较好的局部性D.该程序的指令相关性不应过多9.()是请求分页存储管理⽅式和基本分页存储管理⽅式的区别A.地址重定向B.不必将作业全部装⼊内存C.采⽤快表技术D.不必将作业装⼊连续区城10.下⾯关于请求页式系统的页⾯调度算法中,说法错误的是()A.⼀个好的页⾯调度算法应减少和迎免抖动现象B.FIFO算法实现简单,选择最先进⼊主存储器的页⾯调出C.LRU算法基于局部性原理,⾸先调出最近⼀段时间内最长时间未被访问过的页⾯D. CLOCK算法⾸先调出⼀段时间内被访问次数多的页⾯11考虑页⾯置换算法,系统有m个物理块供调度,初始时全空,页⾯引⽤串长度为P,包含了n个不同的页号,⽆论⽤什么算法,缺页次数不会少于()A.mB.pC.nD. min(n, n)12.在请求分页存储管理中,若采⽤FFO页⾯淘汰算法,则当可供分配的页数增加时,缺页中断的次数()A.减少B.增加C.⽆影响D.可能増加也可能减少13.设主存容量为IMB,外存容量为400MB,计算机系统的地址寄存器有32位,那么虚拟存储器的最⼤容量是()A. IMBB. 401MBC. IMB+232MBD.232B14.虚拟存储器的最⼤容量()A.为内外存容量之和B.由计算机的地址结构决定C.是任意的D.由作业的地址空间决定15.某虚拟存储器系统采⽤页式内存管理,使⽤LRU页⾯替換算法,考虑页⾯回访问地址序列18178272183821317137.假定内存容量为4个页⾯,开给时是空的,则页⾯失效次数是()A.4B.5C.6D.716.导致LRU算法实现起来耗费⾼的原因是()A.需要硬件的特殊⽀持B.需要特珠的中断处理程序C.需要在页表中标明特殊的页类型D.需要对所有的页进⾏排序17.在虚拟存储器系统的页表项中,决定是否会发⽣页故障的是()A.合法位B.修改C.页类型D.保护码18.在页⾯置换策略中,()策略可能引起抖动A. FIFOB. LRUC.没有⼀种D.所有19.虚拟存储管理系统的基础是程序的()理论A.动态性B.虚拟性C.局部性D.全局性20.⽤()⽅法可以实现虚拟存储A.分区合并B.覆盖、交换C.快表D.段合并21.请求分页存储管理的主要特点是()A.消除了页内零头B.扩充了内存C.便于动态链接D.便于信息共享22.在请求分页存储管理的页表中增加了若千项信息,其中修改位和访问位供()参考A.分配页⾯B.调⼊页⾯C.置换算法D.程序访问23.产⽣内存抖动的主要原因是()A.内存空间太⼩B.CPU运⾏速度太慢C.CPU调度算法不合理D.页⾯置换算法不合理24.在页⾯置換算法中,存在 Belady现象的算法是()A.最佳页⾯置换算法(OPT)B.先进先出置换算法(FIFO)C.最近最久未使⽤算法(LRU)D.最近未使⽤算法(NRU)25.页式虚拟存储管理的主要特点是()A.不要求将作业装⼊主存的连续区域B.不要求将作业同时全部装⼊主存的连续区域C.不要求进⾏缺页中断处理D.不要求进⾏页⾯置换26.提供虚拟存储技术的存储管理⽅法有()A.动态分区存储管理B.页式存储管理C.请求段式存储管理D.存储覆盖技术27.在计算机系统中,快表⽤于()A.存储⽂件信息B.与主存交换信息C.地址变换D.存储通道程序28.在虚拟分页存储管理系统中,若进程访问的页⾯不在主存中,且主存中没有可⽤的空闲帧时,系统正确的处理顺序为()A.决定淘汰页→页⾯调出⼀缺页中断⼀页⾯调⼊B.决定淘汰页→页⾯调⼊⼀缺页中断⼀页⾯调出C.缺页中断→决定淘汰页⼀页⾯调出⼀页⾯调⼊D.缺页中断→决定淘汰页→页⾯调⼊→页⾯调出29.已知系统为32位实地址,采⽤48位虚拟地址,页⾯⼤⼩为4KB,页表项⼤⼩为8B,假设系统使⽤纯页式存储,则要采⽤()级页表,页内偏移()位A.3,12B.3,14C.4,12D.4,1430.下列说法中,正确的是()Ⅰ.先进先出(FIFO)页⾯置換算法会产⽣ Belady现象Ⅱ.最近最少使⽤(LRU)页⾯置換算法会产⽣ Belady现象Ⅲ.在进程运⾏时,若其⼯作集页⾯都在虚拟存储器内,则能够使该进程有效地运⾏否则会出现频繁的页⾯调⼊/调出现象IV.在进程运⾏时,若其⼯作集页⾯都在主存储器内,则能够使该进程有效地运⾏则会出现频繁的页⾯调⼊/调出现象A.Ⅰ、ⅢB.Ⅰ、ⅣC.Ⅱ、ⅢD.Ⅱ、Ⅳ31.测得某个采⽤接需调页策略的计算机系统的部分状态数据为:CPU利⽤率为20%,⽤于交换空间的磁盘利⽤率为97.7%,其他设备的利⽤率为5%由此判断系统出现异常,这种情况下()能提⾼系统性能A.安装⼀个更快的硬盘 C.增加运⾏进程数B.通过扩⼤硬盘容量增加交换空间 D.加内存条来增加物理空间容量32.假定有⼀个请求分页存储管理系统,测得系统各相关设备的利⽤率为:CPU的利⽤率为10%,磁盘交换区的利⽤率为99.7%,其他1O设备的利⽤率为5%,下⾯()措施将可能改进CPU的利⽤率Ⅰ.增⼤内存的容量Ⅱ.增⼤磁盘交换区的容量Ⅲ.减少多道程序的度数IV.增加多道程序的度数 V.使⽤更快速的磁盘交换区 VI.使⽤更快速的CPUA.Ⅰ、Ⅱ、Ⅲ、IVB.Ⅰ、ⅢC.Ⅱ、Ⅲ、VD.Ⅱ、Ⅵ33.【2011统考真题】当系统发⽣抖动时,可以采取的有效措施是()Ⅰ.撤销部分进程Ⅱ.增加磁盘交换区的容量Ⅲ.提⾼⽤户进程的优先级A.仅ⅠB.仅ⅡC.仅ⅢD.仅Ⅰ、Ⅱ34.【2014统考真题】下列措施中,能加快虚实地址转换的是()Ⅰ.增⼤快表(TLB)容量Ⅱ.让页表常驻内存Ⅲ.增⼤交换区(swap)A.仅ⅠB.仅ⅡC.仅Ⅰ、ⅡD.仅Ⅱ、Ⅲ35.[2014统考真题】在页式虚拟存管理系统中,采⽤某些页⾯置換算法会出回现 Belady异常现象,即进程的缺页次数会随着分配给该进程的页柜个数的增加⽽增加。
第9章虚拟存储器背景背景、、概念请求分页页面置换页框的分配颠簸/抖动其他其他考虑考虑n g S y s t e m s , B J U T9.1 背景进程执行的基本要求 正在执行指令必须在内存 进程的全部逻辑空间装入内存 动态分区, 分页, 分段逻辑地址空间大小< 内存空间大小 覆盖覆盖、、动态加载当前需要的指令和数据在内存程序员的责任n g S y s t e m s , B J U T特点在一段时间内, 通常只执行一部分代码 若干子程序, 循环有些代码很少有些代码很少、、甚至根本没有执行 用户申请分配的数据空间, 如数组等数据结构, 实际执行时只使用了一部分在一段时间内, 对数据结构的访问集中在有限的范围内n g S y s t e m s , B J U T结论程序在执行时呈现局部性规律在一段时间内, 程序的执行仅限于某个部分, 所访问的存储空间也局限于某个区域––––局部性原理进程的整个逻辑空间不必全部装入内存n g S y s t e m s , B J U T如果进程部分在内存就可以执行……进程逻辑地址空间可以超过内存物理空间 程序设计更方便 内存可以同时容纳更多进程提高CPU 利用率提高系统吞吐量 进程装入和交换所需要的I/O 减少n g S y s t e m s , B J U T 虚拟存储器的概念(1) 在一个新进程投入运行之前,OS 只把开始时需要的几页/段装入内存 进程启动运行其余部分留在磁盘上 进程运行时,如果欲取的指令或要访问的数据已在内存, 则继续执行如果不在内存(缺页/缺段), OS 负责把所需的页/段调入内存, 然后进程继续执行–请求调入 如果内存已满, OS 选择内存中暂时不用的页/段, 调出到磁盘上; 腾出内存空间后, 再调入需要的n g S y s t e m s , B J U T 虚拟存储器的概念(2)虚拟存储器 允许仅把进程的一部分装入内存就可运行进程 具有请求调入和置换功能 从逻辑上扩充内存容量 用户看到的: 容量巨大的存储器—“虚拟” 使用户逻辑存储器与物理存储器分离虚拟存储器的容量是不是无限大? 指令中地址域的长度 辅存的容量 虚拟存储技术与交换技术的区别 交换: 以进程为单位 虚拟存储: 以页/段为单位n g S y s t e m s , B J U T 虚拟存储空间> 物理存储空间n g S y s t e m s , B J U T 虚拟存储器的特征离散性 内存的分配方式—离散多次性进程执行时不必全部装入内存进程被分成多次调入内存 对换性在进程执行过程中, 暂时不需要的代码和数据被换出, 换入需要的部分进程的换入换出 虚拟性 从逻辑上扩充内存容量 用户看到的n g S y s t e m s , B J U T 虚拟存储器的实现方式 实现方式请求分页系统/ 页式虚拟存储系统 分页+ 请求调页+ 页面置换 请求分段系统/ 段式虚拟存储系统 分段+ 请求调段+ 分段置换 段长度可变, 置换算法复杂 段页式虚拟存储系统 段页式+ 请求调页+ 页面置换硬件支持 请求分页(分段)的页表(段表)机制 缺页(缺段)中断机构 地址变换机构n g S y s t e m s , B J U T 9.2 请求分页以分页为基础 仅当需要一页时, 才把该页调入内存调页程序/ 页面调度程序(pager)只调入需要的页, 进程装入需要I/O 量减少进程需要的内存空间减少内存可以容纳更多用户进程首先要解决的问题如何知道一个页面是否在内存? 如果访问的页在内存, 如何确定物理地址? 如果访问的页不在内存, 如何调入?n g S y s t e m s , B J U T请求分页系统中的页表页表每个进程有自己的页表 每个页表项(page table entry)包括页框号: 如果该页在内存, 保存在哪个页框里 存在位(P, present) / 有效-无效位 该页是否在主存修改位(M, modify) / 脏位(dirty bit) 该页此次装入内存后是否被修改过 存取权限位页级的保护和共享该页在辅存的地址n g S y s t e m s , B J U T 地址变换—如果访问的页在内存n g S y s t e m s , B J U T缺页、缺页中断缺页(page fault) / 页故障/ 页错误 进程执行时, 要访问页不在内存缺页中断(page fault trap)OS 响应缺页中断, 把所需页面调入内存n g S y s t e m s , B J U T 处理缺页的步骤(课本274页 ~)n g S y s t e m s , B J U T缺页中断与普通中断的区别 在指令执行期间产生中断信号, 并被处理 普通中断: CPU 在执行完一条指令时检查是否有中断请求一条指令执行期间, 可能产生多次缺页中断 引起缺页中断的指令被重新执行n g S y s t e m s , B J U T 9.4 页面置换缺页 缺页中断 OS 调入所需页面到空闲页框如果系统中已经没有空闲页框……n g S y s t e m s , B J U T页面置换页面置换(page replacement)找出在内存中但不使用的页, 换出到辅存 空闲页框 把需要的页面换入内存 修改位(modify bit) / 脏位(dirty bit)如果页没有被修改过, 不需要写到辅存 页面置换算法任务––找出“牺牲品”决定哪个页面是当前不使用的目标: 缺页率最低必须熟练掌握的算法FIFO, OPT, LRUn g S y s t e m s , B J U T 包含页面置换的缺页处理基本流程1.查找所需页面在磁盘上的位置2.找到一个空闲页框 如果没有,①应用页面置换算法选择一选择一个个“牺牲”页框②如果“牺牲”页框中的页被修改过, 把它写回磁盘③更新页表和页框表3.将所需页面读入空闲页框, 更新页表和页框表4.重启进程(导致缺页的指令)n g S y s t e m s , B J U T 例: 页面置换n g S y s t e m s , B J U T 请求分页的性能有效访问时间(Effective Access Time, EAT) 缺页率(Page Fault Rate): 0 ≤p ≤1.0p = 0, 无缺页p = 1, 每次访问都缺页EAT = (1 –p )* memory access + p * ( page fault overhead + swap page out + swap page in + restart overhead ) 处理缺页需要多少时间? 明细: 课本277页 交换空间的处理与使用 速度从哪里调入需要的页?n g S y s t e m s , B J U T 例: 请求分页的有效访问时间Memory access time 200 nsAverage page-fault service time 8 ms EAT = (1 –p) * 200ns + p * 8mspEAT 0.0018199.80.0001999.980.00001279.998n g S y s t e m s , B J U T 引用串进程执行时的存储器引用序列虚拟地址/ 逻辑地址数据量巨大 引用串(reference string)只考虑页号部分连续对同一页的引用, 如果缺页, 只会在第一次 可以把连续的相同页号合并合并为一个为一个考察不同页面置换算法 对于相同的引用串, 发生缺页的次数 随着分配给进程页框数量的增加, 缺页次数应当减少n g S y s t e m s , B J U T 缺页与页框数量的关系n g S y s t e m s , B J U T页面置换算法: FIFO策略 置换在主存中驻留最久的页面 把分配给进程的页框看作环形缓冲区, 以轮转的形式淘汰页面 特点最容易实现的置换策略☺ 经常将使用频率很高的页面淘汰出去n g S y s t e m s , B J U TFIFO 置换算法中的Belady 异常引用串: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 Belady 异常(Belady ’s Anomaly) 比较页框数为3和4: 页框数↑, 缺页次数↑n g S y s t e m s , B J U T页面置换算法: Optimal (OPT)策略: 置换哪一页? 今后不再访问的页, 或者 下次访问距离现在时间最长的页 特点无法实现不可能完全准确地预知页面访问的情况 理论上的算法, 可作为衡量其他算法的标准n g S y s t e m s , B J U T页面置换算法: LRU最近最少使用最近最少使用算法的策略算法的策略(Least Recently Used ) 置换上次访问距离现在时间最长的页面 根据局部性原理, 这一页在不久的将来会被访问的可能性最小 特点性能接近OPT没有Belady 异常需标记每页上次访问时间: 开销很大开销很大、、实现困难n g S y s t e m s , B J U T LRU 的实现计数器 页表项增加一个域: 使用时间 访问页时, 时钟 使用时间域 置换时, 使用时间域作为依据 问题 查找和更新页表(存储器访问)栈 双向链表形式的页号栈 访问页时: 移动至栈顶 需要改变几个指针? 置换时: 不需要查找n g S y s t e m s , B J U T9.5 页框的分配 分配给每个进程的分配给每个进程的最小页框数最小页框数 保证进程正常运行所需的最小页框数 由体系结构由体系结构决定决定(指令结构) 指令—本身长度操作数—源、目的地址, 间接寻址n g S y s t e m s , B J U T 页框分配算法平均分配 m 个进程, n 个页框 (n/m)页框/进程按比例分配根据进程大小, 按比例分配考虑优先级的分配算法n g S y s t e m s , B J U T全局置换和局部置换 局部置换一进程发生缺页, 仅在分配给自己的页框范围内选择内选择、、置换全局置换一进程发生缺页, 在全部页框范围内选择范围内选择、、置换“剥夺”其他其他进程的页框进程的页框n g S y s t e m s , B J U T9.6 系统颠簸/抖动颠簸/ 抖动(thrashing)进程不断地缺页进程不断地缺页、、调页, 几乎不能完成有效工作:分配给进程的页框数<进程当前运行需要的页面数 颠簸产生的原因 CPU 利用率低 增加多道程序度 每个进程的页框数更少 缺页次数更多 CPU利用率更低n g S y s t e m s , B J U T防止颠簸的方法采用局部置换策略 对未发生颠簸的进程也有影响挂起某些进程应用工作集理论防止颠簸 局部模型 控制缺页频率n g S y s t e m s , B J U T 缺页率n g S y s t e m s , B J U T 9.9 其他考虑预调页页面大小TLB 范围反向页表程序结构I/O 互锁实时处理n g S y s t e m s , B J U T预调页纯请求分页(pure demand paging)仅在需要时调入页在需要时调入页进程刚开始执行时出现大量缺页 预调页/预约式页面调度(prepaging )调入一组页, 而不只是所缺的那一页 适合于进程启动时期的调页 进程换入进程换入、、换出—记录工作集 关键问题: 有效性如何n g S y s t e m s , B J U T 页面大小页表的大小 页面大 页表小内碎片(内存利用) 页面小 内碎片小页面换入页面换入、、换出时间 页面大 时间短(参见课本307页例)局部性 页面小 更精确地匹配局部性 缺页次数↓ 页面太小 缺页次数↑ 缺页处理开销↑ 结论 没有最佳答案趋势: 页面越来越大n g S y s t e m s , B J U TTLB 范围TLB 范围(TLB reach)通过TLB 可访问的内存量TLB Reach = TLB_Size ×Page_Size 增加TLB 范围的方法增加页面大小使用大小不等的页面 需要OS 管理TLBn g S y s t e m s , B J U T反向页表自学 请求分页系统中的反向页表反向页表只有各进程在内存页面信息 需要外部页表记录不在内存页面的信息 外部页表可能换出内存n g S y s t e m s , B J U T 程序结构二维整数数组: int data[128][128];假设每行128个整数正好放入一页分配给进程的页框数< 128程序1, 缺页次数=?for (j = 0; j < 128; j++)for (i = 0; i < 128; i ++)data[i ][j] = 0;程序2 , 缺页次数=?for (i = 0; i < 128; i ++)for (j = 0; j < 128; j++)data[i ][j] = 0;有什么启示?n g S y s t e m s , B J U T I/O 互锁n g S y s t e m s , B J U T9.10 操作系统实例(自学, 了解)Windows XP Solarisn g S y s t e m s , B J U T补充内容(考试不要求)页面置换算法: 时钟算法页面置换算法: 页面缓冲算法工作集9.2 写时复制9.7 内存映射文件 9.8 内核内存分配n g S y s t e m s , B J U T 页面置换算法: 时钟(第二次机会)算法 方法每页与一个引用位关联 访问一页时, 把引用位置“1” 页的循环队列一个指针置换时: 扫描循环队列, 寻找引用位为寻找引用位为““0”的页 遇到引用位为遇到引用位为““1”的页 清“0”, 移动指针 遇到引用位为遇到引用位为““0”的页 置换, 移动指针n g S y s t e m s , B J U T时钟算法演示n g S y s t e m s , B J U TClock 算法的改进(自学) 综合考虑使用位综合考虑使用位、、修改位, 将页分为4种 Not accessed recently, not modified Not accessed recently, modified Accessed recently, not modified Accessed recently, modified 优先考虑替换未修改过的页面n g S y s t e m s , B J U T页面置换算法: 页面缓冲算法 背景LRU 和Clock 性能优于FIFO, 但复杂性和开销远超过FIFO 置换已修改页面代价> 置换未修改页面代价 页面缓冲算法使用比较简单的页面置换策略 获得较好页面调度性能 典型代表: VAX/VMSn g S y s t e m s , B J U T VMS 页面置换策略页面置换算法为FIFO在任何时刻, 系统都保留着少量的空闲页框 页面被置换时仍留在主存 两个目的地未修改页 空闲页列表表尾 已修改页 已修改页列表表尾如果被置换的页后来被引用, ……缺页时, 取空闲页列表表头, 装入新页 定期把已修改页列表中的页写回磁盘, 然后加入空闲页列表表尾 成批写回磁盘n g S y s t e m s , B J U T基于计数的页面置换(自学)计数–页引用计数最不经常使用页面置换算法(LFU –least frequently used) 最常使用页面置换算法(MFU –most frequently used)。