1.
这些系统直接把程序载入内存,并且从word0(魔数)开始执行。
为了避免将header作为代码执行,魔数是一条branch指令,其目标地址正好在header之上。
按这种方法,就可能把二进制文件直接读取到新的进程地址空间,并且从0开始运行。
5.
rename 调用不会改变文件的创建时间和最后的修改时间,但是创建一个新的文件,其创建时间和最后的修改时间都会改为当前的系统时间。
另外,如果磁盘满,复制可能会失败。
10.
由于这些被浪费的空间在分配单元(文件)之间,而不是在它们内部,因此,这是外部碎片。
这类似于交换系统或者纯分段系统中出现的外部碎片。
11.
传输前的延迟是9ms,传输速率是2^23Bytes/s,文件大小是2^13Bytes,故从内存读取或写回磁盘的时间都是9+2^13/2^23=9.977ms,总共复制一个文件需要9.977*2=19.954ms。
为了压缩8G磁盘,也就是2^20个文件,每个需要19.954ms,总共就需要20,923 秒。
因此,在每个文件删除后都压缩磁盘不是一个好办法。
12.
因为在系统删除的所有文件都会以碎片的形式存在磁盘中,当碎
片到达一定量磁盘就不能再装文件了,必须进行外部清理,所以紧缩磁盘会释放更多的存储空间,但在每个文件删除后都压缩磁盘不是一个好办法。
15.
由于1024KB = 2^20B, 所以可以容纳的磁盘地址个数是2^20/4 = 2^18个磁盘地址,间接块可以保存2^18个磁盘地址。
与 10 个直接的磁盘地址一道,最大文件有 262154 块。
由于每块为 1 MB,最大的文件是262154 MB。
19.
每个磁盘地址需要D位,且有F个空闲块,故需要空闲表为DF位,采用位图法则需要B位,当DF<B时,空闲表采用的空间少于位图,当D=16时,得F/B<1/D=6.25%,即空闲空间的百分比少于6.25%.
20.
a)1111 1111 1111 0000
b)1000 0001 1111 0000
c)1111 1111 1111 1100
d)1111 1110 0000 1100
27.
平均时间T = 1*h + 40*(1-h)=-39h+40ms
28.
1500rpm(每分钟1500转),60s/1500=0.004s=4ms,即每转需要4ms,平均旋转延迟为2ms;
读取一个k个字节的块所需要的时间T是平均寻道时间,平均旋转延迟和传送时间之和。
此题中T = 8+2+(k/262144)* 4 ms,将k=1KB 代入得,T = 10.015625ms同理当k=2KB,T=10.03125ms ,当k=4KB,T=10.0625ms。
转换为速率为1KB/10.015625ms = 99.84KB/s, 2KB/10.03125ms = 199.38KB/s, 4KB/10.0625ms =397.52KB/s。
29.
1KB / 2KB * 100% = 50%
32.
由于1KB=1024B,所以1KB磁盘块可以容纳的磁盘地址个数是2^10B/4 = 256个。
故一个一次间接块存储256个磁盘地址。
一个二次间接块存储256^2磁盘地址。
一个三次间接块存储256^3磁盘地址。
把这些全部加起来,10+256+256^2+256^3 = 16843018块,每一
块1K,即16843018KB,约16.06 GB.
33.
(1) directory /
(2) i-node for /usr
(3) directory /usr
(4) i-node for /usr/ast
(5) directory /usr/ast
(6) i-node for /usr/ast/courses
(7) directory /usr/ast/courses
(8) i-node for /usr/ast/courses/os
(9)directory /usr/ast/courses/os/
(10)i-node for /usr/ast/courses/os/handout.t。