题目一
试说明内部碎片和外部碎片之间的差别。
解:
内部碎片是在在某一区域或某一页中,没有被占据其位置的进程所使用的区域。直到进程结束,释放该页或该区域,这个空间才可以重新被系统所利用。
外部碎片是由进程的不连续分配所产生的。
题目二
考虑一个页表在内存中的内存分页系统:
(1)如果内存访问的时间为 200ns,试问访问页表中的一个数据需要多长时间?
(2)如果增加 TLB,其中 90% 的页引用被 TLB 命中,TLB 的访问时间为 10ns请问有效内存访问时间是多少?
解:
- 在访问页表时需要访问一次内存,从页表中读取完帧号又需要访问一次内存,每次访问内存的时间都是一样的,所以如果一次访问内存的时间为200ns,那么访问页表中的一个数据需要200ns,且完成一次从逻辑地址到物理地址的映射需要200ns+200ns=400ns
- 假如是同时访问页表和TLB的话,那么如果TLB命中,就停止查找页表,访问TLB的时间为10ns,访问内存的时间为200ns;如果TLB没有命中的话,那么继续查找页表,访问内存的时间为400ns;所以有效内存访问时间为210ns90%+400ns10%=229ns
假如是先访问TLB再访问页表的话,,如果TLB命中的话,访问内存时间为10ns+200ns=210ns;如果TLB命中失败的话,访问内存时间为10ns+200ns+200ns=410ns;所以有效内存访问时间为90%*210ns+10%*410ns=230ns
题目三
考虑表1中所示段表:
请给出下列逻辑地址对应的物理地址。
(1)0,120
(2)1,120
(3)2,120
(4)3,120
(5)4,120
解:
- 段0的120位地址,由于小于其长度600,所以地址是合法的;对应的物理地址是219+120=339;
- 段1的120位地址,由于段1的长度为14,所以该地址不合法,该逻辑地址不在段内
- 段2的120位地址,由于段2的长度为100,所以该地址不合法,该逻辑地址不在段内
- 段3的120位地址,由于段3的长度为580,所以该地址是合法的,对应的物理地址是1327+120=1447
- 段4的120位地址,由于段4的长度为96,所以该地址是不合法的,该逻辑地址不在段内
题目四
试按要求设计多级分页系统:
(1)逻辑地址为 48 位;
(2)物理地址为 48 位;
(3)页大小为 1M;
(4)各级页表中的页表项均不得超过 1K 项;
请给出设计的要点,包括地址划分,各级页表项数,逻辑地址到物理地址的转换方法等
解:
页大小为1M,所以页的偏移为2^20,所以对于逻辑地址来说p=48-20=28,d=20;
对于物理地址来说f=48-20=28,d=20
由于页表项不得超过1K项,即页表项不得超过210位,所以需要进行三级分页设计;第二级外部页表项为210,外部页表项为210,内部页表项为28;
即我们的逻辑地址被分为p1=10,p2=10,p3=8,d=20;
从第二级外部页表的第i项(0<=i<=2^10-1)找到对应外部页表的索引
从外部页表的第j项(0<=i<=2^10-1)找到对应内部页表的索引;
从内部页表的第k项(0<=i<=2^8-1)找到对应帧号(即物理地址的索引),然后结合偏移找到相应的物理地址