4补充.实例研究:存储管理.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
虚拟存储管理实例研究 实例研究1:Windows 2000/XP虚拟存储管理 实例研究2:Linux虚拟存储管理 工作集管理(1) ?工作集:该进程当前在内存中的页面的集合。 ?创建一个进程时,系统为其指定最小工作集和最大工作集, ?系统初始化时,计算进程最小和最大工作集值,当物理内存大于32MB(server大于64MB)时,进程缺省最小工作集为50页,最大工作集为345页。 工作集管理(2) 进程工作集降到最小后,如果发生缺页中断,且内存并不满,系统会增加该进程的工作集尺寸。 进程工作集升到最大后,如果没有足够内存可用,则该进程每发生一次缺页中断,系统都要从工作集中淘汰掉一页,再调入此次页中断所请求的页。 如果有足够内存可用,系统也允许一个进程的工作集超过它的最大工作集尺寸。 工作集管理(3) 当物理内存剩余不多时,系统检查每个进程,其当前工作集是否大于其最小工作集,是则淘汰该进程工作集中的一些页,直到空闲内存数量足够或每个进程都达到其最小工作集。 工作集管理(4) 系统定时从进程中淘汰一个有效页,观察其是否对该页发生缺页中断,以此测试和调整进程当前工作集的合适尺寸。如果进程继续执行,并未对被淘汰的页发生缺页中断,则该进程工作集减1,该页被加到空闲链表中。 系统工作集中可以驻留5种页面 系统高速缓存页面 分页缓冲池 Ntoskrnl.exe中可分页代码和数据 设各驱动程序中可分页代码和数据 系统映射视图 (1) 锁内存: (2)分配粒度: (3) 内存页级保护机制 : 区分核心态和用户态, 每个进程只有独立、私有的虚拟地址空间,禁止其他进程的线程访问, 以页面为单位的保护机制, 以对象为单位的保护机制。 6其他内存管理机制(1) 实例研究2:Linux虚拟存储管理 1 Linux存储管理概述 2 进程的虚拟地址空间 3 Linux物理内存空间的管理 4 用户态内存的申请与释放 5 内存的共享和保护 6 交换空间、页面的换出和调入 7 缓冲机制 1Linux虚拟存储管理概述(1) Linux用户进程可访问4GB线性地址空间。从0从3GB的虚拟内存地址是用户空间。 3GB到4GB的虚拟内存地址是内核态空间,存放仅供内核态访问的代码和数据。 ? 页表分为三层: ?页目录PGD、中间页目录PMD和页表PTE。 ?Pentium计算机上被简化成两层,PGD和PMD合二为一。 ?每个进程有一个页目录,存储该进程所使用的内存页面 2Linux进程的虚拟地址空间 进程虚拟地址空间由许多个连续虚地址区域构成,采用虚存段vma及其链表来表示。 一个vma是某个进程的一段连续虚存空间,这段虚存里的所有单元拥有相同特征,如属于同一进程、相同的访问权限、同时被锁定、同时受保护。 进程任务结构 task_struct m m 内存管理结构 mm_struct mmap pgd 虚存段结构 vm_area_struct vm_struct vm_next vm_op 页目录表pgd 页表PTE 页表PTE 页框PF 页框PF vm_area_struct vm_next vm_area_struct *open *close *swapout . . 进程虚存管理数据结构 3Linux物理内存空间的管理 物理内存以页框为单位,长度为4KB。 对物理内存的管理通过mem_map表描述, mem-map是由mem-map-t组成的数组,每个mem-map-t描述一个物理页框。 ? next 0 ptev map next 1 ptev map next 2 ptev map . . . free_area bitmap 每位对应20页 每位对应21页 每位对应22页 。 。 1页 1页 2页 2页 4页 4页 mem_map_t Bit map与free-area的 关 系 页面分配和回收(1) 所有的空闲物理页帧组织成NR_MEM_LISTS的双向链表,存储在free_area数组中。每个链表节点的包括三个数据向:next和prev是链表指针,map指向bitmap表。 页面分配和回收(2) 采用buddy算法分配空闲块。当请求分配长度为2i个页帧的块时,从free_area数组的第i条链表开始受搜索,如找不到,搜索第i+1条链表,以此类推。 如果找到的空闲块正好等于需求,直接把它从来链表中删除,返回首地址。如果找到的空闲块大于需求,则需要把它一分为二,前半部分插入前一条链表,取后半部分。如果还大,则继续对分,取一半留一半,直至相等。同时,bitmap表页必须相应调整 页面分

文档评论(0)

wxc6688 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档