操作系统内存管理与应用_第1页
操作系统内存管理与应用_第2页
操作系统内存管理与应用_第3页
操作系统内存管理与应用_第4页
操作系统内存管理与应用_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、韩都衣舍男装衬衫专卖店 http:/ 天猫孕妇装秋装 http:/ 韩都衣舍女士时装店 http:/ 韩都衣舍官方网站 http:/ 韩都衣舍实体店在哪里 http:/ 1 操作系统操作系统内存管理与应用内存管理与应用 背景背景 交换交换 连续内存分配连续内存分配 分页分页 分段分段 带有分页的分段带有分页的分段2背景背景1. 地址捆绑:从一个地址空间到另一个地址空间的映射地址捆绑:从一个地址空间到另一个地址空间的映射0 编译时:若编译时知道进程将在内存的驻留地址,可编译时:若编译时知道进程将在内存的驻留地址,可以生成内存地址的绝对代码以生成内存地址的绝对代码0 加载时:加载时:若编译时不能确

2、定进程驻留何处,编译器生若编译时不能确定进程驻留何处,编译器生成可重定位代码(成可重定位代码(relocatable coderelocatable code),),捆绑延迟到捆绑延迟到加载时进行加载时进行0 执行时:若允许进程在执行时移动位置,捆绑必须延执行时:若允许进程在执行时移动位置,捆绑必须延迟到执行时进行迟到执行时进行32、逻辑地址空间与物理地址空间、逻辑地址空间与物理地址空间 逻辑地址(虚地址):逻辑地址(虚地址):CPU所生成的地址所生成的地址 物理地址(实地址):内存单元所看到的地址物理地址(实地址):内存单元所看到的地址 逻辑地址空间:由程序所生成的所有逻辑地址的集合逻辑地址

3、空间:由程序所生成的所有逻辑地址的集合 物理地址空间:由逻辑地址所对应的所有物理地址的集合物理地址空间:由逻辑地址所对应的所有物理地址的集合 内存管理单元(内存管理单元(memory-management unit,MMU):):一种硬件设备,负责虚地址到实地址的映射一种硬件设备,负责虚地址到实地址的映射 动态重定位动态重定位0在程序执行过程中,每次在访问内存单元之前把有关在程序执行过程中,每次在访问内存单元之前把有关的虚拟地址转换成实际的物理地址的虚拟地址转换成实际的物理地址0 需要基地址寄存器需要基地址寄存器Base Register Base Register 和虚拟地址寄存器和虚拟地址

4、寄存器Virtual RegisterVirtual Register支持支持4例:使用重定位寄存器的动态重定位例:使用重定位寄存器的动态重定位5 3. 动态加载(动态加载(dynamic loading):):一个子程序只有在调一个子程序只有在调用时才被加载用时才被加载0 不用的子程序不会被装入内存,节省内存空间不用的子程序不会被装入内存,节省内存空间4. 动态链接(动态链接(dynamically linked)与共享库与共享库0 动态链接动态链接:运行前只加载主程序,执行中每当需要调运行前只加载主程序,执行中每当需要调用一个新段时,才加载该段并与主程序段用一个新段时,才加载该段并与主程序

5、段链接链接0 共享库:在新库安装之前所链接的其他程序可以继续共享库:在新库安装之前所链接的其他程序可以继续使用老库使用老库65、覆盖(、覆盖(overlay)在任何时候只在内存中保留所需的指令和数据在任何时候只在内存中保留所需的指令和数据由用户实现,由用户实现,让不会同时调用的子模块共同使用同一内让不会同时调用的子模块共同使用同一内存区存区F20KD22KE24KB12KC15KA30K常驻常驻A(30KB)覆盖区覆盖区0(15KB)覆盖区覆盖区1(24KB)A占用占用BC共用共用DEF共用共用7交换(交换(swap) 思想:进程可以暂时从内存中交换出来到备份存储上,当思想:进程可以暂时从内存

6、中交换出来到备份存储上,当需要执行时再调回到内存中需要执行时再调回到内存中 分析分析0普通的交换需要很多时间,而且提供很少的执行时间普通的交换需要很多时间,而且提供很少的执行时间,不是一种有效的内存管理解决方案,不是一种有效的内存管理解决方案0一些交换的变种在许多系统中得以使用(如许多一些交换的变种在许多系统中得以使用(如许多UNIX版本中:交换通常不执行,但当有许多进程运行且内版本中:交换通常不执行,但当有许多进程运行且内存空间吃紧时,交换开始启动;如果系统负荷降低,存空间吃紧时,交换开始启动;如果系统负荷降低,交换就暂停)交换就暂停)8连续内存分配连续内存分配主要思想:每个进程位于一个连续

7、的内存区域主要思想:每个进程位于一个连续的内存区域1.内存保护内存保护0 问题:保护操作系统不受用户进程所影响,保护用户进程不受问题:保护操作系统不受用户进程所影响,保护用户进程不受其他用户进程所影响其他用户进程所影响0 方法方法1)存储键保护存储键保护v系统将主存划分成大小相等的若干存储块,并给每个存储块都分配一系统将主存划分成大小相等的若干存储块,并给每个存储块都分配一个单独的保护键(锁);在程序状态字个单独的保护键(锁);在程序状态字PSW中设置有保护键字段,对中设置有保护键字段,对不同的作业赋予不同的代码(钥匙);钥匙和锁相配才允许访问不同的作业赋予不同的代码(钥匙);钥匙和锁相配才允

8、许访问2)界限寄存器(下页图)界限寄存器(下页图)v上、下界防护:硬件为分给用户作业的连续的主存空间设置一对上、上、下界防护:硬件为分给用户作业的连续的主存空间设置一对上、下界,分别指向该存储空间的上、下界下界,分别指向该存储空间的上、下界v基址、限长防护:基址寄存器存放当前正执行者的程序地址空间所占基址、限长防护:基址寄存器存放当前正执行者的程序地址空间所占分区的始址,限长寄存器存放该地址空间的长度分区的始址,限长寄存器存放该地址空间的长度9下限寄存器2000上限寄存器3500基址寄存器2000限长寄存器1500进程id下限+上限寄存器基址+限长寄存器11000+19991000+99922

9、000+35002000+150034000+50004000+1000内存映像进程进程1进程进程2进程进程3100010001999199920002000350035004000400050005000正运行的进程是进程2102、内存分配、内存分配固定分区固定分区0思想:将内存分为多个固定大小的分区,每个分区只能容纳一个思想:将内存分为多个固定大小的分区,每个分区只能容纳一个进程进程可变分区动态存储分配可变分区动态存储分配0孔(孔(hole):):可用的一块内存可用的一块内存0思想:当进程需要内存时,查找足够大的孔,找到分配所需内思想:当进程需要内存时,查找足够大的孔,找到分配所需内存,未

10、分配的可以下次再用;当进程终止时,释放其内存,还给存,未分配的可以下次再用;当进程终止时,释放其内存,还给孔集合。孔集合。0查找孔集合以决定哪个孔最适合分配的算法查找孔集合以决定哪个孔最适合分配的算法x首次适应(首次适应(first-fit):):分配第一个足够大的孔分配第一个足够大的孔x最佳适应(最佳适应(best-fit):):分配最小的足够大的孔分配最小的足够大的孔x最差适应(最差适应(worst-fit):):分配最大的孔分配最大的孔产生外部碎片问题产生外部碎片问题11下表为某系统中的空闲分区表,系统采用可变式分区存下表为某系统中的空闲分区表,系统采用可变式分区存储管理策略。现有以下作

11、业序列:储管理策略。现有以下作业序列:96KB,20KB,200KB,分别使用首次适应、最佳适用和最坏适用算法分别使用首次适应、最佳适用和最坏适用算法来处理这个作业序列,试问哪一种算法可以满足该作业来处理这个作业序列,试问哪一种算法可以满足该作业序列的请求,为什么?序列的请求,为什么?分区号分区号大小大小起始地址起始地址132KB100KB210KB150KB35KB200KB4218KB220KB596KB530KB例题:例题:FF(N)BF(Y)WF(N)2/20/122/20/121/96/1223/200/181/96/1222/20/1021/96/012 FFFF、BFBF、WFW

12、F比较:比较: 内存分配上,内存分配上,FFFF最快。(不需调整新空闲区最快。(不需调整新空闲区位置)位置) 内存回收上,内存回收上,FFFF最佳。(合并容易)最佳。(合并容易) 查找满足要求的空闲区时,查找满足要求的空闲区时,WFWF最快。最快。 查找最合适的空闲区时,查找最合适的空闲区时,BFBF最快。最快。 空闲区利用率:与请求顺序和空闲区位置有空闲区利用率:与请求顺序和空闲区位置有关。关。133、碎片、碎片 外部碎片:存在分区外,所有内存之和可以满足请求,但外部碎片:存在分区外,所有内存之和可以满足请求,但不连续不连续 内部碎片:存在分区内,但已不能满足任何请求内部碎片:存在分区内,但

13、已不能满足任何请求 解决外部碎片问题的方法解决外部碎片问题的方法0紧缩(紧缩(compaction):):移动内存内容,以便所有空闲移动内存内容,以便所有空闲空间合并成一整块空间合并成一整块0允许物理地址空间为非连续允许物理地址空间为非连续x 分页(分页(9.4)x 分段(分段(9.5)14分页(分页(paping)1. 基本方法基本方法1) 基本概念基本概念0 物理内存分为固定大小的块帧(物理内存分为固定大小的块帧(frame)0 逻辑内存分为同样大小的块页(逻辑内存分为同样大小的块页(page)0 数据结构:页表(包含每页所在物理内存的基地址)数据结构:页表(包含每页所在物理内存的基地址)

14、0 逻辑地址:页码(逻辑地址:页码(p)页偏移(页偏移(d)0 物理地址:基地址页偏移物理地址:基地址页偏移0 页大小(帧大小)由硬件决定,通常为页大小(帧大小)由硬件决定,通常为2的幂的幂15页页0页页1页页2页页314370 1 2 3页页0页页2页页1页页30 1 2 3 4 5 6 7逻辑内存逻辑内存页表页表物理内存物理内存页号页号 帧号帧号帧号帧号2) 物理内存和逻辑内存的分页模型物理内存和逻辑内存的分页模型163) 逻辑地址到物理地址的转换逻辑地址到物理地址的转换56120 1 2 3页表页表例:例:说明:页大小为说明:页大小为4B,页表如图所示页表如图所示,将逻辑地址,将逻辑地址

15、0、3、4、13转换为相转换为相应物理地址应物理地址答案:答案:20、23、24、90/4=00 54+0=203/4=03 54+3=234/4=10 64+0=2413/4=31 24+1=9174) 练习:逻辑地址到物理地址的转换练习:逻辑地址到物理地址的转换 说明:页大小为说明:页大小为1024B,页表如图所示页表如图所示,将逻辑地址,将逻辑地址1011、2148、3000、4000、5012转换为相应物理地址转换为相应物理地址23160 1 2 3页表页表 答案:答案:3059、1124、1976、7072、逻辑地址非法逻辑地址非法1011/1024=01011 21024+1011

16、=30592148/1024=2100 11024+100=11243000/1024=2952 11024+952=19764000/1024=3928 61024+928=70725012/1024=4916 页号页号4不存在不存在182、硬件支持、硬件支持页表的硬件实现页表的硬件实现0 将页表作为一组专用寄存器来实现将页表作为一组专用寄存器来实现0 将页表放在内存中将页表放在内存中访问用户内存位置所需要的时间问题访问用户内存位置所需要的时间问题0 翻译后备缓冲(翻译后备缓冲(translation look-aside buffer,TLB):):关联的快速内存关联的快速内存0 TLB与

17、页表一起工作(了解工作过程)与页表一起工作(了解工作过程)19思考思考 设访问内存的时间为设访问内存的时间为100100nsns,访问快表(访问快表(TLBTLB)的时间为的时间为2020nsns,如果快表命中率为如果快表命中率为80%80%,则将逻辑地址转换成物理,则将逻辑地址转换成物理地址进行内存访问的有效访问时间是多少地址进行内存访问的有效访问时间是多少( (包括一次取帧包括一次取帧号和一次取数据的时间号和一次取数据的时间) ) ?(20+100)(20+100)80% +(20+10080% +(20+100* *2)2)20% = 14020% = 140nsns 不用快表时,由于帧

18、号和数据都位于内存,需访问不用快表时,由于帧号和数据都位于内存,需访问两次内存,需两次内存,需100100* *2 = 2002 = 200nsns203、保护、保护保护位(与每个帧相关联)保护位(与每个帧相关联)有效无效位(与页表中的每一条目相关联)有效无效位(与页表中的每一条目相关联)页表长度寄存器(表示页表大小,可检测逻辑地址是否合法)页表长度寄存器(表示页表大小,可检测逻辑地址是否合法)4、页表结构、页表结构组织页表的常用技术组织页表的常用技术0层次化分页层次化分页0哈希页表哈希页表0反向页表反向页表5、共享页、共享页共享共同代码,即分页内存管理方案允许多个进程共享相同的物理页共享共同

19、代码,即分页内存管理方案允许多个进程共享相同的物理页21 分页技术分页技术不会不会产生产生外部碎片外部碎片,但,但会会产生产生内内部碎片部碎片 分页的重要特点是用户观点的内存和实际分页的重要特点是用户观点的内存和实际的物理内存的分离的物理内存的分离 分页可以共享共同代码分页可以共享共同代码分页内存管理方案小结分页内存管理方案小结22分段分段1、基本方法、基本方法 将内存看成一组不同长度的段的集合,这些段之间没有将内存看成一组不同长度的段的集合,这些段之间没有一定的顺序。一定的顺序。 逻辑地址空间由一组段组成,每个段都有名称和长度,逻辑地址空间由一组段组成,每个段都有名称和长度,用户通过两个量来

20、指定地址:段名称和偏移用户通过两个量来指定地址:段名称和偏移 逻辑地址逻辑地址通常使用的格式通常使用的格式23段表:将二维的逻辑地址映射为一维物理地址段表:将二维的逻辑地址映射为一维物理地址段基地址:包含该段在内存中的开始物理地址段基地址:包含该段在内存中的开始物理地址段界限:指定该段的长度段界限:指定该段的长度逻辑地址:段号逻辑地址:段号s段内偏移段内偏移d逻辑地址到物理地址的转换逻辑地址到物理地址的转换1)段号与段表长度进行比较,若段号超过了段表长度,则越段号与段表长度进行比较,若段号超过了段表长度,则越界(非法地址),否则转界(非法地址),否则转2)2)根据段表始址和段号计算出该段对应段

21、表项的位置,从中根据段表始址和段号计算出该段对应段表项的位置,从中读出该段在内存的起始地址,检查段内地址是否超过该段读出该段在内存的起始地址,检查段内地址是否超过该段的段长,若超过则越界(非法地址),否则转的段长,若超过则越界(非法地址),否则转3)3)将该段的起始地址与段内位移相加,从而得到要访问的物将该段的起始地址与段内位移相加,从而得到要访问的物理地址理地址2、硬件、硬件24逻辑地址到物理地址转换例逻辑地址到物理地址转换例说明:段表如表说明:段表如表1所示,将表所示,将表2所示逻辑地址转换为相应物理地址所示逻辑地址转换为相应物理地址答案:见表答案:见表3段号段号内存起始地址内存起始地址段

22、长段长02196001230014290100313275804195296段号段号段内位移段内位移2884100178非法非法 表表1 表表2 表表390+881009625说明:段表如表说明:段表如表1所示,将表所示,将表2所示逻辑地址转换为相应物理地址所示逻辑地址转换为相应物理地址答案:见表答案:见表3逻辑地址到物理地址转换练习逻辑地址到物理地址转换练习段号段号段内位移段内位移0430110250034004112532段号段号内存起始地址内存起始地址段长段长02105001235020210090313505904193895 表表1 表表26402360非法非法1750非法非法非法非

23、法表表3210+4302350+10500901350+40011295段号段号5不存在不存在263、保护与共享、保护与共享 分段的优点分段的优点1) 可以将段与对其的保护相关联可以将段与对其的保护相关联段表示一个有一段表示一个有一定语义的程序部分定语义的程序部分2) 关于代码和数据的共享关于代码和数据的共享共享在段级进行共享在段级进行4、碎片(外部碎片)、碎片(外部碎片) 外部碎片的严重程度取决于平均段的大小外部碎片的严重程度取决于平均段的大小1) 定义一个进程为一段定义一个进程为一段变长分区变长分区2) 定义一个字节为一段定义一个字节为一段可取消外部碎片可取消外部碎片3) 段大小固定段大小固定分页分页 总结:若平均段的大小不大,外部碎片也会不大总结:若平均段的大小不大,外部碎片也会不大27补充:分段与分页的区别补充:分段与分页的区别 段是信息逻辑单位,页是物理单位(长度)段是信息逻辑单位,页是物理单位(长度) 段长不固定,页等长段长不固定,页等长 页号连续,段号间无顺序关系页号连续,段号间无顺序关系 段式地址空间是二维的,页式地址空间是一维的段式地址空间是二维

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论