多道程序设计是一种软件技术,它允许同时进入计算机主存的多个相互独立的程序在管理程序控制下相互交替地运行。引入多道程序设计的原因主要有以下几点:
提高CPU的利用率:
在单道程序执行模式下,CPU在等待输入输出或其他资源时处于空闲状态,这导致CPU资源的大量浪费。多道程序设计通过使CPU在等待资源的时间内执行其他程序,从而提高了CPU的利用率。
提高主存和I/O设备的利用率:
多道程序设计允许多个程序共享主存和I/O设备,从而提高了这些设备的利用率。当某个程序因I/O请求而暂停执行时,CPU可以立即转去执行另一个程序,这样使得计算机系统的资源得到更加合理的利用。
增加系统吞吐量:
由于多个程序可以同时执行,系统在单位时间内可以处理更多的任务,从而提高了系统的吞吐量。
实现宏观上的并行:
多道程序设计使得多个程序在宏观上并行执行,即多个程序都处于运行状态,没有运行结束。这使得计算机系统能够同时处理多个任务,提高了系统的整体性能。
实现微观上的串行:
尽管在宏观上是并行的,但在微观上,多个程序是轮流使用CPU,交替执行的。这种切换是由操作系统通过调度算法来管理的,确保了每个程序都能得到一定的CPU时间片。
减少用户等待时间:
在分时操作系统中,多道程序设计可以实现多用户同时使用计算机,每个用户感觉独占计算机,从而减少了用户的等待时间。
综上所述,多道程序设计通过提高CPU和设备的利用率、增加系统吞吐量、实现宏观和微观上的并行性,以及减少用户等待时间,显著提升了计算机系统的效率和性能。现代计算机系统普遍采用多道程序设计技术,以充分发挥计算机硬件的并行处理能力。