操作系统第9章课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《操作系统第9章课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 课件
- 资源描述:
-
1、操作系统概念第九章:虚拟内存2本章主要内容n背景n按需调页n写时复制n页面置换n帧分配n系统颠簸n内存映射文件n其他考虑39.1 背景n常规存储方器管理方式的特征:n一次性n驻留性4程序执行的局部性原理程序执行的局部性原理虚拟存储的虚拟存储的理论依据理论依据n程序执行时,除了少部分的转移和过程调用外,在大多数情况下仍是顺序执行的n过程调用将会使程序的执行轨迹由一部分区域转至另一部分区域,但研究发现,过程调用的深度在大多数情况下都不超过5。即程序将会在一段时间内局限在这些过程的范围内运行。n程序中存在很多循环结构,这些虽然只是少数指令构成,但是他们将多次执行。n程序中还包括许多对数据结构的处理,
2、比如数组,他们往往都局限于很小的范围内5局限性又表现在下述两个方面n时间局限性n如果程序中某条指令一旦执行,则不久后该指令可能再次执行;如果某数据被访问过,则不久后该数据可能再次被访问n产生时间局限性的典型原因是由于在程序中存在着大量的循环操作n空间局限性n一个程序访问了某个存储单元,在不久之后,其附近的存储单元也将被访问。即程序在一段时间内所访问的地址,可能集中在一定的范围之内n典型原因就是程序的顺序执行6n在许多情况下,(加载)整个程序是没必要的在许多情况下,(加载)整个程序是没必要的n允许程序部分加载即可运行会有许多好处:允许程序部分加载即可运行会有许多好处:nA program wou
3、ld no longer be constrained by the amount of physical memory.nMore programs could be run at the same time, with a corresponding increase in CPU utilization and throughput.nLess I/O would be needed to load or swap each user program into memory, so each user program would run faster.7n 用户逻辑存储与物理存储分离用户
4、逻辑存储与物理存储分离n仅部分程序必须在内存,以使其运行仅部分程序必须在内存,以使其运行n 从而逻辑地址空间远大于物理地址空间从而逻辑地址空间远大于物理地址空间 使得编程更加容易,程序员只需关心所要解决的问题使得编程更加容易,程序员只需关心所要解决的问题 采用虚拟内存的系统几乎用不到覆盖采用虚拟内存的系统几乎用不到覆盖n 允许更有效的进程创建允许更有效的进程创建(写时拷贝写时拷贝)n所谓虚拟存储器,是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统89n虚拟存储可通过以下方式实现虚拟存储可通过以下方式实现: 请求分页管理方式 请求分段管理方式式n但是,段的替换算法比页
5、替换算法复杂,因为段的大小不同 请求段页式管理方式10n其逻辑容量是由内存容量和外存容量之和所决定的,其运行速度接近于内存速度,而每位的成本却又接近于外存。可见,虚拟存储器是一个性能非常优越的存储管理技术,故被广泛应用于大、中、小型机器和微型机中n虚拟存储器的实现都毫无例外地建立在离散分配的存储管理方式的基础上n虚拟存储器的特征:多次性、对换性、虚拟性119.2 按需调页n一个执行程序如何从磁盘载入内存?n将整个程序载入内存n在需要时调入相应的页按需调页12n按需调页系统类似于按需调页系统类似于nBut we use a nSwapper(交换程序交换程序) vs Pager(调页程序调页程序
6、)pager never swaps a page into memory unless that page will be needed.swapper manipulates entire processes.13分页的内存与邻接的磁盘空间之间的传递149.2.1 基本概念n只在页面需要时,才把它们载入内存n需要更少的输入输出n更小的内存n更快的响应n更多的用户15有效-无效位n页表中的每一条目与一有效无效位与之关联。(1表示该页在内存中,0表示不在内存)n有效无效位初始为0n当进程试图访问那些尚未调入到内存的页时,对标记为无效的页面的访问会产生页错误陷阱(page-fault trap)
7、16当有些页不在内存中时的页表17页错误的处理1.检查进程的页表,以确定该引用是合法还是非法的地址访问。2.如果引用非法,那么终止进程。如果引用有效但是尚未调入页面,那么现在应调入。3.找到一个空闲帧(从空闲帧链表中取一个)4.调度一个磁盘操作,以便将所需要的页调入刚分配的帧5.当磁盘读操作完成后,修改进程的内部表和页表,以表示该页已在内存中。6.重新开始因非法地址陷阱而中断的指令。进程现在能访问所需的页,就好像它似乎总在内存中。18处理页错误的步骤19nNever bring a page into memory until it is required.nStart executing a
8、 process with no pages in memoryn理论上,某些程序每次执行指令可能访问多理论上,某些程序每次执行指令可能访问多个个新新内存页内存页none page for the instruction and many for datanpossibly causing multiple page faults per instruction.nFortunately, programs tend to have 20请求页式调度的性能n设P为页错误的概率(0P 1)n如果P等于0,则不存在页错误n如果等于,则每次访问都存在页错误n有效访问时间n (1P) 内存访问时间 +
9、 P页错误时间n设内存访问时间为100ns,平均错误页处理为25ms,则EAT为nEAT = (1-P) 100ns + P 25msn = 100 + 24999900P ns21nA page fault caused the following sequence to occur:nTrap to the OSnSave the user registers and process statenDetermine that the interrupt was a page faultnCheck that the page reference was legal and determin
10、e the location of the page on the disknIssue a read from the disk to free framenWhile waiting, allocate the CPU to some other usernReceive an interrupt from the disk I/O (I/O completed)nSave the registers and process state for the other usernDetermine that the interrupt was from the disknCorrect the
11、 page table and other tables to show that the desired page is now in memorynWait for the CPU to be allocated to this process againnRestore the user registers, process state, and new page table, and then resume the interrupted instruction22三个主要的页错误处理时间n处理页错误中断n读入页n重新启动进程23nExamplenMemory access time
12、= 100 nanosecondsnAn average page-fault service time=25 millisecondsnEAT(in nanoseconds) = (1 p) x ma + p x Page-fault service time = (1 p) x 100 + p x 25,000,000 =100+24,999,900 x p nThe EAT is directly proportional to the page-fault rate.nIf we want less than 10-percent degradation,we needx p x p
13、p 0.0000004n请求页面调度中,降低页错误率是非常重要的请求页面调度中,降低页错误率是非常重要的n请求页面调度的另一个重要方面是交换空间的处理和使用请求页面调度的另一个重要方面是交换空间的处理和使用249.3 写时复制(Copy on write)n写时拷贝允许父进程和子进程开始时共享同一页面。n这些页面标记为写时复制,即如果任何一个进程需要对页进行写操作,那么就创建一个共享页的拷贝。n采用写时拷贝技术,很显然只有被进程所修改的页才会复制,因此创建进程更有效率。n写时拷贝时所需的空闲页来自一个空闲缓冲池。该缓冲池中的页在分配之前先填零,以清除以前的页内容。25physical memo
14、ryphysical memory269.4 页面置换n给原有的页错误服务程序增加页置换,可以防止内存的过度分配过度分配(over-allocating)。27需要页置换的情况289.4.1 页置换的基本方法1.查找所需页在磁盘上的位置2.查找一空闲帧n如果有空闲帧,那么就使用它n如果没有空闲帧,那么就使用页置换算法以选择一个“牺牲”帧(victim frame)。n将“牺牲”帧的内容写到磁盘上;改变页表和帧表。3.将所需页读入(新)空闲帧;改变页表和帧表4.重启用户进程。29页置换30n如果没有空闲帧,那么需要两个页传输,将页错误处理时间加倍,相应地增加了有效访问时间n使用修改位(脏位)来降
15、低页传输的开销 只有被修改过的页才写回至磁盘。n页置换分开了逻辑内存与物理内存 采用这种机制,小的物理内存能为程序员提供巨大的虚拟内存。31实现按需调页需要解决的问题n帧分配算法n决定为每个进程各分配多少帧n页置换算法n需要页置换时,选择要置换的帧32页置换算法n追求最低的页错误率n通过运行一特殊字符串(引用串,reference string)来检验算法,计算其页错误率n针对某一特定引用串和页转换算法,为了确定页错误的数量,还需要知道可用帧的数量。n为了讨论页转换算法,将采用以下引用串,而可用帧的数量为3n7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2
16、, 0, 1, 7, 0, 133页错误与帧数量关系图34页置换算法nFIFO页置换n最优置换nLRU页置换n近似LRU页置换n基于计数的页置换35FIFO页置换n基本思想n最简单的页置换算法。nFIFO为每个页记录着进入内存的时间,当必须置换一页时,将选择最旧的页n并不需要记录调入一页的确切时间,可以创建一个FIFO对列来管理内存中的所有页36FIFO Page Replacement7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 137nReference string: 1, 2, 3, 4, 1, 2, 5, 1, 2,
展开阅读全文