题目一:
试说明内部碎片和外部碎片之间的差别
解答:
内部碎片是指进程所分配的内存可能比进程所需要的大
外部碎片是指由于进程的大小不一导致内存被分成小片段且不连续,造成空间浪费。
题目二:
考虑一个页表在内存中的内存分页系统:
(1)如果内存访问的时间为 200ns,试问访问页表中的一个数据需要多长时间?
(2)如果增加 TLB,其中 90% 的页引用被 TLB 命中,TLB 的访问时间为 10ns,请问有效内存访问时间是多少?。
解答:
(1)由于内存访问的时间为200ns,访问数据首先需要访问页表,页表在内存中,也就是说需要200ns的时间;而从页表中找到物理地址后,再去找到数据,又需要访问一次内存,也就是需要200ns的时间,总共为200+200=400ns。
(2)首先,TLB的使用方法有两种:
①TLB与页表同时进行访问,这个时候,如果TLB命中,那么就可以终止对页表的访问,而通过TLB找到的物理地址去找数据,相当于一次TLB访问+一次内存访问=10+200=210ns;如果TLB不命中,那么继续对页表进行访问,再通过物理地址去找数据,仍旧是两次内存访问的时间,为400ns。此时,再计算命中率,可以得到公式:21090