在可编程模式下,CPU等待I/O的完成,即CPU涉入程度很深
。这种模式也称为轮询或者繁忙等待。图19-7给出的是打印一串字符的可编程I/O程序片段。
显然,在等待打印机状态变为就绪的过程中,CPU不能干任何事情
。而每次等待后做的事情只不过是将一个字符发送到打印机的数据寄存器里面。这对于CPU来说,真有点“大材小用”了。而且,我们前面说过,大材小用或者浪费资源并不是繁忙等待的唯一甚至最严重缺陷。最严重的缺陷是还有可能造成优先级倒挂,进而造成死锁。
解决的方法就是不繁忙等待,而是使用中断。