操作系统精髓与设计原理第五版中文答案 下载本文

4004 (R3) B(R1) Access B[i] using index register R1 4005 (R3) (R3) + C(R1) Add C[i] using index register R1 4006 A(R1) (R3) Store sum in A[i] using index register R1 4007 (R1) (R1) + ONE Increment i 4008 branch 4002 6000-6999 storage for A 7000-7999 storage for B 8000-8999 storage for C 9000 storage for ONE 9001 storage for n 8.10

?假设需要i级,则可以表示的地址空间大小 ?=

?要求表示64位地址空间,则要求10i+12>=64,所以i至少取6

?8.11 ?a. 400ns

?b. 15%*420+85%*220=250

?8.12

?a. 缺页下限=n ?b. 缺页上限=p

?8.17

?a. 每段的最大尺寸=8*2K=16K

?b. 该任务的逻辑地址空间最大=4*16K=64K

?c. 逻辑地址格式是:2位表示段号,3位表示页号,其他11位表示页内偏移。最后的11

位转换为十六进制为2BC

?8.18

?a. 逻辑地址格式是:前5位表示页号,后11位表示页内偏移。 ?b. 页表长度:25=32个条目;页表宽度:20-11=9位。 ?c. 页表宽度由9位变为8位。

9.1 每个方块表示一个执行单元,方块中的数字表示当前执行的进程。 FCFS RR, q = 1 RR, q = 4 SPN SRT HRRN A A A B B B B B C C D D D D D E E E E E A B A B C A B C B D B D E D E D E D E E A A A B B B B C C B D D D D E E E E D E A A A C C B B B B B D D D D D E E E E E A A A C C B B B B B D D D D D E E E E E A A A B B B B B C C D D D D D E E E E E Feedback, q = 1 A B A C B C A B B D B D E D E D E D E E Feedback, q = 2i A B A A C B B C B B D D E D D E E D E E FCFS RR, q = 1 RR, q = 4 SPN SRT HRRN A A A B B B B B C C D D D D D E E E E E A B A B C A B C B D B D E D E D E D E E A A A B B B B C C B D D D D E E E E D E A A A C C B B B B B D D D D D E E E E E A A A C C B B B B B D D D D D E E E E E A A A B B B B B C C D D D D D E E E E E Feedback, q = 1 A B A C B C A B B D B D E D E D E D E E Feedback, q = 2i A B A A C B B C B B D D E D D E E D E E 9.7

首先,调度器计算在时间t+r1+r2+r3时刻的响应 比,此时,三个作业都已经完成。这个时候第三个 作业具有最小的响应比(图中可以看出),所以, 调度器决定最后执行第三个作业;继续查看在时间 t+r1+r2时,第一和第二个作业都已完成,此时, 第一个任务的响应比要小些,所以,在时间t的时 候第二个作业被选择执行,既执行顺序为r2,r1,r3。 这个算法在每完成一个作业之后重新查看作业的响

应比,跟高响应比优先算法是有区别的,如果是后 者那么在时间t的时候就会选择第一个作业。 9.14

?在多级反馈队列调度器的调度下,I/O-bound的进程比CPU-bound的进程更有利,也就是

说,调度器更倾向于选择I/O-bound的进程进行分派。原因在于I/O-bound的进程会比较长时间地阻塞;在阻塞过程中,CPU-bound的进程得到多次分派执行,因而会很快进入低优先级的反馈队列中。这样,I/O-bound的进程被唤醒之后,通常具有比CPU-bound的进程高得多的优先级,所以会得到调度器的“青睐”。 9.16 11.3

第二问,如果沿着磁道号增大的方向移动,则只有扫描算法和循环扫描算法需要改变。 11.8 a.

物理块大小=(10逻辑记录/物理记录)*(120字节/逻辑记录)=1200字节 物理块长度=1200字节/(1600字节/寸)=0.75寸 传输时间=0.75/120+0.6/60=0.01625 块数量=2400*12/(0.75+0.6)=21333 花费的时间=21333*0.01625=346(s) b.

物理块大小=(30逻辑记录/物理记录)*(120字节/逻辑记录)=3600字节 物理块长度=3600字节/(1600字节/寸)=2.35寸 传输时间=2.35/120+0.6/60=0.02875 块数量=2400*12/(2.35+0.6)=10105 花费的时间=10105*0.02875=291(s)

c.对于a,物理块为21333,逻辑记录=10*21333=213330 对于b,物理块为10105,逻辑记录=30*10105=303150 d.对于a,

r=(213330个记录*120个字节/记录)/346秒 = 73987字节/秒 对于b,

r=(303150个记录*120个字节/记录)/291秒 = 125010字节/秒

e.对于a,

容量=213330个记录*120字节/记录 = 25599600字节 对于b,

容量=303150个记录*120字节/记录 =36378000字节

11.10

每个扇区有512个字节,每个字节产生一次中断,那么就有512次中断,总共的中断处理时间=2.5*512=1280us.

磁盘旋转速度为360r/m=6r/s,既转一圈要1/6秒。 所以,读一个扇区的时间

=(1/6s)/(96扇区/磁道)=0.001736s =1736us

处理器花费在处理I/O上的时间百分比 =1280/1736=74% 12.3 a.索引

b.索引顺序 c.哈希或索引 12.6

?a

?可以,一种简单的方式是:首先,建立一个数据结构以表示文件系统所在磁盘的所有块。

然后,从文件系统的根目录开始遍历整个系统,并为每个文件所使用的每个块在前述数据结构中打上标记。最后,当遍历完成,没有被打上标记的块既为空闲块。

?b

?可以使用空闲空间链的备份链。

12.7

?a

?一个磁盘块的大小是8K,每个磁盘块指针是32位,则,一个磁盘块中可以容纳的块指针

数=8*1024*(8/32)=2048

?因

此,最大文件的大小

=12*8K+2048*8K+2048*2048*8K+2048*2048*2048*8K=96K+16M+32G+64T

?b

? ?8K=16M?8K=128G

?c

?地址12,423,956大约在11M的范围内,需要用到单重链接。所以需要两次磁盘访问。