- 1、本文档共43页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统存储器管理OS.ppt
* 若给定一个逻辑地址空间中的地址为A,页面的大小为L,则页号P和页内地址d可按下式求得: D=[A] MOD L 其中,INT是整除函数,MOD是取余函数。 例:某系统的页面大小为1KB,A=2170B,则可求出: 页号为2,位移量为122。 4.4 基本分页存储管理方式 地址结构 * 4.4 基本分页存储管理方式 页表 页表的定义:在分页系统中,允许将进程的各个页离散地存储在内存不同的物理块中,但系统应能保证进程的正确运行,即能在内存中找到每个页面所对应的物理块。为此,系统为每个进程建立了一张页面映像表,简称页表。 页表的组成:进程地址空间中的所有页(0~n),依次在页表中有一页表项,其中记录了相应页在内存中对应的物理块号。 页表的作用:进程执行时,通过查找该表,即可找到每页在内存中的物理块号。 保护的实现:通过在页表的表项中增加一存取控制字段,即可实现对该页的存取控制。 6 5 4 3 2 1 0 进程地址空间 23 6 21 5 18 4 13 3 8 2 4 1 6 0 块号 页号 页 表 … … … … 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 主存中物理块 用户程序含六个页面 * 4.4.2 地址变换机构 基本的地址变换机构 1 具有快表的地址变换机构 2 分页存储管理方式的地址变换:实质是将逻辑地址中的页号,转换为内存中的物理块号。可借助于页表实现。 若页表驻留在内存中,则在系统中设置一个页表寄存器来存放页表在内存中的首地址和页表的长度。这时的地址变换称为基本的地址变换。 若为了提高地址变换速度,引入了快表,则此时的地址变换称为具有快表的地址变换。 * 基本的地址变换机构 1 4.4.2 地址变换机构 页表寄存器PTR(Table Register):其中存放页表在内存的始址和页表长度。 进程未执行时,页表的始址和页表长度存放在本进程的PCB中。当调度程序调度到某进程时,才将这两个数据装入页表寄存器。 地址变换过程: 分页地址变换机构将有效地址(相对地址)分为页号和页内地址两部分,以页号为索引去检索页表。 将页号与页表长度相比,若页号≥页表长度,则越界中断,否则将页表始址与页号和页表项长度的乘积相加,便得到该表项在页表中的位置,得到物理块号,将之装入物理地址寄存器。 与此同时,将有效地址寄存器中的页内地址送入物理地址寄存器的块内地址字段中。 * 基本的地址变换机构 1 4.4.2 地址变换机构 0 6 1 7 2 3 3 9 4 2 1000H 如图例子中,页表的首地址为1000H,每一页表项占用1个字节,则3号页的页表项地址为多少? 3号页的页表项地址为页表首址+(页号*页表项长度) 3号页的页表项地址=1000+3*1=1003H 根据该地址可得3号页的物理块号为9。 若每页表项占用2个字节,则3号页的页表项地址为1000+3*2=1006H … … OS 分页系统的地址变换机构 + 物理块号 块内地址 越界中断 页表始址 页表寄存器PTR 逻辑地址L 物理地址 MA寄存器 VA寄存器 页表长度 页内地址 页号(3) ≥ 块号 页号 0 1 1 5 2 6 3 b … … 一. 实现原理 1.地址空间分页,内存分块,页长=块长 0 2k 1k 3k-1 Load R1,2500 2500 12345 (进程地址空间) 8 2 3 1 2 0 块号 页号 (页表) ….. … 1k 2k 3k 4k 8k 0 0块 1块 2块 3块 8块 Load R1,2500 12345 8644 (内存空间) 2.通过页表把作业映射到内存 3.地址变换机构(P132 图4-13): 以执行load 1, 2500为例说明: 指令要取的数在地址空间位于2页,页内偏移地址=452. 指令要取的数在内存空间位于8644=1024×8+452 进程的执行过程如下: (1)页表长度,页表地址送页表控制寄存器后,开始执行 (2)执行load指令,CPU把2500送VA,分离出P=2, W=452. (3)根据页表查得2页位于内存第8块. (4)块号8、W(452)送入MA,拼接成物理地址:8644 (5)8644送地址总线,完成取数操作。 N 8 452 Y 越界 (页式地址变换举例) 页号≧表长度 页表始址 页表寄存器PTR 有效地址2500送虚地址寄存器VA 8644物理地址 MA寄存器 VA寄存器 ( MMU ) 地址变换机构 页号 块号 0 2 1 3 2 8 页表长度 452 2 15 0 来自CPU有效地址 页号P 页内偏移量W VA 划分位置取决页面大小,硬件确定。 页长=1k,划分位置左面为第10位,右面为第9位(
文档评论(0)