虚拟内存管理.pptx
《虚拟内存管理.pptx》由会员分享,可在线阅读,更多相关《虚拟内存管理.pptx(62页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1主要内容虚拟内存技术的引入虚拟内存技术概念虚拟内存的实现分页技术实现的虚拟内存第1页/共62页2虚拟内存技术的引入内存空间大小的问题内存空间问题的解决办法软件解决方案的基础操作系统的解决办法第2页/共62页3内存空间大小的问题 每个程序运行所需空间不能超过可用内存程序会因不能装入内存而无法运行程序的功能越来越复杂、代码越来越长采用覆盖技术限制太大程序员在写程序时要考虑内存大小、考虑覆盖第3页/共62页4内存空间问题的解决办法硬件:增加内存软件:改变程序的要求问题关键:如果程序可以不用全部放在内存中就能够执行第4页/共62页5软件解决方案的基础 并不需要所有代码和数据都放到内存中一个CPU在某
2、个时刻只能访问一条语句或者一个数据有成熟的地址重定向技术允许程序在内存中的位置不连续且可以变化第5页/共62页6操作系统的解决办法不再一次把一个进程的全部信息都装入到内存中只是装入一部分然后调度进程运行其他部分等到需要时再装入第6页/共62页7操作系统的解决办法多大的程序都可以在有限的内存中运行程序员写程序时再不用考虑内存的大小程序员可以编写使用任意大内存空间的程序1G的程序,编译程序编址地址空间从0到1G,程序可在只有256M内存的计算机上运行程序员感觉他有1G大的内存空间,而不是256M第7页/共62页8虚拟内存技术虚拟内存空间程序员写程序时使用的地址空间虚拟内存技术采用虚拟空间独立编址、
3、操作系统负责把一个大的虚拟空间的内容分阶段装入实际内存中运行的技术程序员以为自己有一很大内存空间,且独享虚拟空间受限于地址宽度32位虚拟地址,虚拟空间上限4G第8页/共62页9虚拟内存技术的实现 内存分配 访问内存淘汰第9页/共62页10内存分配先把程序分成若干部分选择把一部分装载到内存中记录信息哪些部分装载到内存中,哪些没有装载到内存中的部分放在什么位置可采用页式、段式、段页式第10页/共62页11内存分配页式虚拟空间仍然分成页在页表中增加一个标志,表示这个页是否在内存中如果在内存中,页表中记录相应页框号第11页/共62页12访问内存查找页表或者段表,判断内容是否在内存中已经被装入到内存中利
4、用页表或者段表中的信息,把虚拟地址转换成对应的物理地址未装入到内存在内存中找一块空闲空间分配给进程把要访问的内容从外存读取到内存修改页表或者段表第12页/共62页13淘汰如果内存中没有空闲空间,或者空闲空间低于限定值选择内存中一些正被使用的单元把里面的内容写回到外存把这些空间释放出来分配给需要的进程第13页/共62页14淘汰抖动选择今后不会或者最近不会用到的内容换出局部性原理一般情况下一个进程在一段时间内要访问的指令和数据都集中在一起第14页/共62页15虚拟内存技术实现的基础局部性原理地址重定向技术使程序在一定程度上不再受物理内存大小的限制第15页/共62页16分页技术实现的虚拟内存 内存分
5、配虚拟空间的管理物理内存空间分成与页面大小相同页框空闲页框管理页表内存访问缺页中断页面淘汰第16页/共62页17虚拟空间的管理地址长度确定虚拟空间的大小如32位的Linux操作系统的虚拟空间大小4G分为系统空间和用户空间第17页/共62页18空闲页框管理链表位图第18页/共62页19页表创建新进程时,在内存中为进程创建一个页表为进程分配内存,填写页表相关内容第19页/共62页20页表表项结构页面访问位页面访问位 A A 0页面不在内存页面不在内存1 1页面在内存页面在内存0页面未被访问页面未被访问1 1页面已被访问页面已被访问0页面未被修改页面未被修改1 1页面已被修改页面已被修改判断缺页中断
6、判断缺页中断影响页影响页面面置换策略置换策略是否重写外存是否重写外存 页面存在位页面存在位 P P 页面修改位页面修改位 M M 页号页号页框号页框号 存取控制 页面存在页面存在 P P 页面访问页面访问 A A 页面修改页面修改 M M 外存地址外存地址第20页/共62页21页表大小 4GB虚拟空间分成512字节大小的页,共有4*230/29=4*221=8M个页每个页的页表项占4个字节进程页表大小为 8M*4B=32MB第21页/共62页22解决办法 把页表看作是在虚拟空间中整个页表也被分页页表不全部放在内存中每次系统只装载页表的一部分放在内存中的页表页也不再连续存放 第22页/共62页2
7、3多级页表页目录表描述哪些页表页已经在内存中、哪些还不在在内存中的页表页放在什么地方第23页/共62页24多级页表第24页/共62页25两级页表结构的地址转换第25页/共62页26倒排页表按页框号排序每个页框占有一个表项每个表项存放在该页框中页面的虚拟页号拥有该页面的进程标识符第26页/共62页27倒排页表第27页/共62页28倒排页表节省空间虚拟空间很大,如64位页表大小(页面大小为4KB,每个页表项8个字节)8*264/212=255=235*220=235G查找费时按照虚拟页号查找整个页表解决办法散列页表快表TLB第28页/共62页29散列页表以页号作为参数形成散列值散列表中每一项有一个
8、链表把有相同散列值的元素链接起来每个链表元素由三部分组成页号对应的内存块号指向链表中下一个元素的指针第29页/共62页30散列页表第30页/共62页31关联高速缓存TLB实现虚拟内存引入时间开销地址转换的时间开销读取进程的页表、页面目录一次访存变成两次、三次访存动作CPU内部设置专门用来存放页表的缓存放置最近经常用到的页表项第31页/共62页32高速关联缓存提高查找页表项的速度以其中某一存储项内容作为地址来存取的存储器也称TLB,Translation Lookaside Buffer(转换检测缓冲区)第32页/共62页33高速关联缓存第33页/共62页34单元访问访问虚拟地址单元的内容按照页
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 虚拟内存 管理
限制150内