- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
由于段的长度各不相同,段的起点和终点不定,给主存空间分配带来麻烦,且容易在实存中留下许多空白的零碎存储空间不好利用,造成浪费。 ▲ 段式与页式管理系统的比较 段的分界与程序的自然分界相对应;段的逻辑独立性使它易于编译、管理、修改和保护,也便于多道程序共享; 某些类型的段(堆栈、队列)具有动态可变长度,允许自由调度以便有效利用主存空间。 段式虚拟存储管理: 3、段页式虚拟存储器 段页式虚拟存储器是段式虚拟存储器和页式虚拟存储器的结合。 把程序按逻辑单位分段以后,再把每段分成固定大小的页。程序对主存的调入调出是按页面进行的,按段实现共享和保护。 它兼有页式和段式的优点。缺点是在地址映象过程中需要多次查表。 目前,大、中型机一般都采用这种段页式存储管理方式。 在段页式虚拟存储系统中,每道程序是通过一个段表和一组页表来进行定位的。 段表中的每个表目对应一个段,每个表目有一个指向该段的页表起始地址及该段的控制保护信息。 由页表指明该段各页在主存中的位置以及是否已装入、已修改等状态信息。 多道程序的每一道需要一个基号,由它指明该道程序的段表起始地址。 虚拟地址格式如下: 基号 段号 页号 页内地址 多道程序:如果有多个用户在机器上独立运行就称为多道程序。 若只有一个基址寄存器,基号可以不要,在多道程序切换时,由操作系统修改基址寄存器的内容来实现 例:有三道程序(用户标志号为P1,P2,P3),其基址寄存器内容分别为B1,B2,B3, ? 逻辑地址到物理地址的变换(如图所示) 上述每一张表的每一行都要设置一个有效位;若有效位均为“0”,访问失败,则发中断请求操作系统建表。 基址寄存器 B1 B2 B3 基号 段号 页号 页内地址 P3 1 2 b B1+0 B1+1 B1+2 B3+1 实地址 程序P1段表 ┆ 程序P3段表 B3+0 * m 物理页号 页内地址 8 b 程序P3、1段的页表 m+0 m+1 m+2 ┅ 5 9 8 ┅ 段页式虚拟存储器地址变换 虚拟地址 例:今假设有三道程序(用户标志号为A,B,C),其基址寄存器内容分别为SA,SB,SC,逻辑地址到物理地址的转移过程见下图。在主存中,每道程序都有一张段表,A程序有4段,C程序有3段。每段应有一张页表,段表的每行就表示相应页表的起始位置,而页表内的每行即为相应的物理页号。 解:地址转换过程如下: (1)根据基号C,执行SC(基址寄存器内容)加1(段号)操作,得到段表相应行地址,其内容为页表的起始地址b。 (2)执行b(页表起始地址)+2(页号),得到物理页号的地址,其内容即为物理页号10。 (3)物理页号与页内地址拼接即得物理地址。 C 1 2 d SA SB SC A B C 10 d 1 2 8 7 10 12 4 + + 基址寄存器 程序A段表 程序C段表 S A+0 S B+1 S A+2 S A+3 S C+0 S C+1 S C+2 A+0 A+1 B+0 B+1 B+2 C+0 C+1 逻辑地址 物理地址 基号 段号 页号 页内地址 物理页号 四、替换算法 虚拟存储器中的页面替换策略和Cache中的行替换策略有很多相似之处,但有三点显著不同: (1)缺页至少要涉及一次磁盘存取,读取所缺的页,缺页使系统蒙受的损失要比Cache未命中大得多。 (2)页面替换是由操作系统软件实现的。 (3)页面替换的选择余地很大,属于一个进程的页面都可替换。 虚拟存储器中的替换策略一般采用LRU算法:把“近期最少使用的页”替换出去。 对于将被替换出去的页面是否要进行某些处理? 由于在内存中的每一页在外存中都留有副本,假如该页调入主存后没有被修改,就不必进行处理,否则就把该页重新写入外存,以保证外存中数据的正确性。为此,在页表的每一行应设置一修改位。 假设主存只有a,b,c三个页框,组成a进c出的FIFO队列,进程访问页面的序列是0,1,2,4,2,3,0,2,1,3,2号。若采用①FIFO算法,②FIFO算法+LRU算法,用列表法分别求两种替换策略情况下的命中率。 【解】求解表格如下所示 例:在页式虚拟存储器中,若主存容量为16MB,页面容量为4KB,程序地址空间为1G,问虚页号有多少位?页表长度为多少?页内地址有多少位? 解: 由于页面容量为4KB=212B, 程序地址空间=1GB=230B, 虚页号字段位数=30-12=18, 页表长度=218行, 页内地址段为12位数。 例
文档评论(0)