假定硬盘传输数据以32位的字为单位,传输速率为1MB/s。CPU的时钟频率为50MHz。
问答题
采用程序查询的输入输出方式,假定不能使数据丢失,求传输程序运行期间占用CPU的时间比率。
【正确答案】正确答案:采用程序查询的输入输出方式,程序查询方式中,CPU一直不停地循环询问外设的状况,而为了避免数据丢失,不能切换到其他进程,所以CPU的占用率为100%。
【答案解析】
问答题
采用中断方法进行控制,每次传输的开销(包括中断处理)为100个时钟周期。求CPU为传输硬盘数据花费的时间比重。
【正确答案】正确答案:采用中断方法进行控制,每传送一个字需要的时间为:(32b/8)÷1MB/s=4μs。 CPU时钟周期为:1/50MHz=0.021μs。 得到时间比重为:100×0.02/4=50%。
【答案解析】
问答题
采用DMA控制器进行输入输出操作,假定DMA的启动操作需要1000个时钟周期,DMA完成时处理中断需要500个时钟周期。如果平均传输的数据长度为4KB(此处,1MB=1000KB),问在硬盘工作的一次传输中,处理器将用多少时间比重进行输入输出操作,忽略DMA申请使用总线的影响。
【正确答案】正确答案:采用DMA控制器进行输入输出操作,平均传输的数据长度为4KB,传送的时间为:4KB÷1MB/s=4ms。上问可知CPtJ时钟周期为:1/50MHz=0.02μs=0.00002ms。启动与完成操作共占用的CPU时间为:0.00002ms×1500=0.03ms 总耗时为:启动时间+传输时间+完成处理中断时间=4ms+0.00002×1500=4.03ms 在DMA传输的过程中,CPU不需要进行操作,所以CPU为传输硬盘数据花费的时间比重为:CPU时间/总时间=0.03ms/4.03ms=0.74%。
【答案解析】