进程的概念及定义

定义:进程是一个具有独立功能的程序关于某个数据集合的运行过程。它是系统进行资源分配和调度的独立单位,是一个活动的实体。

注意:进程的定义不唯一,这个是我觉得最准确的定义。还有一点,在没有引入线程前,资源分配和调度的基本单位都是进程。有了线程后,进程仍然是资源分配的基本单位,而调度的最小单位是线程。

在多道环境下,引入进程的概念,以便更好地描述和控制程序的并发执行,实现操作系统的并发性和共享性(最重要的两个特性)。为了使参与并发的程序能够独立地运行,必须要有一个专门的数据结构——进程控制块(Process Control Block,PCB),系统利用PCB来描述进程的基本情况和运行状态,进而控制和管理进程。相应地,程序段、相关数据段、和PCB三部分构成了进程实体(依然是静态的,因为没有获得处理器资源)。创建进程,实质上是创建进程的PCB;而撤销进程,实质上是撤销进程的PCB。所以PCB是进程存在的唯一标志。

操作系统中的资源:抽象的理解成时间和空间。以时间为例,分时操作系统中的"时间片"资源。以空间为例,内存空间和一些寄存器空间。

 

进程的特征

动态性:进程是程序在系统中的执行过程,具有一定的生命周期,进程是动态产生,动态消亡的。

并发性:多个进程实体同事存在于内存中,能在一段时间内同时运行。引入进程的目的就是为了是程序能与其他进程并发执行,以提过资源利用率。

独立性:进程是一个能独立运行、获取资源和接受调度的基本单位;

异步性由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进。异步性会导致执行结果的不可再现性,为此在操作系统中必须采用相应的进程同步机制。

结构性:进程由程序段、数据段和PCB三部分组成。

 

进程的状态

由于系统中各进程之间的相互制约关系及系统的运行环境的变化,使得进程的状态也是在不断地发生变化。通常进程有以下五种状态,前三种是基本状态。

(1)就绪状态进程已获得除处理器外的所有资源,等待分配处理器资源,只要分配了处理器进程就可执行。就绪进程可以按多个优先级来划分队列。例如,当一个进程由于时间片用完而进入就绪状态时,排入低优先级队列;当进程由I/O操作完成而进入就绪状态时,排入高优先级队列。

(2)运行状态:进程获得处理器资源;处于此状态的进程的数目小于等于处理器的数目。在没有其他进程可以执行时(如所有进程都在阻塞状态),通常会自动执行系统的空闲进程。

(3)阻塞状态:由于进程等待某种条件(如资源不足、I/O操作或进程同步),在条件满足之前无法继续执行。即使处理器资源空闲,该进程也无法运行。

(4)创建状态:进程正在被创建,尚未转到就绪态。创建进程通常需要多个步骤:首先申请一个空白的PCB,并向PCB中填写一些控制和管理进程的信息;然后有系统为该进程分配运行是所需的资源;最后把该进程转入就绪态。

(5)终止状态:进程正从系统中消失,可能是正常结束或其他原因中断退出运行。进程需要结束运行时,系统首先置该进程为结束态,然后再进一步处理资源释放和回收等工作。

 

状态转换图如下:

进程及进程状态

就绪态 -> 运行态:处于就绪态的进程被调度后,获取处理器资源,于是进程由就绪态转换为运行态。

运行态 -> 就绪态:处于运行态的进程在时间片用完后,让出处理器,该进程有运行态转换为就绪态。此外,在可剥夺的调度策略中,当有高优先级的进程就绪时,调度程序将正在执行的进程转换为就绪态,让更高优先级的进程执行。

运行态 -> 阻塞态:进程请求某一资源的使用、分配或等待某一件事发生时,它就从运行态转换为阻塞态。

阻塞态 -> 就绪态:进程等待的事件到来时,如I/O操作结束或中断结束时,中断处理程序必须把相应的状态有阻塞态转换为就绪态。

分辨运行态是转换成就绪态还是阻塞态,只需要看此时该进程所占有的资源的情况。若该进程的资源没有被剥夺,也没有申请新的资源而没有得到,则处于就绪态。反之处于阻塞态。

相关文章: