进程的概念和特征
程序的顺序执行
一个程序通常由若干程序段组成,它们必须按照某种先后次序执行,仅当前一个操作执行完后才能执行后续操作。
程序顺序执行的特征:
顺序性。处理器的操作严格按照程序所规定的顺序执行。
封闭性。程序一开始运行,其执行结果不受外界因素影响。
可再现性。只要程序执行时的初始条件和执行环境相同,当程序重复执行时,都将获得相同的结果。
程序的并发执行
程序的并发执行是指若干个程序(或程序段)同时在系统中运行,这些程序(或程序段)的执行在时间上是重叠的,即一个程序(或程序段)的执行尚未结束,另一个程序(或程序段)的执行已经开始。
程序并发执行时的特征:
间断性。
失去封闭性。程序在并发执行时,多个程序共享系统中的各种资源,因而这些资源的状态将由多个程序来改变,致使程序的运行失去封闭性。
不可再现性。程序并发执行时,由于失去了封闭性,也将导致失去其运行结果的可再现性。
进程的引入
在多道程序环境下,允许多个程序并发执行,此时它们将失去封闭性,并具有间断性及不可再现性的特征。为此引入了 进程(Process) 的概念。
在计算机操作系统中,进程是资源分配的基本单位,也是独立运行的基本单位。
进程的定义
几种反映进程实质的定义:
进程是程序的一次执行过程。
进程是一个程序及其数据在处理机上顺序执行时所发生的活动。
进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
我们可以把传统操作系统中的进程定义为:“进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。”
进程具有以下几个基本特征:
动态性。进程是程序的一次执行,它有着创建、活动、暂停、终止等过程,具有一定的生命周期,是动态地产生、变化和消亡的。动态性是进程最基本的特征。
并发性。指多个进程实体同时存于内存中,能在一段时间内同时运行。并发性是进程的重要特征,同时也是操作系统的重要特征。
独立性。指进程实体是一个能独立运行、独立获得资源和独立接受调度的基本单位。
异步性。进程按各自独立的、不可预知的速度向前推进。
结构性。每个进程都配置一个 PCB 对其进行描述。从结构上看,进程实体是由程序段、数据段和进程控制块三部分组成的。
进程和程序的关系
进程是动态的,程序是静止的。进程是程序的执行,每个进程包含了程序段和数据段以及进程控制块(PCB),而程序是有序代码的集合,无执行含义。
进程是暂时的,程序是永久的。进程是一个状态变化的过程,程序可以长久保存。
进程与程序的组成不同。进程的组成包括程序段、数据段和进程控制块。
通过多次执行,一个程序可以产生多个不同的进程;通过调用关系,一个进程可以执行多个程序。进程可创建其他进程,而程序不能形成新的程序。
进程具有并行特性(独立性、异步性),程序则没有。
进程和作业的区别
作业是用户需要计算机完成某项任务而要求计算机所做工作的集合。一个作业的完成要经过作业提交、作业收容、作业执行和作业完成 4 个阶段。而进程是已提交完毕的作业的执行过程,是资源分配的基本单位。两者的主要区别如下:
作业是用户向计算机提交任务的任务实体。在用户向计算机提交作业之后,系统将它放入外存中的作业等待队列中等待执行;而进程则是完成用户任务的执行实体,是向系统申请分配资源的基本单位。任一进程,只要它被创建,总有相应的部分存在于内存中。
一个作业可由多个进程组成,且必须至少由一个进程组成,但一个进程不能构成多个作业。
作业的概念主要用在批处理系统中。像 UNIX 这样的分时系统则没有作业的概念;而进程的概念则用在几乎所有的多道程序系统中。
进程的组成
进程一般由以下几个部分组成:
进程控制块(PCB)。每个进程均有一个 PCB ,它是一个既能标识进程的存在、又能刻画执行瞬间特征的数据机构。当进程被创建时,系统为它申请和构造一个相应的 PCB 。
程序段。程序段是进程中能被进程调度程序调度到 CPU 上执行的程序代码段,能实现相应的特定功能。
数据段。一个进程的数据段可以是进程对应的程序加工处理的原始数据,也可以是程序执行时产生的中间或结果数据。
进程标识符(PID)。每个进程都有唯一的进程标识符,以区别于系统内部的其他进程。在创建进程时,由系统为进程分配唯一的进程标识号。
进程当前状态。说明进程的当前状态,以作为进程调度程序分配处理器的依据。
进程队列指针。用于记录 PCB 队列中下一个 PCB 的地址。系统中的 PCB 可能组织成多个队列,如就绪队列、阻塞队列等。
程序和数据地址。指出进程的程序和数据所在的地址。
进程优先级。反映进程要求 CPU 的紧迫程度。优先级高的进程可以优先获得处理器。
CPU现场保护区。当进程因某种原因释放处理器时,CPU 现场信息(如指令计数器、状态寄存器、通用寄存器等)被保存在 PCB 的该区域中,以便该进程重新获得处理器后能继续执行。
通信信息。记录进程在执行过程中与别的进程所发生的信息交换情况。
家族联系。有的系统允许进程创建子进程,从而形成一个进程家族树。在 PCB 中本进程与家族的关系是必须指明的,如它的子进程与父进程的标识。
占有资源清单。进程所需资源及当前已分配资源清单。
Last updated
Was this helpful?