将f数据(数据访问指令频率),Rt和Pt(分别是TLB的失效率和失效开销),Rc和Pw(分别是Cache的失效率和写回的频率)代入公式得:
TLB停顿/指令数={[1+f数据]*[Rc(1+Rw)]}RtPt
其中,1+f数据:每条指令的访问内存次数;Rc(1+Rw):每次内存访问需要的TLB访问次数。
由条件得:TLB停顿/指令数={[1+20%]*[Rc(1+25%)]}0.2%×20
配置 16KB 直接统一映象 16KB两路统一映象 32KB直接统一映象 失效率 0.029 0.022 0.020 理想TLB的CPI 4.0 3.4 3.2
第6章输入输出系统
6.1 解释以下术语
响应时间:从用户键入命令开始,到得到结果所花的时间。
可靠性:指系统从某个初始参考点开始一直连续提供服务的能力,它通常用平均无故障时间来衡量。
可用性:指系统正常工作的时间在连续两次正常服务间隔时间中所占的比率。
可信性:指服务的质量,即在多大程度上可以合理地认为服务是可靠的。
RAID:廉价磁盘冗余阵列或独立磁盘冗余阵列。
分离事务总线:将总线事务分成请求和应答两部分。在请求和应答之间的空闲时间内,总线可以供给其它的I/O使用。采用这种技术的总线称为分离事务总线。
通道:专门负责整个计算机系统输入/输出工作的专用处理机,能执行有限的一组输入输出指令。
通道流量:指一个通道在数据传送期间,单位时间内能够传送的数据量。
虚拟DMA:它允许DMA设备直接使用虚拟地址,并在DMA传送的过程中由硬件将虚拟地址转换为物理地址。
异步I/O:允许进程在发出I/O请求后继续执行,直到该进程真正访问这些数据而它们又尚未就绪时,才被挂起。
6.2 假设一台计算机的I/O处理时间占10%,当其CPU性能改进为原来的100倍,而I/O性能仅改进为原来的2倍时,系统总体性能会有什么样的变化?
解:加速比?1?16.94
10%/2?90%/100
6.3 RAID有哪些分级?各有何特点?
31
答:(1)RAID0。亦称数据分块,即把数据分布在多个盘上,实际上是非冗余阵列,无冗余信息。(2)RAID1。亦称镜像盘,使用双备份磁盘。每当数据写入一个磁盘时,将该数据也写到另一个冗余盘,这样形成信息的两份复制品。如果一个磁盘失效,系统可以到镜像盘中获得所需要的信息。镜像是最昂贵的解决方法。特点是系统可靠性很高,但效率很低。(3)RAID2。位交叉式海明编码阵列。即数据以位或字节交叉的方式存于各盘,采用海明编码。原理上比较优越,但冗余信息的开销太大,因此未被广泛应用。(4)RAID3。位交叉奇偶校验盘阵列,是单盘容错并行传输的阵列。即数据以位或字节交叉的方式存于各盘,冗余的奇偶校验信息存储在一台专用盘上。(5)RAID4。专用奇偶校验独立存取盘阵列。即数据以块(块大小可变)交叉的方式存于各盘,冗余的奇偶校验信息存在一台专用盘上。(6)RAID5。块交叉分布式奇偶校验盘阵列,是旋转奇偶校验独立存取的阵列。即数据以块交叉的方式存于各盘,但无专用的校验盘,而是把冗余的奇偶校验信息均匀地分布在所有磁盘上。(7)RAID6。双维奇偶校验独立存取盘阵列。即数据以块(块大小可变)交叉的方式存于各盘,冗余的检、纠错信息均匀地分布在所有磁盘上。并且,每次写入数据都要访问一个数据盘和两个校验盘,可容忍双盘出错。
6.4 同步总线和异步总线各有什么优缺点?
答:(1) 同步总线。同步总线上所有设备通过统一的总线系统时钟进行同步。同步总线成本低,因为它不需要设备之间互相确定时序的逻辑。但是其缺点是总线操作必须以相同的速度运行。 (2) 异步总线。异步总线上的设备之间没有统一的系统时钟,设备自己内部定时。设备之间的信息传送用总线发送器和接收器控制。异步总线容易适应更广泛的设备类型,扩充总线时不用担心时钟时序和时钟同步问题。但在传输时,异步总线需要额外的同步开销。
6.5计算机系统字长32位,包含两个选择通道和一个多路通道,每个选择通道上连接了两台磁盘机和两台磁带机,多路通道上连接了了两台行式打印机,两台读卡机,10台终端,假定各设备的传输率如下:
磁盘机:800KBps 磁带机:200KBps 行打机:6.6KBps 读卡机:1.2KBps 终 端:1KBps
计算该计算机系统的最大I/O数据传输率。
解:本题要求计算通道的吞吐率,而且机器有一个多路通道,这就有两种可能:字节多路通道和数组多路通道。因为如果将多路通道组织成数组多路通道,某个时刻通道只能为一台设备传送数据,所以它的传输率是所有设备的传输率的最大值,而如果将它组织成字节多路通道,该通道的最大传输率就是所有设备的传输率之和。 所以在本题中,从性能上考虑,应组织成字节多路通道形式。 所以此类通道的最大传输率为:
(1)fBYTE=∑fi=f打印机传输率×2+f读卡机传输率×2+f终端传输率×10=25.6KBps (i=1..14) (2)两个选择通道连接的设备相同,所以只要计算其中一个通道的传输率既可。因为磁盘机的传输率大于磁带机。所以此类通道的传输率为:
max{800,200}=800KBps
所以本系统的最大数据传输率为: f系统=2×800+25.6=1625.6KBps。
6.6 简述通道完成一次数据传输的主要过程。 答:(1)在用户程序中使用访管指令进入管理程序,由CPU通过管理程序组织一个通道程序,并启动通道。 (2) 通道处理机执行CPU为它组织的通道程序,完成指定的数据I/O工作。 (3) 通道程序结束后向CPU发中断请求。CPU响应这个中断请求后,第二次进入操作系统,调用管理程序对I/O中断请求进行处理。
6.7 试比较三种通道的优缺点及适用场合。 答:(1)字节多路通道。一种简单的共享通道,主要为多台低速或中速的外围设备服务。(2)数组多路通道。适于为高速设备服务。(3)选择通道。为多台高速外围设备(如磁盘存储器等)服务的。
6.8 一个字节多路通道连接有6台设备,它们的数据传输率如下表所示。
32
设备名称 D1 D2 D3 D4 D5 D6 数据传输速率(B/ms) 50 50 40 25 25 10 (1) 计算该通道的实际工作流量。
(2) 若通道的最大流量等于实际工作流量,求通道的工作周期Ts+TD。 解:(1)通道实际流量为
fbyte??fi?50?50?40?25?25?10?200B/ms
i?16(2)由于通道的最大流量等于实际工作流量,即有
1fmax?byte??200B/ms
TS?TD可得,通道的工作周期Ts+TD = 5μs。
6.9 设某个字节多路通道的设备选择时间Ts为9.8μs,传送一个字节的数据所需的时间TD为0.2μs。若某种低速外设每隔500μs发出一次传送请求,那么,该通道最多可连接多少台这种外设?
1解:字节多路通道的最大流量为:fmax?byte?
TS?TD字节多路通道的实际流量为:fbyte??fi
i?1p其中,p为通道连接的外设台数,fi为外设i的数据传输速率。因为连接的是同样的外设,所以f1=f2=…=fp=f,故有fbyte=pf。
通道流量匹配的要求有:fmax-byte≥fbyte
11即有: ?pf;可得:p?TS?TD(TS?TD)f已知Ts = 9.8μs,TD = 0.2μs,1/f = 500μs,可求出通道最多可连接的设备台数为:
500?s1p???50
(TS?TD)f(9.8?0.2)?s
6.10 在有Cache的计算机系统中,进行I/O操作时,会产生哪些数据不一致问题?如何克服? 答:(1)存储器中可能不是CPU产生的最新数据 ,所以I/O系统从存储器中取出来的是陈旧数据。 (2)I/O系统与存储器交换数据之后,在Cache中,被CPU使用的可能就会是陈旧数据。 第一个问题可以用写直达Cache解决。
第二个问题操作系统可以保证I/O操作的数据不在cache中。如果不能,就作废Cache中相应的数据。
6.11 假设在一个计算机系统中:
(1) 每页为32KB,Cache块大小为128字节;
(2) 对应新页的地址不在Cache中,CPU不访问新页中的任何数据; (3) Cache中95%的被替换块将再次被读取,并引起一次失效; (4) Cache使用写回方法,平均60%的块被修改过; (5) I/O系统缓冲能够存储一个完整的Cache块; (6) 访问或失效在所有Cache块中均匀分布;
(7) 在CPU和I/O之间,没有其它访问Cache的干扰; (8) 无I/O时,每100万个时钟周期内有18000次失效;
(9) 失效开销是40个时钟周期。如果被替换的块被修改过,则再加上30个周期用于写回主存; (10) 假设计算机平均每200万个周期处理一页。 试分析I/O对于性能的影响有多大? 解:每个主存页有32K/128=256块。
33
因为是按块传输,所以I/O传输本身并不引起Cache失效。但是它可能要替换Cache中的有效块。如果这些被替换块中有60%是被修改过的,将需要(256×60%)×30=4608个时钟周期将这些被修改过的块写回主存。
这些被替换出去的块中,有95%的后继需要访问,从而产生95%×256=244次失效,将再次发生替换。由于这次被替换的244块中数据是从I/O直接写入Cache的,因此所有块都为被修改块,需要写回主存(因为CPU不会直接访问从I/O来的新页中的数据,所以它们不会立即从主存中调入Cache),需要时间是244×(40+30)=17080个时钟周期。
没有I/O时,每一页平均使用200万个时钟周期,Cache失效36000次,其中60%被修改过,所需的处理时间为:
(36000×40%)×40+(36000×60%)×(40+30)=2088000(时钟周期)
时钟I/O造成的额外性能损失比例为
(4608+17080)÷(2000000+2088000)=0.53% 即大约产生0.53%的性能损失。
34