资源描述:
《进程描述与控制1》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第二章进程描述与控制认识进程前趋图和程序设计进程进程间的相互作用进程间的通信进程调度(CPU调度)线程认识进程(Unix/Linux中的进程)进程标识符PID(ProcessIDentifier):系统中每个进程的一个编号两个基本的系统调用:fork()和getpid()Fork()返回值:返回值0表示子进程,否则把子进程的标识符返回给父进程Getpid:获得进程标识符认识进程(简单程序)#include#includeMain(){printf(“PIDbeforefork()
2、:%d”,(int)getpid);if(fork())printf(“ParentPID:%d”,(int)getpid)elseprintf(“ChildPID:%d”,(int)getpid)认识进程(输出结果)一种可能的输出结果:$forktestPIDbeforefork():490ParnetPID:490ChildPID:4912.1前趋图和程序设计前趋图的定义程序顺序执行并发程序执行多道程序设计2.1.1前趋图的定义前趋图(procedencegraph)是一个有向无环图DAG(directeda
3、cyclicgraph)。图中的每一个顶点可表示一条语句、一个程序段或进程,弧则表示两顶点之间的偏序(partialorder)或前趋关系(procedencerelation)。无前趋的顶点为初始顶点,无后继的顶点称为终止顶点,每个顶点还有一个权值,它表示顶点执行所需的时间。如1352467它的每一种拓扑排序都是顺序执行时正确得到结果的顺序,有路经的两顶点必须按前趋关系顺序执行,无路经的两顶点则可以并发执行2.1.2程序顺序执行程序顺序执行:程序执行时,必须按某种先后次序,只有当前操作完成后才能执行后继操作,它体现了某种算
4、法。如:S1:a:=x+y;S2:b:=a-5;S3:c:=b+1;各程序段与此相同,以ICP分别代表输入计算和输出,则前趋图:前趋图S1S2S3I1C1P1I2C2P2程序顺序执行的特征:程序执行的顺序性:严格按所规定的顺序执行程序执行的封闭性独占资源,执行过程和结果不受其它程序的影响程序结果的可再现性(结果的确定性)只要初始状态相同,程序多次重复运行,其结果与程序执行速度无关(连续或间断),结果都应相同。2.1.3程序并发执行多个程序并发执行:在一定时间内物理机器上有两个或两个以上的程序同处于开始运行但尚未结束的状态,并
5、且次序不是事先确定的。宏观上同时处于运行状态微观上各程序交替地间断运行。I1I2I3I4C1C2C3C4P1P2P3P4前趋关系:Ii→Ci,Pi→Pi+1Ci→Pi,Ii→Ii+1Ci→Ci+1Ii+1,Ci,Pi-1是重叠的举例说明:假如系统中有两道程序AA和BB:programAA;programBB;beginbegin…A←N…B←NN:=N+1;A←A+1N:=N+1;B←B+1…N←A…N←BEnd;end;intN=1;是AA和BB都能访问的外部公共变量,这两个程序在并发执行,N:=N+1;可分解为3条机器指
6、令,它们的执行顺序不同有可能导致N的值结果不同。时间T0T1T2T3T4T5程序AA←NA←A+1N←A程序BB←NB←B+1N←BN的值112223(a)顺序执行时间T0T1T2T3T4T5程序A程序BN的值111122(b)交叉执行时间T0T1T2T3T4T5程序A程序BN的值111122(c)交叉执行N←BB←B+1B←NA←NA←A+1N←AA←NN←AA←A+1N←BB←B+1B←N并发执行特征:(1)在并发环境下程序的执行是间断性的执行——停——执行(2)失去封闭性资源共享,执行过程和结果受其它程序的影响(3)程
7、序结果的不可再现性并发程序执行的结果不可再现,与其执行的相对速度有关,是不确定的(4)相互作用和制约性进程之间可相互作用(相互制约)可分为直接作用和间接作用(5)程序与CPU执行的活动之间不再一一对应程序与CPU执行的活动,这是两个不同的概念;程序是完成某一特定功能的指令序列,是静态的概念;而CPU执行的活动是一个动态概念,它是程序的执行过程。程序在顺序执行(即单道运行)时,程序与CPU执行的活动是一一对应的,而在程序并行执行(即多道程序)时,这种关系不再存在。2.2进程进程的概念进程的状态及其转换进程控制块(Proces
8、sControlBlock)进程的特征2.2.1进程的概念进程是程序的一次执行进程是可以和别的计算并发执行的计算进程是一个数据结构及能在其上进行操作的程序进程是某程序及其数据在处理机上顺序执行的过程进程是程序在某一数据集合上的运行过程进程的定义:Process进程是可以并发执行的程序在某个