问答题 为什么要设置内存I/O缓冲区?通常有哪几类缓冲区?
【正确答案】设置内存I/O缓冲区的主要原因如下: (1)缓和CPU和I/O设备间速度不匹配的矛盾。一股情况下,程序的运行过程是时而进行计算,时而进行I/O。以输出为例,如果没有缓冲区,则程序在输出时,必然由于打印机速度跟不上而使CPU等待;然而在计算阶段,打印机又无事可做。如果设置一个缓冲区,程序可以将待输出的数据先输出到缓冲区中,然后继续执行;而打印机可以从缓冲区取出数据慢慢打印。 (2)减少中断CPU的次数。例如,假定设备只用一位二进制位接收从系统外传来的数据,则设备每收到一位二进制数就要中断CPU一次,如果数据通信速率为9.6Kbit/s,则中断CPU的频率也为9.6KHz,若设置一个具有8位的缓冲寄存器,则可使CPU被中断的次数降为前者的1/8。 (3)提高CPU和I/O设备之间的并行性。由于在CPU利设备之间引入了缓冲区,CPU可以从缓冲区中读取或向缓冲区写入信息;相应地,设备也可以向缓冲区写入或从缓冲区读取信息。在CPU工作的同时,设备也能进行输入输出操作,这样CPU和I/O设备可以并行工作。 通常有4类缓冲区:单缓冲、双缓冲、循环缓冲和缓冲池。
【答案解析】