操作系统课件6_3.ppt

  1. 1、本文档共102页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统课件6_3

6.6.2.1 进程地址空间 进程虚拟地址空间由32位地址组成,寻址范围可达4G 低地址2G为用户空间,高地址2G为系统空间 地址空间远远超过当前内存大小 实际一个进程只占用虚拟空间的很小一部分 在编址上,系统空间与用户空间连续 只有系统处于核心态时才使用高位地址 用户不可能侵犯操作系统 进程存储布局如图6-59所示. * 6.6.2.1 进程地址空间 * 6.6.2.2 存储管理方式 采用虚拟页式,页面尺寸为4KB~64KB 进程的2G空间以页为单位都是可交换的 系统空间部分页面(一般对应DLL)可以交换 在x86体系结构上采用两级页表实现虚拟地址到物理地址的变换,分别称为页目录(Page Directory,PD)和页表(Page Table,PT) 进程的32位虚拟地址分为三个部分,如图6-60所示 页目录入口(page directory entry, pde)对应在页目录中的位移 页表入口(page table entry, pte)对应在页表中的位移. * 6.6.2.2 存储管理方式 在Windows2000/XP中,页目录是进程私用的 每个进程的页目录最长可达1024个入口,每个入口可以指向一个页表,前512个页表对应进程空间,后512个页表对应系统空间 * 6.6.2.2 存储管理方式 两级页表地址映射如图6-61所示 CR3是硬件寄存器,保存正运行进程页目录表的起始地址 查找pde和pte需两次访存 提供快表寄存器TLB * 6.6.2.3 存储共享 在页表之后设有一级原型页表(prototype page table,PPT) 对于共享页,页表项不指向物理页架,而指向原型页表中的表项 后者指向物理页架 共享页变化情况只需更新原型页表中的一个表项,如图6-62所示 * 6.6.2.3 存储共享 * 6.6.2.3 存储共享 在逻辑上,内存共享以区段(section)为对象,区段描述如图6-63所示 * 6.6.2.3 存储共享 线程可以创建并命名section对象 另一进程中的线程可以打开这个section对象并获得该对象的把柄 将其全部或部分映射(map)到自己的地址空间中 Section对象映射到进程空间的区域称为视图(view) 进程对section的共享关系如图6-64所示 * 6.6.2.3 存储共享 * 6.6.2.4 页面调度 每个虚拟页面处于三种状态之一:闲置(free)、预定(reserved)、确认(committed) 闲置页面并不真正存在,对它的访问将导致缺页故障 进程开始运行时,所有页面均处于闲置状态 直至数据或代码被映射到地址空间中,进入确认状态 虚拟页面可以预定,预定页面不可以使用,必须解除才可使用 用于保留存储区,如栈空间 *  实例1 汇编后:假设[W]段已连接并在内存, 段号为 2; [X]段尚未连接, 保存在文件系统中, 进程空间各段, 以及各表目如图 6-49所示 符号地址是一个字符串, 可能很长, D处存放不下, 所以D处实际存了一个指向该符号串的首地址 7[X]|Y 中的数字7是符号串[X]|Y的长度 * * 汇编后连接后 [W]段: 已连接[在内存] ???????????[X]段: 已连接[在内存] 进程空间各段, 以及各表形式如图 6-50 所示 * * 实例2: ... Load 1, [X]|Y … Load 2, [X]|Z ... [W]段 [X]段 … 1234 … 5678 ... Y: Z: * 汇编后,连接前: 100: Load *1, 2|100; … Load *2, 2|150; … … “7[X]|Y” ... “7[X]|Z” 1 … 2 200 1 … 2 250 150: 200: 250: [W]段(段号=2) [X]段 Y 300 Z 400 1234 5678 300 400 段表 … 段首址 … ... 段号 0 1 2 3 ... 段名 段号 [Main] 0 [A] 1 [W] 2 段名-段号对照表 * 第一次连接后: 100: Load *1, 2|100; … Load *2, 2|150; … … “7[X]|Y” ... “7[X]|Z” 0 … 3 300 1 … 2 250 150: 200: 250: [W]段(段号=2) [X]段 Y 300 Z 400 1234 5678 300 400 段表

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档