# 3.1.6
- [ ] ==第十题==
某一页式系统,其页表存放在主存中:
1)若对主存的一次存取需1.5us,问实现一次页面访问时存取时间是多少?
2)若系统有快表且其平均命中率为85%,而页表项在快表中的查找时间可
忽略不计,试问此时的存取时间为多少?
解: 1)共需访存两次:
①访问页表(存放在主存中),得到物理地址。
②根据物理地址访问主存存取数据。
故存取时间EAT=2×1.5μs=3μs
2)__EAT=d(t+0)+(1-d)(t+t)=0.85×1.5+0.15×2×1.5=1.725μs。__
3.2.9
- [ ] ==第五题==
[2009统考真题]请求分页管理系统中,假设某进程的页表内容如下表所示。
进程| 页框(Page Frame)号| 有效位(存在位)
0 | 101H|1
1 | |0
2| 254H|1
页面大小为4KB,一次内存的访问时间是100ns,一次快表( TLB )的访问时间是10ns,处理一次缺页的平均时间为10^8^ns (已含更新TLB和页表的时间),进程的驻留集大小固定为2,采用最近最少使用(LRU)置换算法和局部淘汰策略。假设:①TLB初始为空;②地址转换时先访问TLB,若TLB未命中,再访问页表(忽略访问页表后的TLB更新时间);③有效位为0表示页面不在内存,产生缺页中断,缺页中断处理后,返回到产生缺页中断的指令处重新执行。设有虚地址访问序列2362H,1565H,25A5H请问:
1)依次访问上述三个虚拟地址,各需多少时间?给出计算过程。
2)基于上述访问序列,虚地址1565H的物理地址是多少?请说明理由。
__解:
1)由于页面大小为4KB=2^12^KB,故逻辑地址末尾12位表示页内偏移W,前4位表示页号P。__ 设访问内存时间为t,查找快表时间为a,处理缺页中断的时间为T。
==对于逻辑地址2362H==,其表示的页号为2,访问次序依次为:__访问TLB未命中(10ns); 访问页表命中2号页面,并将页表项副本放入TLB(100ns),得到物理地址,访问内存(100ns)。__
- 故逻辑地址2362H的访问时间为:EAT=a+t+t=10+100+100=210ns;
==对于逻辑地址1565H==,其表示的页号为1,访问次序依次为,访问TLB未命中(10ns);访问页表未命中(100ns);发生缺页中断(10^8^ns);访问TLB命中1号页面(10ns);得到物理地址访问内存(100ns)。==此时驻留集已满(0号页面和2号页面)==
- 故逻辑地址1565H的访问时间为:
- EAT=a+t+T+a+t=T+2×(a+t)=10^8^+2×(100+10)=100000220ns。
==对于逻辑地址25A5H==,其表示的页号为2,访问次序依次为:访问TLB命中二号页面(10ns);得到物理地址访问内存(100ns)。
- 故逻辑地址25A5H的访问时间为:EAT=a+t=10+100=110ns;
==2)== 访问逻辑地址1565H时由于驻留集已满(0号页面和2号页面)。故应从页表中淘汰一个页面,根据LRU算法,2号页面刚被使用过,故淘汰0号页面,将1号页面调入获得内存块号101H。
- 则地址由内存块号和页内偏移量拼接得到物理地址为:101565H。
- [ ] ==第十题==
在一个请求分页系统中,采用LRU页面置换算法时,假如一个作业的页面走向为1,3,2,1,1,3,5,1,3,2,1,5,当分配给该作业的物理块数分别为3和4时,试计算在访问过程中发生的缺页次数和缺页率。
解:1)当内存块数为3时LRU算法缺页情况如下表:
访问串 | 1 | 3 | 2 | 1 | 1 | 3 | 5 | 1 | 3 | 2 | 1 | 5 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
内存块1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
内存块2 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 5 | |
内存块3 | 2 | 2 | 2 | 2 | 5 | 5 | 5 | 2 | 2 | 2 | ||
缺页 | √ | √ | √ | √ | √ | √ |
由上表可知,缺页次数为6次,则缺页率f=6/12*100%=50%。
2)当内存块数为4时LRU算法缺页情况如下表:
访问串 | 1 | 3 | 2 | 1 | 1 | 3 | 5 | 1 | 3 | 2 | 1 | 5 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
内存块1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
内存块2 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | |
内存块3 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | ||
内存块4 | 5 | 5 | 5 | 5 | 5 | 5 | ||||||
缺页 | √ | √ | √ | √ |
- 由上表可知,缺页次数为4次,则缺页率f=4/12*100%=33%。
- [ ] ==第十三题==
[2012统考真题]某请求分页系统的页面置换策略如下:从0时刻开始扫描,每隔5个时间单位扫描一轮驻留集(扫描时间忽略不计)且本轮未被访问过的页框将被系统回收,并放入空闲页框链尾,其中内容在下一次分配之前不清空。当发生缺页时,若该页曾被使用过且还在空闲页链表中,则重新放回进程的驻留集中;否则,从空闲页框链表头部取出一个页框。忽略其他进程的影响和系统开销。初始时进程驻留集为空。目前系统空闲页的页框号依次为32,15,21,41。
进程P依次访问的<虚拟页号,访问时刻>为<1,1>,< 3,2>,<0.4>,<0.6>,<1,11>,<0,13>,<2,14>。请回答下列问题:
1)当虚拟页为<0,4>时,对应的页框号是什么?
2)当虚拟页为<1,11>时,对应的页框号是什么?说明理由。
3)当虚拟页为<2, 14>时,对应的页框号是什么?说明理由。
4)这种方法是否适合于时间局部性好的程序?说明理由。
解: 依题意可列出驻留集及进程变化情况表
故由上表可知:
- 1)==虚拟页为<0,4>时,对应的页框号为21。==
<0,4>为第三个访问,此时页匡量表指针指向21号内存块。
- 2)==虚拟页为<1,11>时,对应的页框号为32。==
<1,11>为第五个访问,此时已经扫描两次(5时刻、10时刻);5时刻扫描时,1、3、0号虚拟页号在1-5时刻内均被访问过,故仍在驻留集。10时刻扫描时,0号虚拟页在6-10时刻内被访问,1、3号虚拟页未被访问,故将1、3号虚拟页假如空闲页链表中。**在访问<1,11>时,发现1号虚拟页在空闲页框链表中,故将其取出重新放回进程驻留集中。
故其对应的内存块号仍为32。**
- 3)==虚拟页为<2,14>时,对应的页框号为41。==
<2,14>为第七个访问,此时发生缺页,故从空闲页框链表表头(即页框链表指针所指的空闲页框号)取出空闲页框号为41的空闲页框。 - 4)该方法适用于时间局部性好的程序,因为时间局部性越好,在有限的进程驻留集下重复从空闲页框链表中取回页表项到驻留集的几率就越大。
- [ ] ==第十四题==
某系统有4个页框,某个进程的页面使用情况见下表,问采用FIFO、LRU、简单CLOCK和改进型CLOCK置换算法,将会替换哪一页?
其中,R是读标志位,M是修改标志位。
页号 | 装入时间 | 上次引用时间 | R | M |
---|---|---|---|---|
0 | 126 | 276 | 0 | 0 |
0 | 230 | 260 | 1 | 0 |
0 | 120 | 272 | 1 | 1 |
0 | 160 | 280 | 1 | 1 |
解:
- ==FIFO算法==:替换2号页面。
由于2号页面最先装入内存,故由先进先出置换算法特性,会将2号页面进行替换。
- ==LRU算法==:替换1号页面。
即最近最久未用置换算法,根据上次引用时间可知,1号页面最近最久未被使用,故应将1号页面进行替换。
==CLOCK算法==:替换0号页面。
页面装入内存次序依次为2、0、3、1号页面。发生缺页执行替换算法时,指针指向2号页面,但R=1故将其修改为0,指针指向0号页面,因R=0故将0号页面进行替换。
- ==改进型CLOCK算法==:替换0号页面。
页面装入内存次序依次为2、0、3、1号页面。发生缺页执行替换算法时,指针指向2号页面,RM为11,将其修改为01,指针指向0号页面,因RM为00故将0号页面进行替换。
[ ] ==第十六题==
[2010统考真题]设某计算机的逻辑地址空间和物理地址空间均为64KB,按字节编址。若某进程最多需要6页(Page)数据存储空间,页的大小为1KB,操作系统采用固定分配局部置换策略为此进程分配4个页框( Page Frame),见下表。在装入时刻260前,该进程的访问情况也见下表(访问位即使用位)。
页号 | 页框号 | 装入时刻 | 访问位 |
---|---|---|---|
0 | 7 | 130 | 1 |
1 | 4 | 230 | 1 |
2 | 2 | 200 | 1 |
3 | 9 | 260 | 1 |
当该进程执行到时刻260时,要访问逻辑地址为17CAH的数据。回答下列问题:
1)该逻辑地址对应的页号是多少?
2)若采用先进先出(FIFO)置换算法,则该逻辑地址对应的物理地址是多少?要求给出计算过程。3)若采用时钟(Clock)置换算法,则该逻辑地址对应的物理地址是多少?要求给出计算过程。设搜索下一页的指针沿顺时针方向移动,且当前指向2号页框,如下图所示。
解:
- ==1.== 因为页面大小为1KB,即210B,逻辑地址的低10位表页内偏移量。
因为地址按字节编址,且地址空间为64KB即2^16^B,故地址共由16位表示。
则逻辑地址前6位表示页号P,低10位表示页内偏移量W。
则逻辑地址17CAH对应的二进制数为0001 0111 1100 1010B
故页号P=00 0101B=5。
- ==2.== 由于0号页面被最早装入内存,故由先进先出算法应该置换0号页面,则页号5对应的页框号为7,则物理地址为页框号(占高6位)和页内偏移量(占低10位)拼接而成。
即物理地址为:0001 1111 1100 1010B=1FCAH。 ==3.== 依次扫描2号页、1号页、0号页、3号页,2、1、0、3、均被访问过,故将其访问为置为0,则应替换2号页面。则物理地址为页框号(占高6位)和页内偏移量(占低10位)拼接而成。即
**物理地址为:0000 1011 1100 1010B=0BCAH**
[ ] ==第十九题==
[2015统考真题]某计算机系统按字节编址,采用二级页表的分页存储管理方式,虚拟地址格式如下所示:
10位 | 10位 | 12位 |
---|---|---|
页目录号 | 页表索引 | 页内偏移量 |
请回答下列问题:
1)页和页框的大小各为多少字节?进程的虚拟地址空间大小为多少页?
2)若页目录项和页表项均占4B.则进程的页目录和页表共占多少页?写出计算过程。
3)若某指令周期内访问的虚拟地址为0100 0000H和0111 2048H,则进行地址转换时共访问多少个二级页表?说明理由。
解:
- ==1.== 由于页内偏移量为12位, 且系统按字节进行编址,
则页面和页框大小为:2^12^B=4KB。
进程的页表项数目为2^32-12^=2^20^=1M页。
==2.== 由于页目录号位数为10位,则页目录所占页数为:(2^10^×4)/2^12^=1页。
页表所占页数为:由于进程页表项数目为2^20^,**则页表项占(2^20^×4)2^12^=1024页**
故进程的页目录和页表共占1025页。
==3.== 只需访问1个二级页表。
0100 0000H 二进制数为0000 0001 0000 0000 0000 0000 0000 0000B 0111 2048H 二进制数为0000 0001 0001 0001 0010 0000 0100 1000B
故其高10位均为0000 0001 00B=4所以均访问4号二级页表。故只需访问1个二级页表。