不同I/O控制方式下磁盘开销计算

中断控制I/O方式

例题

假定一个字长为 32 32 32位的CPU的主频为 500 M H z 500MHz 500MHz,即CPU每秒产生 500 × 1 0 6 500 \times 10^6 500×106个时钟周期。硬盘使用中断控制I/O方式进行数据传送,其传输速率为 4 M B / s 4MB/s 4MB/s,每次中断传输一个 16 16 16字节的数据,要求没有任何数据传输被错过。每次中断的开销(包括用于中断响应和中断处理的时间)是 500 500 500个时钟周期。如果硬盘仅有 5 % 5\% 5%的时间进行数据传送,那么,CPU用于硬盘数据传送的时间占整个CPU时间的百分比为多少?

解答

硬盘数据传送采用中断控制I/O方式,每次中断传输一个 16 16 16字节的数据。为保证没有任何数据传输被错过,CPU每秒应该至少执行 4 M B / 16 B = 250 × 1 0 3 4MB/16B=250 \times 10^3 4MB/16B=250×103次中断,每秒内用于硬盘数据传输的时钟周期数为 250 × 1 0 3 × 500 = 125 × 1 0 6 250 \times 10^3 \times 500=125 \times 10^6 250×103×500=125×106,故CPU用于硬盘数据传送的时间占整个CPU时间的百分比为 125 × 1 0 6 / ( 500 × 1 0 6 ) = 25 % 125 \times 10^6 / (500 \times 10^6)=25\% 125×106/(500×106)=25%

假定硬盘不是一直在操作,而是仅有 5 % 5\% 5%的时间在工作,则CPU用于硬盘数据传送时的时间占整个CPU时间的百分比为 25 % × 5 % = 1.25 % 25\% \times 5\%=1.25\% 25%×5%=1.25%

DMA控制I/O方式

例题

假定CPU的主频为 500 M H z 500MHz 500MHz。硬盘采用DMA方式进行数据传送,其数据传输率为 4 M B / s 4MB/s 4MB/s,每次DMA输的数据量为 8 K B 8KB 8KB,要求没有任何数据传输被错过。如果CPU在DMA初始化设置和启动硬盘操作等方面用了 1000 1000 1000个时钟周期,并且在DMA传送完成后的中断处理需要 500 500 500个时钟,则在硬盘 100 100% 100处于工作状态的情况下,CPU用于硬盘I0操作的时间占整个CPU时间的百分比大约是多少?

解答

从硬盘上读/写 8 K B 8KB 8KB的数据所需时间为 8 K B / 4 M B / s = 2.048 m s ≈ 2 m s 8KB/4MB/s=2.048ms \approx 2ms 8KB/4MB/s=2.048ms2ms,如果硬盘一直处于工作状态的话,为了不错过任何数据,CPU必须每秒有每秒有 1 / ( 2 × 1 0 − 3 ) = 0.5 × 10 1/(2×10^{-3})=0.5 \times10 1/(2×103)=0.5×10次DMA传送,一秒内CPU用于硬盘I/O操作的时钟周期数为 0.5 × 10 × ( 1000 + 500 ) = 750 × 1 0 3 0.5 \times 10 \times(1000+500)=750×10^3 0.5×10×(1000+500)=750×103

因此,CPU用于硬盘I/O的时间占整个CPU时间的百分比大约为 750 × 1 0 3 / ( 500 × 1 0 6 ) = 1.5 × 1 0 − 3 = 0.15 % 750 \times 10^3/(500 \times 10^6)=1.5 \times 10^{-3}=0.15\% 750×103/(500×106)=1.5×103=0.15%

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值