3.2 进程的概念
为了描述并发执行程序的动态特性,人们引入了一个新的概念——进程。
1. 进程的定义
进程有多种定义,下面列举一些有代表性的定义:
进程是可以并发执行的计算部分。
进程是一个程序与其数据一道通过处理机的执行所发生的活动。
进程是一个数据结构及在其上进行加工处理的过程。
进程是一个可以高度独立的活动。
进程是一个具有一定独立功能的程序在一个数据集合上的运行过程,它是系统进行资源分配和调度的一个独立单位。
进程的特征
动态性:进程是程序的一次执行过程。动态性还表现为它因创建而产生,因调度而执行,因无资源而暂停,因撤消而消亡。而程序是静态实体。
并发性:多个进程实体同时存在于内存中,能在一段时间内同时运行。
独立性:在传统OS中,进程是独立运行的基本单位,也是系统分配资源和调度的基本单位。
异步性:也叫制约性,进程之间相互制约,进程以各自独立的不可预知的速度向前推进。
结构性:进程实体由程序段、数据段及进程控制块组成,又称为进程映像。
进程与程序的联系与区别
进程是动态概念,程序是静态概念;进程是程序在处理机上的一次执行过程,而程序是指令的集合。
进程具有并发性,但程序没有。
进程是竞争处理机和资源的基本单位。
不同进程可以包含同一个程序。
进程可以创建新进程,而程序不能形成新程序。
2. 进程的基本状态
运行状态:又称执行状态。当一个进程获得必要的资源并正在处理机上执行,此时进程所处的状态为运行状态。
等待状态:又称阻塞状态、睡眠状态。正在执行的进程,由于发生某事件而暂时无法执行下去(如等待输入/输出完成),此时进程所处的状态为的等待状态。这时即使把处理机分配给该进程,它也无法运行。
就绪状态:进程已获得除处理机以外的所有资源,一旦分配了处理机就可以立即执行,此时进程所处的状态为就绪状态。
新建状态和终止状态
在许多系统中又增加了两种状态:
新建状态:进程刚刚建立,但还未进入就绪队列。
终止状态:当一个进程正常或异常结束,操作系统已释放它所占用的资源,但尚未将它撤消时的状态,又称退出状态。
进程状态转换图
状态转换的有关说明
大多数状态不可逆转,如等待不能转换为运行。
状态转换大多为被动进行,但运行→等待是主动的。
一个进程在一个时刻只能处于上述状态之一。
3. 进程控制块
进程控制块是用于描述和管理进程的数据结构。它是进程实体的一部分,操作系统通过PCB感知进程的存在,PCB是进程存在的唯一标志。
进程控制块主要包括如下内容:
进程标识信息
处理机状态信息
进程调度和状态信息
进程控制信息
进程标识信息
进程标识信息用于标识一个进程。包括:
进程名:通常为可执行文件名。
进程标识符:唯一标识进程的整数.
用户标识符:指示进程所属的用户。
父进程标识符和子进程标识符:描述进程家族关系。
处理机状态信息
处理机状态信息用于保存现场,由处理机各寄存器组成。包括:
通用寄存器:处理机执行时可以访问的寄存器。
指令计数器:存放将要访问的下一条指令地址。
程序状态字:含执行结果状态、中断屏蔽码等。