两个月学完《现代操作系统》(九)——第五章习题

两个月学完《现代操作系统》(九)——第五章习题

摘要:个人操作系统学习笔记。

0x01 题目




0x02 正文

1、影响就是控制器都集成到了一个芯片上而不是每个设备都要使用一个控制器,这样的好处是支持并发传输从而拥有更好的性能;
2、显然是可以的,因为802.11g网络的传输速度远大于扫描仪,因此可以直接进全速进行扫描,甚至802.11g传输可能还要“等”一下扫描仪。
3、不是一个好的想法,因为内存总线总是比I/O总线来的快的多。如果内存总线首先完成,但是I/O总线仍处于忙碌状态;如果CPU总是要等到I/O总线完成,那么它就需要去减少内存的性能来使用I/O。
4、精确中断的一个优点是它的代码是简单的(软件容易实现),因为机器的状态是被清晰地定义了的;在不精确中断的情况下,OS的书写者需要去解决“什么指令在哪个时间点已经被执行到什么地步”这个问题(软件较难实现)。精确中断增加了芯片的复杂度。
5、一个总线事务需要80纳秒去完成,那么一秒就完成了1250万次的总线事务。每次总线事务完成4字节的运输,那么一秒完成50MB数据的传输。这里需要注意的是,DMA的通道数量对我们总线的传输是毫无影响的,因为这些通道是轮流使用的。
6、(a)需要3000(t1+t2)ns,第一个t1+t2用于获取总线并且发送命令给磁盘控制器,第二个部分用来传输这个字,第三个部分用来得到回应(b)需要(t1+t2)+(t1+1000t2)+(t1+t2)ns。
总结一下:DMA传输数据需要三个过程:发送命令、传输数据、获得回应。
7、先使用一个read命令读取内存中的内容然后使用write命令来传输对应的数据到一个新的内存地址中。优点:将CPU解放了出来,可以并行地去处理其他事务;缺点:速度会比CPU慢一点
8、一个中断需要将总共34个字压入栈中,从中断中恢复又需要从栈中抓取34个字,那么这一个来回就花费了340ns了,因此,一秒大概能够处理294万次的中断。
9、这可能导致中断时延看起来十分的显著,同时需要一些其他的管理器来完成这个过程
10、
11、是的,具备精确中断。因为根据精确中断的四个条件,确实符合:1.PC(程序计数器)保存在一个已知的地方;2.PC所指向的指令之前的所有指令已经完全执行;3.PC所指向的指令之后的所有指令都没有执行;4.PC所指向的指令的执行状态是已知的
12、根据计算,中断时间只占用了2%的CPU花费,因此几乎不影响程序的运行,所以明显是有意义的。
13、UNIX使用如下的方法:拥有一张包含了所有设备的索引表,每一个条目是一个包含了指向open、close、read、write函数操作的指针的结构体。想要安装一个新的设备驱动器的话只需要新增一个条目到这个表中即可。
14、(a)设备驱动程序(b)设备驱动程序(c)与设备无关的操作系统软件(d)用户级I/O程序
15、
16、如果在输出出现之后立刻分配了打印机,那么可能出现这个进程打印了几个字符后然后就去sleep一个星期的情况,这也直接占用了这个打印机一个星期。
17、磁盘的转速为120RPS,也就是说,转一圈需要1000/120ms。由题易得,一个磁道总共拥有200个扇区,那么经过一个扇区大概需要5/120,也就是1/24ms。那么寻道的这一毫秒经过了24个扇区,因此,相邻柱面起始位置的偏移角度大概是24/200度。
18、120RPS,转一圈需要1000/120ms,那么读一个扇区需要1/60ms。
19、转一圈传输的数据量为(512*500)B约等于31kb。一秒大概可以转120圈,传送速率大概为3.6mb/s
20、二级RAID不仅可以从损坏的驱动器中恢复数据,还可以从未被检测到的暂时的错误中恢复。比方说,如果一个磁盘传输了一个坏的位,二级RAID可以纠正它,而三级RAID却不能。
21、1-(1-p)^k-(1-p)^(k-1)-p
22、读性能:0,2,3,4,5级支持为一个读请求进行并行读取;1级则是两个请求;写性能:所有的RAID提供相同的写性能;空间开销:实际用到的存储数据的空间大小/总共的空间大小;可靠性:0级没有任何的可靠性,除此之外其他的都提供磁盘崩溃的恢复机制。3,4,5级可以检测在一个字中的位错误;而2级可以检测单位的错误并且纠正
23、我们有

1 Byte = 8 Bits
1 Kilobyte (KB) = 1024 Bytes
1 Megabyte (MB) = 1024 KB
1 Gigabyte (GB) = 1024 MB
1 Terabyte (TB) = 1024 GB
1 Petabyte (PB) = 1024 TB
1 Exabyte (EB) = 1024 PB
1 Zettabyte (ZB) = 1024 EB
1 Yottabyte (YB) = 1024 ZB

因此,1ZB=1024*1024PB
24、A magnetic field is generated between two poles. Not only is it difficult to make the source of a magnetic field small, but also the field spreads rapidly,which leads to mechanical problems trying to keep the surface of a magnetic medium close to a magnetic source or sensor. A semiconductor laser generates light in a very small place, and the light can be optically manipulated to illuminate a very small spot at a relatively great distance from the source
25、光盘具有比磁盘更大的存储密度;磁盘比光盘快一个数量级
26、可能吧,因为程序处理数据也需要一定的时间。但这很大程度取决于程序运行的方式以及它的行为规范。
27、可能需要也可能不需要,这个得具体情况具体分析。举个双交错的例子:Double interleaving is effectively a cylinder skew of
two sectors. If the head can make a track-to-track seek in fewer than two sector times, than no additional cylinder skew is needed. If it cannot, then additional cylinder skew is needed to avoid missing a sector after a seek.
28、
29、容量与传输速度是旧的两倍;寻道时间和平均旋转延迟没变化;没有劣势
30、最显著的结果是没有操作系统能够运行了因为他们都需要查看分区表来确定磁盘分区。改变分区表的格式会导致所有的操作系统产生错误,因此所有的操作系统都需要修改以使用这个新的格式
31、(a)(10+12+2+18+38+34+32)*6
(b)(0+2+12+8+4+36+2)*6
(c)(0+2+16+2+30+4+4)*6
32、在最坏的情况下,普通的电梯算法相当于需要做两次全盘扫描而改进的算法只需要进行一次全盘扫描即可。
33、并不是。一个读取1000个块的UNIX程序每次只提交一个请求,下个请求将在当前请求处理完后才会提交,所以对磁盘来说,它每次只能看到一个请求,所以没法使用电梯算法。如果想要看具体的效果,还是需要开启许多的进程来测试。
34、存在条件竞争但是并不影响,因为稳定写已经完成了,非易失性RAM没有被更新仅仅意味着恢复程序会知道那个块已经被写了。
35、肯定保持着。
36、如果不产生一个错误的ECC那么意味着就不能够检测到错误,也就无法进行恢复了。
37、60hz意味着1秒钟有60个周期,也就是中断了120ms,那么CPU用于时钟处理的时间比例是12%
38、(a)500MHz意味着是500000000hz也就是1秒500000000次,要做到1秒100次,需要给寄存器赋值5000000;要做到1秒1000次,就给寄存器赋值500000
39、
40、过了136年1个月7日后
41、
42、为了防止用户因为DEL后输出没有停止而重复键入DEL导致DEL失效的情况发生
43、ESC [ 5 ; 7 H ESC [ 6 P
44、60bytes/s
45、RGB格式如下(R,G,B),显然24位颜色只能够表示2^24种颜色,这显然不是全部。
46、(a)在这里每个像素需要3bytes在RGB上,因此总共占16*24*3bytes
(b)每个字符花费大概115.2μs,输出大概为8681字符/秒
47、重写2000个字节的字符需要4μs,重写图形屏幕需要1024*768*3=2359296字节,花费4.72μs
48、在windows中,操作系统本身会调用处理程序,而在X Windows中,不会有类似的情况发生,X 只是得到一个消息并且在内部进行执行。
49、
50、400*160*3*10=1920000字节,也就是15360000位/秒,除以以太网速率就是所占比例了。
51、每个用户所分到的平均带宽会减小,所以观看视频可能会存在卡顿
52、优点:便宜并且不需要用户进行太多复杂的管理;缺点:因为网络延迟而导致的潜在的低性能;潜在的个人隐私的泄露因为用户数据都是放在服务器上的。
53、
54、窗口系统使用更多的内存来进行输出并且使用了更多的虚拟内存,相比之下仅使用文本模式的程序时调用的资源少,耗电量也就小了。

0x03 写在后面

没啥好说的,以上。


评论