32bit = 4byte
128MB = 128 * 1024 * 1024byte = 134217728byte
t = 128MB / 4byte * 10ns = 335544320ns
压缩空闲区是一个复制过程,复制包含读写两过程,因此
T = t * 2 约等于671ms
这是复制128MB内存所使用的时间,一般来说假如最初有k字节位于底部,那么这k字节就不用被复制。
他们把MMU放在8086和总线之间,然后把8086的物理地址视为虚拟地址,再映射到物理内存地址....
http://stackoverflow.com/questions/12688659/virtual-memory-system-page-table-and-tlb
(a)TLB记录的是页面号,因此M必须大于一个页面,否则两次访问会落在同一页面。M > 4096。N无影响。
(b)此问题意为这段代码重复多次,因此TLB要被填满两次(假如TLB策略替换为FIFO),即循环128次,所以N > 128 * 4096
PS: 不知道是我理解错了还是答案错了...
地址为32位,则需要虚拟内存2^32byte。页面大小只有8Kb = 2^13byte 因此需要表项2^32 / 2^13个。又知每个表项占一个字,一个字传输时间100ns 得出占比 2^(32 - 13) * 100ns / 100ms = 52%
答案错,页面0的计数器是01101110
这题连题目的翻译都是有问题的...英文版题意为找出一个序列,使得用Clock算法和LRU算法时第一个被替换的页面是不同的。
答案为0, 1, 2, 1, 2, 0, 3。答案描述错误,应该是使用Clock的时候页面0会被替换。