问答题 若磁盘扇区的大小为512字节(512B),每磁道有80个扇区,该磁盘有4个面可用。假定磁盘的旋转速度为5400转/分钟,若CPU使用中断驱动I/O从磁盘读取一个扇区,每个字节产生一个中断。如果处理每个中断需要25ms,问CPU花在处理I/O上的时间占多少百分比(忽略寻道时间)?若采用DMA方式,假定一个扇区产生一个中断,处理机处理一个中断的时间不变,则CPU花在处理I/O上的时间占多少百分比(忽略寻道时间)?

【正确答案】磁盘旋转一周的时间为:60/5400=1/90s=11.11ms。
查找一个扇区平均需要的时间为1/2周,即(1/90)/2=1/180=5.56ms。访问一个扇区需要的时间为:
(1/90)/80=1/7200s=0.139ms
(1) CPU使用中断驱动I/O从磁盘读取一个扇区,每个字节产生一个中断时,处理每个中断需要25ms,CPU花在处理I/O上的时间所占的百分比为:
(512×25)/((1/180+1/7200)+(512×25)≈99.95%
(2) 若采用DMA方式,假定一个扇区产生一个中断,处理机处理一个中断的时间不变,CPU花在处理I/O上的时间所占的百分比为:
25/((1/180+1/7200)+25)≈81.43%
【答案解析】