操作系统第四章1题库.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基本分页存储管理 页面与页表 地址变换机构 两级和多级页表 Page * * 地址变换机构 基本地址变换机构 实现从逻辑地址到物理地址的转换,将逻辑地址中的页号转换为内存中的物理块号,通过页表来完成 页表的实现 寄存器:变换速度快、成本高,适应小型系统。 页表驻留在内存:速度较低、成本低,适应大系统。 页表大多驻留在内存中,在系统中设置页表寄存器PTR(Page – Table Register),在其中存放页表在内存中的始址和页表的长度 进程未执行时,页表的始址和页表长度存放在本进程的PCB中,当调度程序调度到某进程时,才将这两个数据装入页表寄存器 Page * * 地址变换机构 地址结构 例如:32位地址,0~11为偏移量,12~31为页号,最大可以有1M(220)页,每页4KB (212) 。 页号P 偏移量W 31 12 11 0 Page * * 4.3.2 地址变换机构 1. 基本的地址变换机构 每个进程对应一页表,其信息(如长度、始址)放在PCB中,执行时将其首地址装入页表寄存器。 当进程要访问某个进程逻辑地址中的数据时,分为页号和页内地址两部分; 如果页号大于或等于页表长度,则表示本次所访问的地址已经超越进程的地址空间。 Page * * 地址变换机构 Page * * 地址变换机构 地址变换过程 指令 LOAD 1,2500 的地址变换过程(块大小为1024B) Page * * 地址变换过程 把虚拟地址2500转换成页号P=2,位移量W=452; 如果页号2大于页表大小,则中断;否则继续; 页号2与页表起址1000运算(1000+2*20,设页描述子大小为20)得到页描述子地址为1040; 从页描述子中读取块号8; 根据页描述子的“存取控制”判断该指令是否被允许访问内存,如果不允许,则中断;否则继续; 块号8与位移量452运算(8*1024+452=9644,1024为页面大小)得到物理地址9644; 执行LOAD操作。 地址变换机构 Page * * 2. 具有快表的地址变换机构 由于页表是存放在内存中的,这使CPU每次要存取一个数据时,都要两次访问内存。 第一次是访问内存中的页表,从中找到该页的物理块号,将此块号与页内偏移量W拼接以形成物理地址。 第二次访问内存时,才是从第一步所得地址中获得所需数据(或向此地址中写入数据),并将此页号与高速缓存中的所有页码进行比较。 Page * * 地址变换机构 具有快表的地址变换机构 由于页表是存放在内存中,因此每次CPU存取一个数据要两次访问内存 为提高地址变换速度,在地址变换机构中增设一个具有并行查询能力的高速缓冲寄存器,又称为“联想寄存器”(Associative Memory)或“快表”,用以存放当前访问的那些页表项 快表通常可存放16-512个表项,如果设计得当,命中率可达90%以上 Page * * 地址变换机构 页表寄存器 页表始址 页表长度 > 页号 页 内地址 + 逻辑地址L 越界中断 块号 b 页表 页号 页号 输 入 寄 存 器 块号 b b 快表 d 物理地址 具有快表的地址变换机构 Page * * 例:有一页式系统,其页表存放在主存中: ①如果对主存的一次存取需要1.5μs,试问实现一次页面访问的存取时间是多少? ②如果系统加有快表,平均命中率为85%,当页表项在快表中时,其查找时间忽略为0, 试问此时的存取时间是多少? Page * * 答:若页表存放在主存中,则要实现一次页面访问需两次访问主存:一次是访问页表,确定所存取页面的物理地址(称为定位)。第二次才根据该地址存取页面数据。 ■页表在主存的存取访问时间 =1.5*2=3(μs) ■增加快表后的存取访问时间 =0.85*1.5+(1-0.85)*2*1.5=1.725(μs) Page * * 基本分页存储管理 页面与页表 地址变换机构 两级和多级页表 Page * * 两级和多级页表 两级和多级页表 现代的大多数计算机系统,都支持非常大的逻辑地址空间(232~264)。在这样的环境下,页表就变得非常大,要占用相当大的内存空间 例如,对于一个具有32位逻辑地址空间的分页系统,若规定页面大小为4 KB即212 B,则在每个进程页表中的页表项可达1M(220)个之多。若每个表项占用4个字节(32bit), 故每个进程仅仅其页表就要占用4 MB的内存空间,而且还要求是连续的 页号P 偏移量W 31 12 11 0 232/212=220 32 / 8 = 4 4*1M=4M Page * * 两级和多级页表 可以采用这样两个方法来解决这一问题 采用离散分配方式来解决难以找到一块连续的大内存

文档评论(0)

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

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

1亿VIP精品文档

相关文档