为什么说多道程序概念得到了中断和通道技术的支持?

多道程序设计的概念

多道程序设计是在计算机内存中同时存放几道相互独立的程序,使它们在管理程序控制之下,相互穿插的运行。 两个或两个以上程序在计算机系统中同处于开始或结束之间的状态。这就称为多道程序技术运行的特征:多道、宏观上并行、微观上串行。

为什么说多道程序概念得到了中断和通道技术的支持?

采用多道程序设计减少了CPU时间的浪费,增加了系统吞吐量,提高了系统的效率。为什么引入多道程序呢?说白了就是为了提高系统的吞吐量和效率。 在多道程序系统中,能做到单处理机多程序并发,但是,当存在I/O任务时,CPU要去处理I/O任务,此时就没空来处理多道程序的执行了,所以就要想办法使I/O的处理尽可能少影响到CPU(也就是说让别的东西来处理I/O,而让CPU专心处理多程序并发),此时CPU处理多道程序可以与I/O操作并发,即通过CPU操作与外设传输在时间上的重叠减少CPU时间的浪费,并提高了系统的效率。实现CPU操作与外设传输在时间上的重叠必须有中断和通道技术支持,其原因如下:
(1) 通道是一种控制一台或多台外部设备的硬件机构,它一旦被启动就独立与CPU运行,因而做到了输入输出操作与CPU并行工作。但早期CPU与通道的联络方法是由CPU向通道发出询问指令来了解通道工作是否完成(中间过程还是需要CPU参与)。若未完成,则主机就循环询问直到通道工作结束为止。因此,这种询问方式是无法真正做到CPU与I/O设备并行工作的。
(2) 在硬件上引入了中断技术。所谓中断,就是在输入输出结束时,或硬件发生某种故障时,由相应硬件(即中断机构)向CPU发出信号(解决了上面的问题:通道工作完成时由中断向CPU发出信号,而不需要CPU不断发信号给通道去询问工作是否完成)。这时CPU立即停下手头的工作而转向处理中断请求,道处理完中断后再继续原来手头的工作。 因此,通道技术和中断技术结合起来就可实现CPU与I/O设备并行工作,即CPU启动通道传输数据后便去执行其他程序的计算工作,而通道则进行输入输出操作;当通道工作结束时,再通过中断机构向CPU发出中断请求,CPU则暂停正在执行的操作,对出现的中断进行处理,处理完后则继续原来的工作。这样,就真正做到了CPU与I/O设备并行工作。此时,多道程序的概念才变为现实。

总而言之,通道 代替了CPU管理I/O的工作,中断 会在I/O工作完成时通知CPU。



参考资料:
什么是多道程序设计?多道程序设计的特点是什么?
为什么说直到出现中断和通道技术后,多道程序概念才变为有用的?

猜你喜欢

转载自blog.csdn.net/weixin_43655282/article/details/107119860
今日推荐