引入进程的原因:
上一章讲过,直接让程序并发执行,会发生很多问题,比如不可再现性——同一个程序每次运行的结果都可能不一样,因此,我们在操作系统中引入了进程这一概念,使得每个程序在并发的前提下都能独立地运行。
一、进程的定义
定义 No.1
进程是一个 具有一定独立功能的可并发执行的程序 在一个数据集合上的运行过程 。
定义 No.2
进程是程序的一次执行。
定义 No.3
进程是一个程序及其数据在处理机上顺序执行时所发生的的活动。
定义 No.4
进程是具有独立功能的程序在一个数据集合上的运行过程,它是系统进行资源分配和调度的一个独立单位。
定义 No.5
进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立过程。
二、进程的组成
进程实体 = 程序 + 数据 + PCB
为了使参与并发执行的每个程序(含数据)都能独立运行,在操作系统中必须为之配置一个专门的数据结构,称为进程控制块(Process Control Block,PCB)。
PCB 的作用: 描述进程的基本情况和活动过程,方便系统控制和管理进程。
所谓创建进程,实质上是创建进程实体中的 PCB;而撤销进程,实质上是撤销进程的 PCB。
三、进程的特征
1. 动态性
进程的实质是进程实体的执行过程,“它由创建而产生,由撤销而死亡。” 有一定的生命周期,动态性是进程最基本的特征。
2. 并发性
引入进程后,只有建立了PCB的程序,也就是进程才能并发执行。并发性是进程的另一重要特征。
3. 独立性
指进程实体是一个能独立运行、独立获得资源和独立接受调度的基本单位。 凡未建立PCB的程序都不能作为一个独立的单位参与运行。
4. 异步性
指进程是按各自独立的、不可预知的速度向前推进的。(是不是想到了操作系统的基本特征也有异步性?二者是一个意思)所以才要配备相应的进程同步机制,让各进程之间独立地运行,使得程序每次运行的结果都是一样的。
5. 制约性
进程之间由于对资源的征用而相互制约。
6. 结构特征
进程 = 程序 + 数据 + PCB
四、进程和程序的异同
我写过一篇专门的博客,传送门:
试比较程序和进程的异同(联系/关系)