习题

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

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

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

广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元

4.假设一个系统使用DMA将数据从磁盘控制器传送到内存。进一步假设平均花费t1 ns获得总线,并且花费t2 ns在总线上传送一个字(t1 >>t2 )。在CPU对DMA控制器进行编程之后,如果(a)采用一次一字模式,(b)采用突发模式,从磁盘控制器到内存传送1000个字需要多少时间?假设向磁盘控制器发送命令需要获取总线以传输一个字,并且应答传输也需要获取总线以传输一个字。

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

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

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

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

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

10.请解释OS如何帮助安装新的驱动程序而无须重新编译OS。

11.以下各项工作是在四个I/O软件层的哪一层完成的?

a)为一个磁盘读操作计算磁道、扇区、磁头。

b)向设备寄存器写命令。

c)检查用户是否允许使用设备。

d)将二进制整数转换成ASCII码以便打印。

12.一个局域网以如下方式使用:用户发出一个系统调用,请求将数据包写到网上,然后操作系统将数据复制到一个内核缓冲区中,再将数据复制到网络控制器接口板上。当所有数据都安全地存放在控制器中时,再将它们通过网络以10Mb/s的速率发送。在每一位被发送后,接收的网络控制器以每微秒一位的速率保存它们。当最后一位到达时,目标CPU被中断,内核将新到达的数据包复制到内核缓冲区中进行检查。一旦判明该数据包是发送给哪个用户的,内核就将数据复制到该用户空间。如果我们假设每一个中断及其相关的处理过程花费lms时间,数据包为1024字节(忽略包头),并且复制一个字节花费1µs时间,那么将数据从一个进程转储到另一个进程的最大速率是多少?假设发送进程被阻塞直到接收端结束工作并且返回一个应答。为简单起见,假设获得返回应答的时间非常短,可以忽略不计。

13.为什么打印机的输出文件在打印前通常都假脱机输出在磁盘上?

14.3级RAID只使用一个奇偶驱动器就能够纠正一位错误。那么2级RAID的意义是什么?毕竟2级RAID也只能纠正一位错误而且需要更多的驱动器。

15.如果两个或更多的驱动器在很短的时间内崩溃,那么RAID就可能失效。假设在给定的一小时内一个驱动器崩溃的概率是p,那么在给定的一小时内具有k个驱动器的RAID失效的概率是多少?

16.从读性能、写性能、空间开销以及可靠性方面对0级RAID到5级RAID进行比较。

17.为什么光存储设备天生地比磁存储设备具有更高的数据密度?注意:本题需要某些高中物理以及磁场是如何产生的知识。

18.光盘和磁盘的优点和缺点各是什么?

19.如果一个磁盘控制器没有内部缓冲,一旦从磁盘上接收到字节就将它们写到内存中,那么交错编号还有用吗?请讨论。

20.如果一个磁盘是双交错编号的,那么该磁盘是否还需要柱面斜进以避免在进行磁道到磁道的寻道时错过数据?请讨论你的答案。

21.考虑一个包含16个磁头和400个柱面的磁盘。该磁盘分成4个100柱面的区域,不同的区域分别包含160个、200个、240个和280个扇区。假设每个扇区包含512字节,相邻柱面间的平均寻道时间为1ms,并且磁盘转速为7200rpm。计算a)磁盘容量、b)最优磁道斜进以及c)最大数据传输率。

22.一个磁盘制造商拥有两种5.25英寸的磁盘,每种磁盘都具有10 000个柱面。新磁盘的线性记录密度是老磁盘的两倍。在较新的驱动器上哪个磁盘的特性更好,哪个无变化?

23.一个计算机制造商决定重新设计Pentium硬盘的分区表以提供四个以上的分区。这一变化有什么后果?

24.磁盘请求以柱面10、22、20、2、40、6和38的次序进入磁盘驱动器。寻道时每个柱面移动需要6ms,以下各算法所需的寻道时间是多少?

a)先来先服务。

b)最近柱面优先。

c)电梯算法(初始向上移动)。

在各情形下,假设磁臂起始于柱面20。

25.调度磁盘请求的电梯算法的一个微小更改是总是沿相同的方向扫描。在什么方面这一更改的算法优于电梯算法?

26.在讨论使用非易失性RAM的稳定的存储器时,掩饰了如下要点。如果稳定写完成但是在操作系统能够将无效的块编号写入非易失性RAM之前发生了崩溃,那么会有什么结果?这一竞争条件会毁灭稳定的存储器的抽象概念吗?请解释你的答案。

27.在关于稳定的存储器的讨论中,证明了如果在写过程中发生了CPU崩溃,磁盘可以恢复到一个一致的状态(写操作或者已完成,或者完全没有发生)。如果在恢复的过程中CPU再次崩溃,这一特性是否还保持?请解释你的答案。

28.某计算机上的时钟中断处理程序每一时钟滴答需要2ms(包括进程切换的开销),时钟以60Hz的频率运行,那么CPU用于时钟处理的时间比例是多少?

29.一台计算机以方波模式使用一个可编程时钟。如果使用500MHz的晶体,为了达到如下时钟分辨率,存储寄存器的值应该是多少?

a)1ms(每毫秒一个时钟滴答)。

b)100µs.

30.一个系统通过将所有未决的时钟请求链接在一起而模拟多个时钟,如图5-34所示。假设当前时刻是5000,并且存在针对时刻5008、5012、5015、5029和5037的未决的时钟请求。请指出在时刻5000、5005和5013时时钟头、当前时刻以及下一信号的值。请指出在时刻23时时钟头、当前时刻以及下一信号的值。

31.许多UNIX版本使用一个32位无符号整数作为从时间原点计算的秒数来跟踪时间。这些系统什么时候会溢出(年与月)?你盼望这样的事情实际发生吗?

32.一个位图模式的终端包含1280×960个像素。为了滚动一个窗口,CPU(或者控制器)必须向上移动所有的文本行,这是通过将文本行的所有位从视频RAM的一部分复制到另一部分实现的。如果一个特殊的窗口高60行宽80个字符(总共4800个字符),每个字符框宽8个像素高16像素,那么以每个字节50ns的复制速率滚动整个窗口需要多长时间?如果所有的行都是80个字符长,那么终端的等价波特率是多少?将一个字符显示在屏幕上需要5µs,每秒能够显示多少行?

33.接收到一个DEL(SIGINT)字符之后,显示驱动程序将丢弃当前排队等候显示的所有输出。为什么?

34.在最初IBM PC的彩色显示器上,在除了CRT电子束垂直回扫期间以外的任何时间向视频RAM中写数据都会导致屏幕上出现难看的斑点。一个屏幕映像为25×80个字符,每个字符占据8×8像素的方框。每行640像素在电子束的一次水平扫描中绘出,需要花费6µs,包括水平回扫。屏幕每秒钟刷新60次,每次刷新均需要一个垂直回扫期以便使电子束回到屏幕顶端。在这一过程中可供写视频RAM的时间比例是多少?

35.计算机系统的设计人员期望鼠标移动的最大速率为20cm/s。如果一个鼠标步是0.1mm,并且每个鼠标消息3个字节,假设每个鼠标步都是单独报告的,那么鼠标的最大数据传输率是多少?

36.基本的加性颜色是红色、绿色和蓝色,这意味着任何颜色都可以通过这些颜色的线性叠加而构造出来。某人拥有一张不能使用全24位颜色表示的彩色照片,这可能吗?

37.将字符放置在位图模式的屏幕上,一种方法是使用BitBlt从一个字体表复制位图。假设一种特殊的字体使用16×24像素的字符,并且采用RGB真彩色。

(a)每个字符占用多少字体表空间?

(b)如果复制一个字节花费100ns(包括系统开销),那么到屏幕的输出率是每秒多少个字符?

38.假设复制一个字节花费10ns,那么对于80字符×25行文本模式的内存映射的屏幕,完全重写屏幕要花费多长时间?采用24位彩色的1024×768像素的图形屏幕情况怎样?

39.在图5-4 0中存在一个窗口类需要调用RegisterClass进行注册,在图5-38中对应的X窗口代码中,并不存在这样的调用或与此相似的任何调用。为什么?

40.在课文中我们给出了一个如何在屏幕上画一个矩形的例子,即使用Windows GDI:


Rectangle(hdc,xleft,ytop,xright,ybottom);


是否存在对于第一个参数(hdc)的实际需要?如果存在,是什么?毕竟,矩形的坐标作为参数而显式地指明了。

41.一台THINC终端用于显示一个网页,该网页包含一个动画卡通,卡通大小为400×160像素,以每秒10帧的速度播放。显示该卡通会消耗100Mbps决速以太网带宽多大的部分?

42.在一次测试中,THINC系统被观测到对于1Mbps的网络工作良好。在多用户的情形中会有问题吗?提示:考虑大量的用户在观看时间表排好的TV节目,并且相同数目的用户在浏览万维网。

43.如果一个CPU的最大电压V被削减到V/n,那么它的功率消耗将下降到其原始值的l/n2 ,并且它的时钟速度下降到其原始值的1/n。假设一个用户以每秒1个字符的速度键入字符,处理每个字符所需要的CPU时间是100ms,n的最优值是多少?与不削减电压相比,以百分比表示相应的能量节约了多少?假设空闲的CPU完全不消耗能量。

44.一台笔记本电脑被设置成最大地利用功率节省特性,包括在一段时间不活动之后关闭显示器和硬盘。一个用户有时在文本模式下运行UNIX程序,而在其他时间使用X窗口系统。她惊讶地发现当她使用仅限文本模式的程序时,电池的寿命相当长。为什么?

45.编写一个程序模拟稳定的存储器,在你的磁盘上使用两个大型的固定长度的文件来模拟两块磁盘。

46.编写一个程序实现三个磁盘臂调度算法。编写一个驱动程序随机生成一个柱面号序列(0~999),针对该序列运行三个算法并且打印出在三个算法中磁盘臂需要来回移动的总距离(柱面数)。

47.编写一个程序使用单一的时钟实现多个定时器。该程序的输入包含四种命令(S<int>,T,E<int>,P)的序列:S<int>设置当前时刻为<int>;T是一个时钟滴答;E<int>调度一个信号在<int>时刻发生;P打印出当前时刻、下一信号和时钟头的值。当唤起一个信号时,你的程序还应该打印出一条语句。