Skip to content

Latest commit

 

History

History
44 lines (26 loc) · 1.49 KB

3.md

File metadata and controls

44 lines (26 loc) · 1.49 KB

<<现代操作系统>>(第三版)习题笔记(3)

2.2

32bit = 4byte
128MB = 128 * 1024 * 1024byte = 134217728byte
t = 128MB / 4byte * 10ns = 335544320ns

压缩空闲区是一个复制过程,复制包含读写两过程,因此
T = t * 2 约等于671ms

这是复制128MB内存所使用的时间,一般来说假如最初有k字节位于底部,那么这k字节就不用被复制。

2.6

他们把MMU放在8086和总线之间,然后把8086的物理地址视为虚拟地址,再映射到物理内存地址....

2.7

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: 不知道是我理解错了还是答案错了...

2.9

地址为32位,则需要虚拟内存2^32byte。页面大小只有8Kb = 2^13byte 因此需要表项2^32 / 2^13个。又知每个表项占一个字,一个字传输时间100ns 得出占比 2^(32 - 13) * 100ns / 100ms = 52%

2.24

答案错,页面0的计数器是01101110

2.25

这题连题目的翻译都是有问题的...英文版题意为找出一个序列,使得用Clock算法和LRU算法时第一个被替换的页面是不同的。

答案为0, 1, 2, 1, 2, 0, 3。答案描述错误,应该是使用Clock的时候页面0会被替换。