这几天重新复习了操作系统,学到假脱机技术的时候,有一些想法:
是否可以认为,在现代计算机中,假脱机技术只是提高了系统的并发度,而并没有提升程序的运行速度?因为输入设备即使没有准备好输入的数据,CPU其实也不用等待,而是可以阻塞当前进程执行其他进程。(运用中断,DMA,通道等)
当多个进程需要使用某独占输入设备时,这时如果使用了假脱机技术,进程之间就不会因为争用设备而阻塞,所以提升了并发度,然而将数据从内存缓冲区写入磁盘输入井的时候,反而需要占用大量CPU时间,所以程序执行速度并没有增加。
唯一想到可能加快程序运行速度的情况很极端,就是系统里只有两个进程在运行,且这两个进程需要同时使用某独占的IO设备,那么第二个进程必须等待第一个进程使用完设备才能运行,而此时第一个进程的执行速度取决于IO的速度(因为系统里没有其他需要执行的进程了)
感觉spooling就是一个过时的技术,完全比不上现在的通道或者DMA。不知道理解的对不对,希望有人解答一下。
差不多