假定磁盘传输数据以 32 位的字为单位, 传输速率为 1MB/ s。 CPU 的时钟频率为 50MHz。
使用程序查询的输入输出方式, 一个查询操作需要 100 个时钟周期, 求 CPU 为 I/ O 查询所花费的时间比率, 假定进行足够的查询以避免数据丢失。
根据题意可知, 每传送一个字需要 4μs, CPU 的时钟周期为 0.02μs。
程序查询的输入输出方式, 一个查询操作需要 100 个时钟周期, 而时钟周期=0.02μs, 所以每个查询操作需要 2μs, CPU 为 I/ O 查询所花费的时间比率为
用中断方式进行控制, 每次传输的开销(包括中断处理) 为 100 个时钟周期, 求 CPU 为传输磁盘数据花费的时间比率。
用中断方式法进行控制, 每次传输的开销(包括中断处理) 为 100 个时钟周期, 而时钟周期=0.02μs,所以每次传输的开销时间=100×0.02=2μs, 传送一个字的时间为 4μs。
CPU 为传输磁盘数据花费的时间比率为
采用 DMA 控制进行输入输出操作, 假定 DMA 的启动操作需要 1000 个时钟周期。 DMA 完成时处理中断需要 500 个时钟周期, 如果平均传输的数据长度为 4KB, 问在磁盘工作时处理器将用多少时间比率进行输入输出操作, 忽略 DMA 申请使用总线的影响。
采用 DMA 控制进行输入输出操作, 平均传输的数据长度为 4KB, 根据数据传输率, 传送时间 4KB÷1MB/ s=4ms。 又由于 DMA 的启动操作需要 1000 个时钟周期, 即 1000×0.02=20μs; DMA 完成时处理中断需要 500个时钟周期, 即 500×0.02=10μs。 所以在磁盘工作时 CPU 为进行输入输出操作花费的时间比率为