操作系统教程第三版南通大学.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文档。上传文档
查看更多
4.8Windows 2003虚拟存储管理 4.8.1进程地址空间布局 4.8.2用户空间主存分配 4.8.3主存管理的实现 4.8.1 主存管理的功能和地址空间布局 1 主存管理的组成和功能 存储管理系统服务程序 转换无效和访问错误的陷阱处理程序 一组系统线程 ·工作集管理器 ·进程/堆栈交换程序 ·已修改页面写入器 ·映射页面写入器 ·废弃段线程 ·零页线程 2进程地址空间布局 4.8.2用户空间主存分配 系统管理应用程序主存有两个数据结构:虚址描述符和区域对象;三种主存管理方法: 虚页主存分配 主存映射文件 主存堆分配 1 虚址描述符 对每个进程,主存管理器都维护一组VAD ,用来描述进程地址空间哪些虚拟地址已被保留,而哪些没有,这个数据结构叫“虚地址描述符”VAD。 VAD的使用 ? 线程首次访问一个地址,主存管理器为此地址的页面创建一个页表项,它找到一个包含被访问地址的VAD,并利用所得信息填充页表项。 ? 如果访问地址落在VAD覆盖的地址范围外,或所在的地址范围仅被保留而未提交,将产生一次访问违规。 2 区域对象及作用 “区域对象”(Section object)在Win32子系统中被称为“文件映射对象”,表示可被两个或多个进程所共享的主存块。其作用有: 系统利用区域对象将可执行映象装入主存; 高速缓存管理器利用区域对象访问高速缓存文件中的数据; 使用区域对象将文件映射到进程地址空间,可像访问主存中数组一样访问这个文件,而不是对文件进行读写。 区域对象的使用 一个区域对象代表可由两个或多个进程共享的主存块。 一个进程的线程可创建区域对象,为它起名字,以便其他进程的线程能打开这个区域对象的句柄。 区域对象句柄被打开后,线程就能把这个区域对象映射到自己或另一个进程的虚地址空间中。 3 应用程序主存管理方法 1)虚页主存分配 系统中使用虚拟主存,分三个阶段: ?保留主存(reserved memory) ?提交主存(committed memory) ?释放主存 (release memory) 2)主存堆分配 堆(heap)是保留地址空间中一个或多个页组成的区域,并由堆管理器按更小块划分和分配主存的技术。 缺省进程堆。 HeapCreate创建私有堆,Heap Destroy 释放私有堆。 GetprocessHeap得到指向堆的句柄, HeapAlloc和HeapFree从堆中分配和回收主存块。 3)主存映射文件(1) Memory-mapped File允许进程分配一段虚地址空间或某一个盘文件相关联,当把盘文件映射到该地址空间后,多个进程可以方便地访问。主存映射文件用于三种场合: (1)执行体使用主存映射把可执行文件.exe和动态连接库.dll文件装入主存,节省应用程序启动时间。 (2)进程使用主存映射文件存取磁盘文件信息,减少文件I/O和对文件进行缓存。(3)多个进程使用主存映射文件来共享主存中的数据和代码。 主存映射文件(2) 使用步骤 步1使用CreateFile打开文件 步2使用CreateFile Mapping建立文件映射 步3使用MapViewOfFile 读写文件视窗 步4使用OpenFileMapping 打开文件映射对象 步5使用UnmapViewOfFile解除映射 4.8.3主存管理的实现 1进程页表与地址映射 ?在x86硬件平台上采用二级页表结构来实现进程的逻辑地址到物理地址的转换。 ?32位逻辑地址解释成三个分量,页目录索引(10位)页表页索引(10位)和位置索引(12位),页面大小为4KB。 2页框号数据库(1) 所有主存物理页框组成了页框数据库(Page Frame Datebase),每个页框占一项,每项称为一个PFN结构(Page Frame Number)。 页框号数据库(3) PFN可能状态 有效(Vaild) 过渡(transition) 后备(Stand by) 修改(Modified) 修改不写入(modiqied no write) 空闲(free) 零初始化(zeroed) 坏(bad) 3 缺页处理(1) 1)无效页处理 (1) 访问一个未知页,其页表项为零,或者页表不存在,线程首次访问一个地址。 (2) 所访问的页没有驻留在主存,而是在磁盘的某个页文件或映像文件中,系统分配一个物理页框,将所需的页从磁盘读出,放入工作集中。 (3)所访问的页在后备链表或更改链表中,将此页移到进程或系统工作集。 (4)访问一个请求零页,给进程工作集添加

文档评论(0)

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

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

1亿VIP精品文档

相关文档