多道程序系统

多道程序系统_第1张图片
我们讨论其中的多道程序系统
多道程序设计技术是在计算机内存中同时存放几道相互独立的程序,使它们在管理程序控制下,相互穿插运行,两个或两个以上程序在计算机系统中同处于开始到结束之间的状态, 这些程序共享计算机系统资源。与之相对应的是单道程序,即在计算机内存中只允许一个的程序运行。
对于一个单CPU系统来说,程序同时处于运行状态只是一种宏观上的概念,他们虽然都已经开始运行,但就微观而言,任意时刻,CPU上运行的程序只有一个。
1. 概念
程序是在时间上严格有序的指令集。它独占使用系统中的一切资源,包括CPU、内存、外设以及软件等等,没有其他竞争者同它争夺与共享。因此,在单CPU的计算机系统中,一段时间内只有一个程序在运行。程序独占了计算机的全部资源,不受外来影响
计算机的早期,多任务被称作多道程序。多道程序是指CPU一次读取多个程序放入内存,先运行第一个程序直到它出现了IO操作。因为IO操作慢,CPU需要等待。为了提高CPU利用率,此时运行第二个程序。即,第n+1个程序得以执行的条件是第n个程序进行IO操作或已经运行完毕。这种方式每个程序的时间分配是不均等的,很可能第一个程序运行了几个小时而不出现IO操作,故第二个程序没有运行。在当初,这种情况是令人接受的。人们一次指定运行多个程序,过几个小时或一天后来看运行结果或拿走打印出来的文件。人们不需要实时获得每个程序的运行情况,只关心运行结果。
多任务处理是指计算机同时运行多个程序的能力。多任务的一般方法是运行第一个程序的一段代码,保存工作环境;再运行第二个程序的一段代码,保存环境;……恢复第一个程序的工作环境,执行第一个程序的下一段代码……现代的多任务,每个程序的时间分配相对平均。
引入多道程序设计技术的根本目的是为了提高CPU的利用率[1] ,充分发挥计算机系统部件的并行性,现代计算机系统都采用了多道程序设计技术。多道程序设计的出现,加快了现在操作系统的诞生。
2. 特征
1)多道:即计算机内存中同时存放几道相互独立的程序。
2)宏观上并行:同时进入系统的几道程序都处于运行过程中,即它们先后开始了各自的运行,但都未运行完毕。
3)微观上串行:从微观上看,内存中的多道程序轮流地或分时地占有CPU。
3. 优点
提高CPU的利用率。在多道程序环境下,多个程序共享计算机资源当某个程序等待I/O操作时,CPU可以执行其他程序,大大提高CPU的利用率。
提高设备的利用率。在多道程序环境下,多个程序共享系统的设备,大大提高系统设备的利用率。
提高系统的吞吐量。在多道程序环境下,减少了程序的等待时间,提高了系统的吞吐量。
4. 调度
多道程序处理在内存中可同时装入几个程序,当一个程序因等待外部传输而不能工作下去时,中央处理机马上可以执行另一个程序,若第二个程序又因某种原因不能继续执行时,中央处理机便执行第三个程序,如此继续直至第一个程序外部传输完毕后再执行第一个程序。采用多道程序合理搭配可以提高资源的利用率,增强系统的输入输出能力。多道程序处理是以伪并行方式进行的。从一个时间间隔看,各个程序都已开始执行,但都未执行完毕。从某一瞬间看,在中央处理机中只有一个程序在执行,每个程序占有一个时间片,交替地、串行地使用中央处理机。各道程序并不按它们开始的次序结束。
多道程序共享处理系统的各种资源,但是系统的资源有限,每道程序要求资源的数量和种类也各不相同,因此多道程序的调度根据每个程序的不同资源要求采用下列策略:①先来先服务,按程序录入顺序建立一个后备队列,由调度程序从头扫描后备队列,找出第一个资源能得到满足的程序,将它插入现行队列等待执行。②按优先数调度,系统挑选优先数最高的程序执行。程序的优先数可以由用户规定(系统对优先数高的程序收取较高的费用),也可由系统决定(系统根据程序的等待时间、运行时间的长短和对系统资源要求的多寡来规定)。这种优先数可以在程序进入系统时确定,也可以在每次程序调度时计算得出。在同一优先数的程序中,仍按先来先服务的原则调度。③均衡调度,把程序按其本身的特性分类,如A类是输入输出费时的程序,B类是输入输出与运算时间均衡的程序,C类为运算费时的程序。程序调度程序轮流地从这些不同类型的程序中挑选运行程序,使资源得到均衡的利用,发挥系统效率并使用户满意。

摘自 flczzhang的回答

你可能感兴趣的:(操作系统)