进程的基本概念

   在未配置的OS应用程序中,程序的执行方式是顺序执行,即必须要在一个程序执行完以后,才允许另一个程序执行:在多通道的程序环境下,则允许程序的并发执行。程序的这两种执行方式间有着显著的差别。也正是因为程序并发执行时的这种特征,才导致了在操作系统中引入了进程的概念,因此有必要先对程序的顺序执行和并发方式做简单的描述。(引入进程的原因)
  • 程序顺序执行以及其特征

1.程序的顺序执行
我们通常可以把一个应用程序分成若干个程序段,在各个程序段之间,必须按照某种先后次序顺序执行,仅当前一操作(程序段)执行完后,才能执行继续操作。例如,我们在进行计算的时候,总是必须先输入用户的程序和数据,然后进行计算,最后才能打印计算结果。这里我们可以用节点(Node)来代表各个程序段的操作,其中A1可以用来代表输入程序的操作,A2用来代表计算的操作,A3用来代表打印的输出的操作。其中我们的箭头指向的就是操作的先后你顺序,也就是说 A1 A2 A3 是运行一个完成的功能 所在。对于一个程序来说可能有多个功能组成的比如说A1A2A3是一个模块 B1B2B3是一个模块,只有当A对应的模块执行完毕,模块2才会执行。也就是说不仅仅是单个程序的执行有先后顺序,程序段之间也是有先后顺序的。

A1->A2->A3->B1->B2->B3  

2.程序顺序执行时的特征

(1).顺序性:处理机的操作严格按照程序所规定的顺序执行,即每一操作必须在上一个操作结束之后开始。(也就是说在一个操作没有结束之前,下一个操作不会触发,处于等待状态,只有这个操作结束之后,下一个操作才会被激活)。

(2).封闭性:程序是在封闭的环境下进行的,即程序运行时独占全集资源,资源的状态(除初始状态外-初始的状态可能有上一个操作执行后的结果输出,也可能是默认的一些处理(可以理解为初始化))只有本程序才能够改变它。程序一旦开始执行,其执行结果不受外界因素影响。(这里的不受外界影响,所指的是在程序运行的这个区域内,不受区域内的其他类型或者状态的影响(除初始状态外)不包括人为因素或者其他不可抗因素)

(3).可再现性:只要程序执行的环境和初始条件相同,当程序重复执行时,不论它是从头到尾不停顿的行走,还是’停停走走‘地执行,都将获得相同的结果。

程序顺序执行的作用:程序具有的顺序执行的这一特性,为程序员进行检测和校正程序的错误带来了很大的方便。

  • 前趋图

前趋图(Precedence Graph)是一个有向无循环图,记为DAG(Directed Acyclic Graph),用来描述进程之间执行的前后关系。每个结点都可以用于描述一个程序段或进程,甚至是一条语句,结点间的有向边则用于表示两个结点之间存在的偏序(Partial Order ,也叫作偏序关系或者前驱关系(Precedence Releation)) “->”.

comments powered by Disqus