进程

进程的定义:
在多道程序环境下,程序的执行属于并发执行,此时它们将失去其封闭性,并具有间断性,以及其运行结果不可能再现性的特征。由此,决定了通常的程序是不能参与并发执行的,否则,程序的运行也就失去了意义。为了能使程序并发执行,并且可以对并发执行的程序加以描述和控制,“进程”便登上了舞台。
为了使参与并发执行的每个程序,包含数据都能独立地运行,在操作系统中必须为之配置一个专门的数据结构,称为进程控制块(PCB,Process Control Block)。系统利用PCB来描述进程的基本情况和活动进程,进而控制和管理进程。这样,由程序段、相关的数据段和PCB三部分便构成了进程实体(即进程映像)。通常情况下,我们把进程实体就简称为进程。所谓创建进程实质上是创建进程实体中的PCB;而撤消进程实质上就是撤消进程的PCB。
对于进程的定义,从不同的角度来说有不同的定义,其中较典型的定义有:
(1)进程是程序的一次执行,是动态的。
(2)进程是一个程序及其数据在处理机上顺序执行时所发生的活动。
(3)进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
有了进程实体的概念后,我们可以把传统OS中的进程定义为:“进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位”。

进程的特征:
(1)动态性:进程的实质是进程实体的执行过程,因此,动态性就是进程的最基本的特征。动态性还表现在:“它由创建而产生,由调度而执行,由撤消而消亡。”可见,进程实体有一定的生命期,而程序则只是一组有序指令的集合,并存放于某种介质上,其本身并不具有活动的含义,因而是静态的。
(2)并发行:是指多个进程实体同存于内存中,且能在一段时间内同时运行。引入进程的目的也正是为了使其进程实体能和其他进程实体并发执行。因此,并发性是进程的另一个重要特征,同时也成为OS的重要特征。而程序(没有建立PCB)是不能参与并发执行的。
(3)独立性:在传统的OS中,独立性是指进程实体是一个能独立运行、独立获得资源和独立接受调度的基本单位。凡是未建立PCB的程序都不能作为一个独立的单位参与运行。
(4)异步性:是指进程是按异步方式运行的,即按各自独立的、不可预知的速度向前推进。正是源于此因,才导致了传统意义上的程序若参与了并发执行,会产生其结果的不可再现性。为了进程在并发运行时虽具有异步性,但仍能保证进程并发执行的结果是可再现的,在OS中引进了进程的概念,并且配置相应的进程同步机制。

进程的三种基本状态:
由于多个进程在并发执行时共享系统资源,致使它们在运行过程中呈现间断性的运行规律,所以进程在其生命周期内可能具有多种状态。一般而言,每一个进程至少应处于以下三种状态之一:
(1)就绪(Ready)状态:指进程已经处于准备好运行的状态,即进程已经分配到除CPU以外的所有必要资源后,只要再获得CPU,便可立即执行。如果系统中有许多处于就绪状态的进程,通常将它们按一定的策略排成一个队列,称该队列为就绪队列。
(2)执行(Running)状态:指进程已经获得CPU,其程序正在执行的状态。对任何一个时刻而言,在单处理机系统中,只有一个进程处于执行状态,而在多处理机系统中,则有多个进程处于执行状态。
(3)阻塞(Block)状态:是指正在执行的进程由于发生某事件(如I/O请求、申请缓冲区失败等)暂时无法继续执行时的状态,即进程的执行受到阻塞。此时引起进程调度,OS把处理机分配给另一个就绪进程,而让受阻进程处于暂停状态,一般将这种暂停状态称为阻塞状态,有时也称为等待状态或封锁状态。通常系统将处于阻塞状态的进程也排成一个队列,称该队列为阻塞队列。实际上,在较大的系统中,为了减少队列操作的开销,提高系统效率,根据阻塞原因的不同,会设置多个阻塞队列。

三种状态的转换:
进程在运行过程中经常会发生状态的转换。例如,处于就绪状态的进程,在调度程序为之分配了处理机之后便可以执行,此时其状态就由就绪态变成了执行态;正在执行的进程如果因分配给它的时间片已完而被剥夺处理机暂停执行时,其状态就由执行态变为就绪态;如果因发生某事件致使当前进程的执行受阻(例如进程访问某临界资源,而该资源正在被其他进程访问时),使之无法继续执行,则该进程的状态便由执行态 转换为阻塞态。
在这里插入图片描述
图一  进程的三种基本状态及其转换

创建状态和终止状态:
为了满足进程控制块对数据及操作的完整性要求以及增强管理的灵活性,又引入了创建态和终止态两种常见的状态。
(1)创建状态:引入创建态是为了保证进程的调度必须在创建工作完成后进行,以确保对进程控制块操作的完整性。同时,创建状态的引入也增加了管理的灵活性,OS可以根据系统性能或主存容量的限制推迟新进程的提交(创建状态)。对于处于创建状态的进程,当其获得了所需的资源以及对其PCB的初始化工作完成后,便可由创建态转入就绪状态。
进程的创建是一个很复杂的过程,一般要通过多个步骤才能完成:如首先由进程申请一个空白的PCB,并向PCB中填写用于控制和管理进程的信息;然后为该进程分配运行时所必须的资源;最后,把该进程转入就绪状态并插入就绪队列中。但如果进程所创需的资源尚不能得到满足,比如系统尚无足够的内存使进程无法装入其中,此时创建工作尚未完成,进程不能被调度运行,于是把此时进程所处的状态称为创建状态。
(2)终止状态:进程的终止状态也要通过两个步骤:首先,是等待操作系统进行善后处理,最后将其PCB清零,并将PCB空间返还系统。当一个进程到达了自然结束点,或是出现了无法克服的错误,或是被操作系统所终结,或是被其他有终止权的进程所终结,它将进入终止状态。进入终止态的进程以后不能再执行,但在操作系统中依然保留一个记录,其中保存状态码和一些计时统计工具,供其他进程收集。一旦其他进程完成了对其他信息的提取之后,操作系统将删除该进程,即将其PCB清零,并将该空白PCB返还系统。
在这里插入图片描述
图二  进程的五种基本状态及其转换

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值