转http://teach.jwc.bupt.cn:4213/jsjzcyl/pan1/Chap03/3.6.4.htm
还有语音图像演示:http://teach.jwc.bupt.cn:4213/jsjzcyl/pan1/Chap03/images/3.46.swf
很好奥,推荐下
哈
段页式虚拟存储器是段式虚拟存储器和页式虚拟存储器的结合。
它把程序按逻辑单位分段以后,再把每段分成固定大小的页。
程序对主存的调入调出是按页面进行的,但它又可以按段实现共享和保护,兼备页式和段式的优点。
缺点是在映象过程中需要多次查表。
在段页式虚拟存储系统中,每道程序是通过一个段表和一组页表来进行定位的。段表中的每个表目对应
一个段,每个表目有一个指向该段的页表起始地址及该段的控制保护信息。由页表指明该段各页在主存中的
位置以及是否已装入、已修改等状态信息。
如果有多个用户在机器上运行,多道程序的每一道需要一个基号,由它指明该道程序的段表起始地址。
虚拟地址格式如下:
基号 | 段号 | 页号 | 页内地址 |
【例6】 假设有三道程序(用户标志号为A,B,C),其基址寄存器内容分别为SA,SB,SC ,逻辑地址到物理
地址的变换过程见演示在主存中,每道程序都有一张段表,A程序有4段,C程序有3段。每段应有一
张页表,段表的每行就表示相应页表的起始位置,而页表内的每行即为相应的物理页号。请说明虚实地址
变换过程。
【解】
地址变换过程如下:
①根据基号C执行SC加1(段号)操作,得到段表相应行地址,其内容为页表的起始地址b。
②执行b+2(页号),得到物理页号的地址,其内容即为物理页10。
③物理页号与页内地址拼接即得物理地址。
如计算机只有一个基址寄存器,基号可不要,多道程序切换时,操作系统修改基址寄存器内容。
可以看出,段页式虚拟存储系统由虚拟地址向主存地址的变换至少需要查两次表。
文章评论(0条评论)
登录后参与讨论