在早期的计算机系统中,一旦某个程序开始运行,它就占用了整个系统的所有资源,直到该程序运行结束,这就是所谓的单道程序系统。在单道程序系统中,任一时刻只允许一个程序在系统中执行,正在执行的程序控制了整个系统资源,一个程序执行结束后才能执行下一个程序。因此,系统的资源利用率不高,大量的资源在许多时间内处于闲置状态。例如,图2.4是单道程序系统中CPU依次运行3个程序的情况:首先程序A被加载到系统内执行,执行结束后再加载程序B执行,最后加载程序C执行,这3个程序不能交替运行。
图2.4 单道程序系统中程序的执行
1)多道程序系统的执行
为了提高系统资源的利用率,现在的操作系统都允许同时有多个程序被加载到内存中执行,这样的操作系统称为多道程序系统。从宏观上看,系统中多个程序同时在执行,但从微观上来看,任一时刻(时间片段)仅能执行一个程序的片段,系统中各个程序片段交替执行。由于系统中同时有多道程序在运行,它们共享系统资源(如CPU、内存等),提高了系统资源的利用率。但是操作系统必须承担资源管理的任务,操作系统必须对处理机(CPU)、内存等系统资源进行管理。如图2.5所示,3个程序分为不同的程序片段在CPU中交替运行:程序A的程序片段执行结束后,就放弃CPU资源,让其他程序片段执行程C的程序片段结束后,将CPU资源让给程序A的片段。这样,3个程序就可以交替运行。
图2.5 多道程序系统中程序片段的执行
2)进程的特征
进程是一个具有独立功能的程序对数据集的一次执行。简单地说,进程就是程序的运行状态。进程具有以下特征:
①动态性:进程是一个动态活动,这种活动的属性随时间而变化。进程由操作系统创建、调度和执行,进程可以等待、执行、撤销和结束,进程与计算机运行有关,计算机关机后,所有进程都会结束;而程序一旦编制成功,不会因为关机而消失。
②并发性:在操作系统中,同时有多个进程在活动。进程的并发性提高了计算机系统资源的利用率。例如,一个程序能同时与多个进程有关联。用IE浏览器程序打开多个网页时,只有一个IE浏览器程序,但是每个打开的网页都拥有自己的进程,每个网页的数据对应于各自的进程,这样就不会出现网页数据显示混乱的情况了。
③独立性:进程是一个能够独立运行的基本单位,也是系统资源分配和调度的基本单位。进程获得资源后才能执行,失去资源后暂停执行。(www.daowen.com)
④异步性:多个进程之间按各自独立的、不可预知的速度生存。也就是说,进程是按异步方式运行的。一个进程什么时候被分配到CPU上执行,进程在什么时间结束等,都是不可预知的,操作系统负责各个进程之间的协调运行。例如,用户突然关闭正在播放的视频,而导致视频播放进程突然结束,其他进程的执行顺序也会做相应的改变。
3)进程的状态和转换
如图2.6所示,进程有3种基本状态:就绪、执行和阻塞。
图2.6 进程的状态和转换
①就绪状态:进程获得了除CPU之外的所有资源,做好了执行准备时,就可以进入就绪状态排队,一旦得到了CPU资源,进程便立即执行,即由就绪状态转换到执行状态。
②执行状态:进程进入执行状态后,在CPU中执行进程。每个进程在CPU中的执行时间很短,一般为几十纳秒,这个时间称为时间片,时间片由CPU分配和控制。在单CPU系统中,只能有一个进程处于执行状态;在多核CPU系统中,则可能有多个进程处于同时执行状态(在不同CPU内核中执行)。如果进程在CPU中执行结束,不需要再次执行时,则进程进入结束状态;如果进程还没有结束,则进入阻塞状态。
③阻塞状态:进程执行中,由于时间片已经用完,或进程因等待某个数据或事件而暂停执行时,进程进入阻塞状态(也称为等待状态),当进程等待的数据或事件已经准备好时,进程再进入就绪状态。
4)Windows 7操作系统中进程的运行状态
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。