程序的并发执行有时候会引起与时间有关的错误,所以引入了进程的概念
····伯恩斯坦条件
R(pi)={a1,a2,,,,am}
表示程序pi在执行期间需引用的变量的集合,称为“读集”
W(pi)={b1,b2,,,,,bn}
表示程序pi在执行期间要改变的变量的集合,称为“写集”
···伯恩斯坦条件
若两个程序P1和P2能满足以下条件,他们便能并发执行,否则不能。此条件称为伯恩斯坦条件
R(P1)∩W(P2) ∪ R(P2)∩W(P1) ∪ W(P1)∩W(P2)={}
结论:
程序的并发执行使得程序的执行情况不可预见,其结果不在唯一,成为一个动态的过程。而程序是一个静态的概念,不再能切实反映程序并发执行的各种特征,(独立性、并发性、动态性)
由此引出进程
···进程的定义
曾经的定义
*进程是程序的一次执行
*进程是可以和其别的计算并发执行的计算
*进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
……
教材中的定义
可并发执行的程序在一个数据集合上的运行过程
进程的特征
*动态性:动态性是进程的最基本特征,它是程序执行过程,它是有一定的生命期。它由创建而产生、由调度而执行、因得不到资源而暂停、并由撤销而死亡。
而程序是静态的,它是存放在介质上一组有序指令的集合,无运动的含义。
*并发性:并发性是进程的重要特征,同时也是OS的重要特征。并发性是指多个进程实体同存于内存中,能在一段时间内,同时运行。而程序是不能并发执行的。
*独立性:进程是一个能独立运行的基本单位,即是一个独立获得资源和独立调度的单位,而程序不作为独立单位参加运行。
*异步性:进程按各自独立的不可预知的速度向前推进,即进程按异步方式进行,正是这一特征,将导致程序执行的不可再现性,因此OS必须采用某种措施来限制各进程推进序列以保证各程序间正常协调运行。
···进程与程序的区别和联系
*程序是静态的,进程是动态的。程序是有序代码的集合,进程是程序的一次执行。
*进程是暂时的,程序是永久的。进程是一个变化的过程,有生命周期,暂时存在,程序没有生命周期,可永久保存。
*进程还是操作系统资源分配和保护的基本单位,程序没有此功能。
*进程与程序的对应关系。通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可包括多个程序。
*进程与程序的结构不同。