如果要求页表所占的总的储存页面数最小,请分配每一级页表的实际存储容量各为多少字节?
页表的哪些部分必须放在主存中?哪些可以放在辅存中? 答:
页表占用:(4GB/4KB)*4=4MB;存储页表需:4MB/4KB=1000个页面==>共需两级页表 最少的形式一级页表4KB,二级页表4MB,共1001页(全部装满)。
一级页表和调入主存程序的相关页表必须在主存中,其它可以在辅存中。
十
在一个采用快慢表的虚拟存储器中,访问主存的命中率为99.99%,访问快表的命中率为99%,经过快表进行地址变换的时间仅是经过查页表进行地址变换时间的十分之一,磁盘存储器的访问速度仅是主存访问速度的万分之一 计算这个虚拟存储器的等效访问时间 计算这个虚拟存储器的访问效率 答:
访问虚拟存储器的时间包括地址变换时间,访问主存时间,访问磁盘时间。 设主存周期是T1,则TLB周期:0.1T1,磁盘周期:10000T1。 T等效=0.9999(2*0.01T1+0.99*1.1T1)+0.0001*10000T1=2.1T1 E效率=1/2.1=47.6% 十一
一个页式虚拟存储器按字节编址,页面大小为1K字节,每个数据的字长为4个字节。现有一个程序的页表如下:
虚页号 装入标志 主存页号 修改标志 访问方式
0 1 2 3 4 5 6
1 1 0 1 0 1 0
2 3 0 1 0 0 0
0 0 0 0 0 0 0
RW R R X RW R X
表中装入标志为1表示该虚页已经装入内存中,为0表示还未装入主存。修改标志为0表示该页还没有被修改过,为1表示该页已经被修改过。访问方式RW表示该页可以读也可以写,
但不能作为指令来执行;“R”表示该页只能读,不能写和执行;“X”表示该页只能作为指令来执行,不能读和写。
虚地址经变址寻址和基址寻址(B)+(X)+D形成。现有一个程序,出现下列访问主存的操作:
序号 操作 虚存地址
(B)
1 2
取数 取数
124 2000
(X) 30 1000
D 50 60
3 4 5 6 7 8 9 10
存数 存数 取数 取数 加并存数 加并存数 转移 转移
4000 1200 3000 4096 400 36 2500 3600
2000 4600 64 500 1200 360 600 1200
600 60 100 20 80 64 100 56
列出产生主存页面实效的操作序号。
如果不发生主存页面失效的话,计算访问主存的物理地址。 列出被修改过的主存页面号。
列出非法操作的序号。 答:
虚地址 虚页号 实页号 页内偏移 实地址 操作 合法性 0 1 2 3 4 5 6 7 8 9
204 3060 6600 5860 3740 4616 1680 460 3200 4856
0 3 6 5 3 4 1 0 3 4
2 1 无 0 1 无 3 2 1 无
50 60 无 60 100 无 80 64 100 无
2098 1084 无 0060 1124 无 3116 2128 1124 无
未改 未改 失效 未改 未改 失效 未改 修改 未改 失效
合法 非法 无 非法 非法 无 非法 合法 合法 无
失效操作:2、5、9。修改过的主存页号2。非法操作:1、3、4、6。 十二
一个有快表和慢表的页式虚拟存储器,最多有64个用户,每个用户最多要用1024个页面,每页4K字节,主存的容量是8M字节。
写出多用户虚地址的格式,并标出各字段的长度。 写出主存地址的格式并标出各字段的长度。
快表的字长是多少位?分几个字段?各字段的长度是多少?
慢表的容量是多少个存储字?每个存储字的长度是多少位?
画出多用户虚拟地址经快表或慢表变换成为主存实地址的逻辑示意图。 答:
虚地址格式:
6 10 12
用户ID 主存地址格式: 11
实页号 快表: 16
用户ID与虚页号 11 实页号 虚页号 页内偏移 12 页内偏移 慢表容量:8M/4K=2K个存储字, 1 11 装入位
多用户虚地址 实页号 用户号U
虚页号P 主存实地址 实页号p U,P 页内偏移D 页内偏移d P 实页号p
1 装入 P 实页号p 慢表 快表 多用户虚页号(U,P拼接) 慢 表 快表(按内容相联访问)
十三
一个虚拟存储器按照字节编址,最多有256个用户,每个用户最多要用4096页,每页1K字节。主存容量16M字节。快表按地址访问共32个存储字,它的地址码经散列变换得到,为减少散列冲突,快表分为两组,有两套独立的相等比较电路。 写出多用户虚地址和主存地址的格式,并标出各字段的长度。 散列变换部件的输入位数和输出位数各为多少? 每个相等比较电路的位数是多少?
快表每个存储字的总长度是多少分为几个字段?每个字段的长度? 画出多用户虚拟地址经快表或慢表变换成为主存实地址的逻辑示意图。
答:
虚地址格式:
8
用户ID 主存地址格式: 14
实页号 12 虚页号 10 页内偏移 10 页内偏移 散列变换部件输入: 用户ID和虚页号,20位,输出:32个存储字,5位。 相等比较电路的位数是20,用户ID和虚页号。 快表:
20
用户ID与虚页号
多用户虚地址
14 实页号 8 用户号ID 5位 12 虚页号P 14 实页号p 或 10 页内偏移D 10 拼接 页内偏移d 20位 不等 32行 不等 相等比较 相 ID与P拼接 等 p 散列变换 相等比较 相 等 ID与P拼接 p 多用户虚页号 实地址 多用户虚页号 实地址 快表(按地址访问,有两组)
十四
在页式虚拟存储器中,一个程序由P1~P5共5个页面组成。在程序执行过程中依次访问到的页面如下:
P2, P3, P2, P1, P5, P2, P4, P5, P3, P2, P5, P2
假设系统分配给这个程序的主存有3个页面,分别采用FIFO、LFU和OPT三种页面替换算法
对这三页主存进行调度。
画出主存页面调入、替换和命中的情况表。 统计三种页面替换算法的页命中率 答: 时间t 页地址流 先进先出算法 (FIFO算法) 最久没有使用算法 (LFU算法) 最优替换算法 (OPT算法) 1 P2 2* 2 P3 2* 3 3 P2 2* 3 4 P1 2* 3 1 5 P5 5 3* 1 6 P2 5 2 1* 7 P4 5* 2 4 8 P5 5* 2 4 9 P3 3 2* 4 10 P2 3 2* 4 11 P5 3 5 4* 12 命中次数及P2 3* 5 2 命中率 3次 25% 5次 41.7% 6次 50% 调入 调入 命中 调入 替换 替换 替换 命中 替换 命中 替换 替换 2* 2 3 2 3* 2 3* 1 2* 5 1 2 5 1* 2 5* 4 2* 5 4 3 5 4* 3 5* 2 3* 5 2 3 5* 2 调入 调入 命中 调入 替换 命中 替换 命中 替换 替换 命中 命中 2* 2 3* 2 3* 2 3 1* 2 3* 5 2 3* 5 2 4* 5 2 4* 5 2 3* 5 2 3* 5 2 3 5 2 3 5 调入 调入 命中 调入 替换 命中 替换 命中 替换 命中 命中 命中 三种页面替换算法对同一个页地址流的调度过程
十五
一个程序由五个虚页组成,采用LFU替换算法,在程序执行过程中依次访问的页地址流如下: P4, P5, P3, P2, P5, P1, P3, P2, P3, P5, P1, P3 可能的最高页命中率是多少?
至少要分配给该程序多少个主存页面才能获得最高的命中率。
如果在程序执行过程种每访问一个页面,平均要对该页面内的存储单元访问1024次,求访问存储单元的命中率。
答:
7/12=58.3%;4个;1-5/(1024*12)=99.95%
十六
一个程序由1200条指令组成,每条指令的字长均为4个字节。假设这个程序访问虚拟存储器的字地址流依次为:12,40,260,280,180,800,500,560,600,1100,1200,1000。 采用FIFO页面替换算法,分配给这个程序的主存容量为2048个字节。在下列不同的页面大小情况下,分别写出这个程序执行过程中依次访问的虚存页地址流,并计算主存的页面命中率。
页面大小为1024个字节。 页面大小为512个字节。 页面大小为2048个字节。
比较上述三问可以得出什么结论?
如果把分配该程序的主存容量增加到4096个字节,页面大小位1024个字节,再做一遍又可以得到什么结论? 答:
当页面大小增加到1K以后,再增加页面大小并不能显著地提高命中率,此时如果增加内存容