好文档 - 专业文书写作范文服务资料分享网站

《现代操作系统第四版》 第五章 答案

天下 分享 时间: 加入收藏 我要投稿 点赞

第五章 输入/输出 习题

1.芯片技术的进展已经使得将整个控制器包括所有总线访问逻辑放在一个便宜的芯片上成为可能。这对于图1-5的模型具有什么影响?

答:(题目有问题,应该是图1-6)在此图中,一个控制器有两个设备。单个控制器可以有多个设备就无需每个设备都有一个控制器。如果控制器变得几乎是自由的,那么只需把控制器做入设备本身就行了。这种设计同样也可以并行多个传输,因而也获得较好的性能。

2.已知图5-1列出的速度,是否可能以全速从一台扫描仪扫描文档并且通过802.1 lg网络对其进行传输?请解释你的答案。

答:太简单了。扫描仪最高速率为 400 KB/Sec,而总线程和磁盘都为16.7 MB/sec,因此磁盘和总线都无法饱和。

3.图5-3b显示了即使在存在单独的总线用于内存和用于I/O设备的情况下使用内存映射I/O的一种方法,也就是说,首先尝试内存总线,如果失败则尝试I/O总线。一名聪明的计算机科学专业的学生想出了一个改进办法:并行地尝试两个总线,以加快访问I/O设备的过程。你认为这个想法如何?

答:这不是一个好主意。内存总线肯定比 I/O 总线快。一般的内存请求总是内存总线先完成,而I/O总线仍然忙碌。如果CPU要一直等待I/O总线完成,那就是将内存的性能降低为I/O总线的水平。

4.假设一个系统使用DMA将数据从磁盘控制器传送到内存。 进一步假设平均花费t2ns获得总线,并且花费t1ns在总线上传送一个字(t1>>t2)。在CPU对DMA控制器进行编程之后,如果(a)采用一次一字模式,(b)采用突发模式,从磁

盘控制器到内存传送1000个字需要多少时间?假设向磁盘控制器发送命令需要获取总线以传输一个字,并且应答传输也需要获取总线以传输一个字。

答:(a)1000×[(t1+t2)+(t1+t2)+(t1+t2)];第一个(t1+t2)是获取总线并将命令发送到磁盘控制器,第二个(t1+t2)是用于传输字,第三个(t1+t2)是为了确认。总之,共3000×(t1+t2)纳秒。

(b)(t1+t2)+t1+1000×t2+(t1+t2),第一个(t1+t2)是获取总线并将命令发送到磁盘控制器,第二个t1是为磁盘控制器获取总线,第三个1000×t2是突发传送,第第四个(t1+t2)是获取总线并做确认。总3t1+1002×t2。

5.假设一台计算机能够在10ns内读或者写一个内存字,并且假设当中断发生时,所有32位寄存器连同程序计数器和PSW被压人堆栈。该计算机每秒能够处理的中断的最大数目是多少?

答:一次中断需要入栈34个字。而从中断返回需要把34个字从栈中取出。总耗时为680 ns。因此,每秒最多处理147万次中断,假设每次中断什么也不做。

6.CPU体系结构设计师知道操作系统编写者痛恨不精确的中断。取悦于OS人群的一种方法是当得到一个中断信号通知时,让CPU停止发射指令,但是允许当前正在执行的指令完成,然后强制中断。这一方案是否有缺点?请解释你的答

案。

答:当前的处理器一般采用多级流水线操作,无法准确地确定CPU当前正在执行的指令是哪一条,所以停止让CPU发送指令后,需要等待把流水线中的指令全部执行完成才能响应中断,对于指令不按序执行的处理器而言,会造成中断响应的不精确。

7.在图5-9b中,中断直到下一个字符输出到打印机之后才得到应答。中断在中断服务程序开始时立刻得到应答是否同样可行?如果是,请给出像本书中那样在中断服务程序结束时应答中断的一个理由。如果不是,为什么?

答:在开始中断服务例程时就确认是可以的。而在最后才做的原因是因为中断服务例程的代码都非常短。通过先输出另一个字符和然后确认该中断,如果立即发生另一个中断,打印机将在此中断期间工作,将使得打印稍快。该方法的缺点是当其他中断禁用时,死机时间稍长。

8.一台计算机具有如图1-6a所示的三阶段流水线。在每一个时钟周期,一条新的指令从PC所指向的地址处的内存中取出并放人流水线,同时PC值增加。每条指令恰好占据一个内存字。已经在流水线中的指令每个时钟周期前进一个阶段。当中断发生时,当前PC压入堆栈, 并且将PC设置为中断处理程序的地址。然后,流水线右移一个阶段并且中断处理程序的第一条指令被取入流水线。该机器具有精确的中断吗?请解释你的答案。

答:(题目有问题,应该是图1-7a)具有精确的中断。入栈的PC指向第一条未读取的指令。之前的所有指令都已执行,而指向的指令及其后续指令均尚未执行,这就是精确中断的条件。精确中断在单管线的机器上不难实现,但是当指令不按序执行时会有麻烦,此时就不再具有精确的中断。

9.一个典型的文本打印页面包含50行,每行80个字符。设想某一台打印机每分钟可以打印6个页面,并且将字符写到打印机输出寄存器的时间很短以至于可以忽略。如果打印每一个字符要请求一次中断,而进行中断服务要花费总计5μs的时间,那么使用中断驱动的I/O来运行该打印机有没有意义?

答:该打印机打印每分钟打印50×80×6 = 24000个字符,也就是400字符/s,

《现代操作系统第四版》 第五章 答案

第五章输入/输出习题1.芯片技术的进展已经使得将整个控制器包括所有总线访问逻辑放在一个便宜的芯片上成为可能。这对于图1-5的模型具有什么影响?答:(题目有问题,应该是图1-6)在此图中,一个控制器有两个设备。单个控制器可以有多个设备就无需每个设备都有一个控制器。如果控制器变得几乎是自由的,那么只需把控制器做入设备本身就行了。这种设计同样也可以并行多个
推荐度:
点击下载文档文档为doc格式
9rud77y4g792i2p9mey92mdyx423a401cc8
领取福利

微信扫码领取福利

微信扫码分享