




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、操作系统实验课程windows内存管理操作系统课程组xidian universityos experiments -2-xidian universityos experiments -3-windows虚拟地址空间v虚拟地址空间虚拟地址空间(virtual address space)va set of virtual memory addresses that a process can use.v特点特点v平面平面(线形线形)空间空间v大小和物理内存无关大小和物理内存无关v每个进程拥有的私有地址空间,其他的进程在未经允许的条件下不能每个进程拥有的私有地址空间,其他的进程在未经允许的条件
2、下不能访问此地址空间访问此地址空间xidian universityos experiments -4-windows虚拟地址空间v32-bit x86 address spacev虚拟地址空间最大为虚拟地址空间最大为4gb2 gb用户进程空间用户进程空间(低端(低端x00000000 x7fffffff)2 gb系统空间系统空间(受保护(受保护,高端高端x80000000-xffffffff)default3 gbuserprocess space1 gbsystem space3 gb user spacewindows 2000 advanced server, windows xp(s
3、p2及后继版本及后继版本), windows server 2003xidian universityos experiments -5-windows虚拟地址空间virtual pagespagetableentries000000007fffffffc0000000c100000080000000ffffffffphysical memoryxidian universityos experiments -6-windows虚拟地址空间v64-bit address spaces8192 gb(8 tb)userprocess space6657 gbsystemspace7152 gb(
4、7 tb)userprocess space6144 gbsystemspacex64itaniumxidian universityos experiments -7-windows内存管理器vwindows的内存管理器是执行体的内存管理器是执行体(executive)的一部分,位的一部分,位于文件于文件ntoskrnl.exe中中简化的简化的windows结构图结构图xidian universityos experiments -8-windows内存管理器v内存管理器的主要任务内存管理器的主要任务v将一个进程的虚拟地址空间映射到物理内存中将一个进程的虚拟地址空间映射到物理内存中(map
5、ping)。v数据交换数据交换(swap)。当物理内存被过度使用时,将内存中的一些内容。当物理内存被过度使用时,将内存中的一些内容转移到磁盘上;并且,在以后需要这些内容时,再将它们读回到物理转移到磁盘上;并且,在以后需要这些内容时,再将它们读回到物理内存中。内存中。xidian universityos experiments -9-windows内存管理器v内存管理器提供的服务内存管理器提供的服务(面向用户面向用户)v分配和释放虚拟内存分配和释放虚拟内存v进程之间共享内存进程之间共享内存v将文件映射到内存将文件映射到内存v将虚拟页面刷新到内存将虚拟页面刷新到内存v获得虚拟页面的信息获得虚拟页
6、面的信息v改变虚拟页面的保护属性改变虚拟页面的保护属性v将虚拟页面锁在内存将虚拟页面锁在内存api函数:函数:页面粒度的虚拟内存函数页面粒度的虚拟内存函数内存映射文件函数内存映射文件函数堆函数堆函数xidian universityos experiments -10-windows的内存管理方案vwindows内存管理采用的是虚拟页式管理方案,默认情况内存管理采用的是虚拟页式管理方案,默认情况下,每个页面大小为下,每个页面大小为4kb。vwindows页面组织方式页面组织方式(二级页表结构二级页表结构)v页表页表(page table): a page of mapping informat
7、ionpage table(1024 ptes,每个页表可映射每个页表可映射4mb数据页面数据页面)pte(page table entry): 4字节字节xidian universityos experiments -11-windows的内存管理方案v页目录页目录(page directory)page directory(one per process, 1024 entries)page tablespde(page directory entries )4字节字节: 记录页表的状态和位置记录页表的状态和位置kprocessxidian universityos experiment
8、s -12-windows的内存管理方案page tablesphysicalpage number(“page framenumber” or “pfn”)physical pages123456789101112pfn 0page directorykprocessxidian universityos experiments -13-虚拟页号虚拟页号windows虚拟地址变换vx86系统系统32位虚拟地址结构位虚拟地址结构 31 22 21 12 11 010 bits10 bits12 bits页目录索引页目录索引页表索引页表索引页内字节索引页内字节索引xidian universit
9、yos experiments -14-windows虚拟地址变换v地址变换过程地址变换过程(x86系统系统)page tableselectorpage tableentry selectorbyte within pageindexpage directoryindexpage tablesphysicalpage number(“page framenumber” or “pfn”)physical pages123456789101112pfn 031 0xidian universityos experiments -15-windows页面错误v在页面表换该过程中,可能会发现在页面
10、表换该过程中,可能会发现pte的有效位被清除的情的有效位被清除的情况,这表明出于某种原因,该页面无法被当前进程访问。在况,这表明出于某种原因,该页面无法被当前进程访问。在此对一个无效页面的引用被称为页面错误此对一个无效页面的引用被称为页面错误(page fault)v引发错误的原因引发错误的原因v缺页缺页v页面在内存,但在备用或修改队列中页面在内存,但在备用或修改队列中v访问违例访问违例xidian universityos experiments -16-windows页面错误v缺页错误的处理方法缺页错误的处理方法v采用请求调页和页簇化技术采用请求调页和页簇化技术当发生缺页中断时,当发生缺页
11、中断时,windows内存管理器将所需页面及其之前或之后的内存管理器将所需页面及其之前或之后的少量页面一起加载到内存中。根据程序行为局部性理论,这种页簇化技少量页面一起加载到内存中。根据程序行为局部性理论,这种页簇化技术可以减少缺页中断次数。术可以减少缺页中断次数。windows系统中如果缺页的原因是因为引用数据页面错误,则簇的大小系统中如果缺页的原因是因为引用数据页面错误,则簇的大小为为3,否则为,否则为7。xidian universityos experiments -17-工作集v定义定义va subset of virtual pages resident in physical m
12、emory.v分类分类v进程工作集:进程当前在内存中的页面的集合。进程工作集:进程当前在内存中的页面的集合。v系统工作集:系统代码和数据驻留在内存中的页面的集合。系统工作集:系统代码和数据驻留在内存中的页面的集合。xidian universityos experiments -18-工作集v工作集管理工作集管理v每个进程在开始时都有一个默认的工作集大小每个进程在开始时都有一个默认的工作集大小(50个页面个页面)和一个最大和一个最大值值(345个页面个页面)。工作集最大值是在系统初始化时计算得到的。工作集最大值是在系统初始化时计算得到的。v工作集最大值的上限工作集最大值的上限xidian un
13、iversityos experiments -19-工作集vwindows对工作集大小的调整对工作集大小的调整当一个进程的工作集降低到最小工作集后,如果该进程再发生缺页中断,当一个进程的工作集降低到最小工作集后,如果该进程再发生缺页中断,则该进程的工作集增加。则该进程的工作集增加。当一个进程的工作集升到最大工作集后,如果没有足够内存可用,则进当一个进程的工作集升到最大工作集后,如果没有足够内存可用,则进程每发生一次缺页中断,程每发生一次缺页中断,windows内存管理程序从该进程工作集中淘汰内存管理程序从该进程工作集中淘汰掉一个旧页掉一个旧页(全局和局部组合的模式全局和局部组合的模式:局部局
14、部fifo算法算法),然后调入新页。不,然后调入新页。不过如果此时内存空间足够,过如果此时内存空间足够,windows也允许进程的工作集超越其最大工也允许进程的工作集超越其最大工作集。作集。当物理内存不足时,当物理内存不足时,windows会检测每一个进程的工作集大小,如果大会检测每一个进程的工作集大小,如果大于其最小工作集,则淘汰该工作集中的一些页,直到空闲内存数量足够于其最小工作集,则淘汰该工作集中的一些页,直到空闲内存数量足够用或者每个进程都达到其最小工作集。用或者每个进程都达到其最小工作集。xidian universityos experiments -20-further read
15、ingvmark e. russinovich and david a. solomon, microsoft windows internals, 4th edition, microsoft press, 2004. vchapter 7 - memory managementpage fault handlingworking sets memory poolspage frame number databasememory managerservices the memory manager providesaddress translationshared memory and ma
16、pped filesxidian universityos experiments -21-source code referencesvwindows research kernel sourcesvbasentosmm memory managerbasentosincmm.h additional structure definitionsbasentoscache cache managerwslist.c, wsmanage.c working set managementpfnlist.c physical memory list managementmodwrite.c modified page writerxidian universityos experiments -22-references1 mark e. russinovich and d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 蒸汽供气合同范本
- 单位返聘合同范本
- 农村工程改建合同范本
- 农村住房贷款买卖合同范本
- 买卖股份合同范本
- 单位购买服装购买合同范本
- 劳动仲裁聘用合同范本
- 出售废钢 废铁合同范本
- 劳务分包项目合同范本
- 中介甲乙丙方合同范本
- Unit 4 Time to celebrate 教学设计-2024-2025学年外研版英语七年级上册
- 健康档案模板
- 筋膜刀的临床应用
- DB32-T 4790-2024建筑施工特种作业人员安全操作技能考核标准
- 2022年安徽阜阳太和县人民医院本科及以上学历招聘笔试历年典型考题及考点剖析附带答案详解
- 2024-2030年中国反刍动物饲料行业市场发展趋势与前景展望战略分析报告
- 护理团体标准解读-成人氧气吸入疗法护理
- 幼儿园大班《识字卡》课件
- 2024-2030全球与中国宠物医院市场现状及未来发展趋势
- 《研学旅行课程设计》课件-2认识研学旅行的参与方
- 安全警示教育的会议记录内容
评论
0/150
提交评论