(精品)os-2-1-进程管理(新).ppt
《(精品)os-2-1-进程管理(新).ppt》由会员分享,可在线阅读,更多相关《(精品)os-2-1-进程管理(新).ppt(68页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、1进程概念进程概念2进程描述进程描述3进程进程状态及转换状态及转换4进程进程控制控制5进程进程互斥互斥6进程同步进程同步7进程通信进程通信第二章 进程管理 重点和难点:l进程的定义和特征进程的定义和特征l进程的同步和互斥进程的同步和互斥l用信号量机制解决进程同步、互斥、前趋图问用信号量机制解决进程同步、互斥、前趋图问题题 2.1进程的概念进程的概念2.1.1程序的顺序执行程序的顺序执行1.1.基本概念基本概念 程序:一个在时间上按严格次序、顺序执行的操作序列。l程序的顺序执行:一个具有独立功能的程序独占处理机,直至得到最终结果的过程。l操作:数据处理的一种规则,一经启动就需要在有限时间内完成。
2、l计算:若干操作严格顺序执行的集合。2.2.程序的顺序执行程序的顺序执行l l在计算机系统中只有一个程序在运行,这个程在计算机系统中只有一个程序在运行,这个程序独占系统中所有资源,其执行不受外界影响。序独占系统中所有资源,其执行不受外界影响。通常一个程序可分成若干个程序段,它们必须按照某种先后次序执行,仅当前一操作执行后,才能执行后继操作。例如:进行计算。I:输入操作C:计算操作P:打印操作。在进行计算时,总是先输入用户的程序和数据,然后进行计算,最后将结果打印出来。I1C1P1P2I2C1程序顺序执行时的前趋图3.语句的顺序执行语句的顺序执行l对于一个程序段中的多条语句来说,也有一个执行顺序
3、的问题。如果对于下述三条语句的程序段:lS1:a:xylS2:b:a5lS3:C:b1 l(其中S2必须在a被赋值以后才能执行;同样S3也只能在b被赋值 以后才能执行)4、程序顺序执行时的特征程序顺序执行时的特征(1)顺序性 处理机的操作,严格按照程序所规定的顺序执行,即只有前一操作结束后,才能执行后继操作。(2)封闭性(失去交换性)封闭环境下运行,程序独占全机资源只有当前运行程序才能改变资源状态程序执行结果不受外界因素的影响(3)可再现性 只要程序执行时的环境和初始条件都相同,不论它是从头到尾的不停顿的执行,还是“走走停停”地执行,都将获得相同的结果。程序顺序执行时的特性,将程序顺序执行时的
4、特性,将为程序员检测和校正程序的为程序员检测和校正程序的错误,带来极大的方便错误,带来极大的方便.多道程序系统中,程序执行环境的变化多道程序系统中,程序执行环境的变化计算机能够同时处理多个具有独立功能的程序(如批处理系统,分时系统、实时系统、网络与分布式系统)。这样的执行环境具有三个特点:独立性:逻辑上独立;随机性:程序和数据的输入与执行开始时间都是随机的 资源共享:硬件资源:CPU、输入输出设备,存储器 软件资源:各种例行程序、各种共享的数据 多道程序环境下执行程序的道数计算机系统中CPU的个数 单CPU中,则由N1道程序处在等待CPU的状态 输入输出设备有限将导致这些设备被共享、内存有限将
5、导致内存被共享 前趋图前趋图l为了描述一个程序的各部分(程序段或语句)间的依赖关系,或者是一个大的计算的各个子任务间的因果关系,我们常常采用前趋图方式。图九个结点的前趋图l前趋图(Procedence Graph):是一个有向无循环图,图中的每个结点可用于表示一条语句,一个程序段或进程;结点间的有向边则表示在两结点之间存在的前趋关系“”。l如果(pi,pj)可写成pi pj,称pi是pj 的前趋,而pj是pi的直接后继。l关于前趋图的几个概念:1 直接前趋2 直接后继3 初始结点4 终止结点5 结点的重量:该结点所含的程序量或结点的执行时间来计算。1234567存在下面的前趋关系:P1 P2,
6、P1 P3;P1 P4;P2 P5;P3 P5;P5 P7;P4 P6,P6 P7或表示为:PP1,P2,P3,P4,P5,P6,P7 =(P1,P2),(P1,P3),(P1,P4),(P2,P5),(P3,p5),(P4,P6),(P5,P7),(P6,P7)七个结点的前趋图 注意:前趋图中不存在循环。S2 S3 ,S3 S2显然这种前趋关系是不可能满足的,S3的执行要依赖于S2的执行结果,S2的执行结果又要依赖于S3的执行结果,这种程序是不可能执行下去的。2.1.2 2.1.2 程序的并发执行程序的并发执行1.1.并发环境:并发环境:在一定时间内物理机器上有两个或两个以上的程序同处于开始
7、运行但尚未结束的状态,并且次序不是事先确定的2.2.程序的并发执行程序的并发执行 一组逻辑上相互独立的程序或程序段在执行过程中,其执行时间在客观上相互重叠,即一个程序段的执行尚未结束,另一个程序段的执行已经开始的执行方式。I1I2I4I3C1C2C3P1C4P4P3P2程序并发执行时的前趋图在对一批程序进行处理时,可以并发执行。例如,输入、计算、打印三个程序对一批作业进行处理时,存在以下的前趋关系:IiCi,IiIi+1,CiPi,CiCi+1,PiPi+1对一个作业的输入 计算和打印三个操作,必须顺序执行,但并不存在Pi Ii1.Ii1和Ci及Pi1是可以并发执行的。例:下述四条语句的程序段
8、画出前趋图S1:a:x+2S2:b:y4S3:c:abS4:d:c6S1S2S4S33.3.程序并发执行的特征:程序并发执行的特征:l多道程序系统的程序执行环境变化所引起的多道程序的并发执行 由于资源有限,多道程序的并发执行总是伴随着资源的共享与竞争,制约了各道程序的执行速度。l在某道程序段中,包含着一部分可以同时执行或顺序颠倒执行的代码 例如:read(a);read(b);既可以同时执行,也可以颠倒次序执行,同时执行不会改变顺序程序所具有的逻辑行知,可采用并发执行来充分利用资源。l间断性、失去封闭性、不可再现性l间断性程序在并发执行时,由于它们共享资源或为完成某一项任务而合作,致使在并发程
9、序之间存在相互制约的关系。(I、C、P是三个相互合作的程序,当计算程序完成Ci1的计算后,如果输入程序I尚未完成对Ii的处理,则计算程序无法进行Ci处理,致使计算程序在停运行。)l失去封闭性程序在并发执行时,是多个程序共享系统中的各种资源,因而这些资源的状态将由多个程序来改变,致使程序的运行失去了封闭性。l不可再现性 程序在并发执行时,由于失去了封闭性,也导致失去了可再现性。例如:有两个循环程序A和B,它们共享一个变量N。程序A每执行一次时都要做N:N1操作;程序B每执行一次时,都要做print(N)操作,然后再将N置成“0”,程序A和B以不同的速度运行。(假定某时刻变量N的值为v)(1)N:
10、N1在print(N)和N:0之前,此时得到的N值分别为n1,n1,0 (2)N:N1在print(N)和N:0之后,此时得到的N值分别为 n,0,1 (3)N:N1在 print(N)和N:0之间,此时得到的N值分别为 n,n1,0程序并发执行不可再现性举例程序并发执行不可再现性举例q共享初值为0的变量N的两程序段A、BA:N:=N+1B:Print(N);N:=0q执行结果分析先A:1,1,0中A:0,1,0后A:0,0,1设有两个循环结构的程序A和B,它们共享一个公共变量n。程序A每执行一次循环都要作n:n1操作;程序B在每一次循环中打印出n的值,然后将n置0。对此的PASCAL描述如下
11、:cobegin/coend表示并发结构,其中的程序可以并发执行。由表示并发结构,其中的程序可以并发执行。由于程序于程序A和和B都是异步执行,它们的语句在时间上可能是穿插都是异步执行,它们的语句在时间上可能是穿插或交叉执行的,故程序或交叉执行的,故程序A的的n:n1操作既可能在程序操作既可能在程序B的的print(n)和和n:0操作之前或之后执行,也可能在它们之间执操作之前或之后执行,也可能在它们之间执行行(即即n:n1出现在出现在print(n)之后,而在之后,而在n:0之前之前)。于是,。于是,程序的运行可能产生三组不同的执行轨迹和结果程序的运行可能产生三组不同的执行轨迹和结果(设在开始设
12、在开始某个循环之前某个循环之前nv):4.程序并发执行的条件程序并发执行的条件程序并发执行过程可以描述为:程序并发执行过程可以描述为:S0CobeginP1;P2;PnCoendSn1966年,年,Bernstein提出了相邻语句提出了相邻语句S1,S2可以并发执行的可以并发执行的条件。条件。如果并发执行的各程序段中语句或指令满足如果并发执行的各程序段中语句或指令满足Bernstein的的三个条件,则认为并发执行不会对执行结果的封闭性和三个条件,则认为并发执行不会对执行结果的封闭性和可再现性产生影响。可再现性产生影响。将程序中任一语句将程序中任一语句SiSi划分为两个变量的集合划分为两个变量的
13、集合 R R(SiSi)和和W W(SiSi),其中其中R R(SiSi)a1,a2,ama1,a2,am是语句是语句SiSi在执行其间必须对其进行读的在执行其间必须对其进行读的变量变量,称为读集称为读集;W W(SiSi)b1b1,b2b2,bnbn 是语句是语句SiSi在执行其间必须对在执行其间必须对其进行修改的变量其进行修改的变量,称为写集称为写集;如果对于语句如果对于语句S1S1和和S2S2,有,有 R(S1)W(S2)R(S1)W(S2)W(S1)R(S2)W(S1)R(S2)W(S1)W(S2)=W(S1)W(S2)=同时成立同时成立即:即:R(S1)W(S2)W(S1)R(S2)
14、W(S1)W(S2)R(S1)W(S2)W(S1)R(S2)W(S1)W(S2),则语句则语句S1S1和和S2S2是可以并发执行的。是可以并发执行的。操作系统中许多任务不满足Bernstein条件,它们不能并发执行吗?怎么办?这涉及后面重点讲的进程同步问题。例:若有两条语句例:若有两条语句cab和和wc1,判断判断它们是否可以并发执行?它们是否可以并发执行?解:它们的解:它们的“读集读集”和和“写集写集”分别为分别为R(C:ab)a,b;R(W:c1)cW(C:ab)c;W(W:c1)wR(C:ab)W(Wi:c1)=R(W:c1)W(C:ab)=c所以:两条语句不能并发执行。所以:两条语句不
15、能并发执行。有的同学发现,同一语句的有的同学发现,同一语句的“读集读集”和和“写集写集”的交集是空集。的交集是空集。R(C:ab)W(C:ab)W(W:c1)W(W:c1)=其实,同一语句的其实,同一语句的“读集读集”和和“写集写集”也也可能相同(交集不为空)可能相同(交集不为空)例如:计数语句:例如:计数语句:xx1读集和写集相同读集和写集相同R(xx1)W(xx1)x课后练习课后练习例:用例:用Bernstein条件判断以下四条语句是条件判断以下四条语句是否两两可以并发执行。否两两可以并发执行。S1:a:xyS2:b:z1S3:C:abS4:w:c1进程的引入进程的引入q并发、共享及多道程
16、序环境q基于程序的概念已不能完整、有效地描述并发程序在内存中的运行状态q必须建立并发程序的新的描述和控制机制q基于程序段、数据段和进程控制块而引入进程的概念以对应程序的运行过程q进程控制块存放了进程标识符、进程运行的当前状态、程序和数据的地址以及关于该程序运行时的CPU环境信息2.1.3进程的定义进程的定义进程有许多各式各样的定义进程有许多各式各样的定义进程有许多各式各样的定义进程有许多各式各样的定义(1 1)进程是可以并发执行的计算部分)进程是可以并发执行的计算部分)进程是可以并发执行的计算部分)进程是可以并发执行的计算部分(2 2)进程是一个独立的可以调度的活动)进程是一个独立的可以调度的
17、活动)进程是一个独立的可以调度的活动)进程是一个独立的可以调度的活动(3 3)进程是一个抽象的实体,当它执行某个任务时,将)进程是一个抽象的实体,当它执行某个任务时,将)进程是一个抽象的实体,当它执行某个任务时,将)进程是一个抽象的实体,当它执行某个任务时,将要分配和释放各种资源要分配和释放各种资源要分配和释放各种资源要分配和释放各种资源(4 4)行为的规则叫程序,程序在处理机上执行的活动称)行为的规则叫程序,程序在处理机上执行的活动称)行为的规则叫程序,程序在处理机上执行的活动称)行为的规则叫程序,程序在处理机上执行的活动称为进程。为进程。为进程。为进程。(5 5)一个进程是一系列逐一执行的
18、操作,而操作的确切)一个进程是一系列逐一执行的操作,而操作的确切)一个进程是一系列逐一执行的操作,而操作的确切)一个进程是一系列逐一执行的操作,而操作的确切含义则有赖于以何种详尽程度来描述进程。含义则有赖于以何种详尽程度来描述进程。含义则有赖于以何种详尽程度来描述进程。含义则有赖于以何种详尽程度来描述进程。进程:一个具有独立功能的程序对某个数据集在处理机进程:一个具有独立功能的程序对某个数据集在处理机进程:一个具有独立功能的程序对某个数据集在处理机进程:一个具有独立功能的程序对某个数据集在处理机上的执行过程和分配资源的基本单位。上的执行过程和分配资源的基本单位。上的执行过程和分配资源的基本单位
19、。上的执行过程和分配资源的基本单位。(在这里,程序指一组操作序列,而数据集则是接受程(在这里,程序指一组操作序列,而数据集则是接受程(在这里,程序指一组操作序列,而数据集则是接受程(在这里,程序指一组操作序列,而数据集则是接受程序规定操作的一组存储单元的内容。)序规定操作的一组存储单元的内容。)序规定操作的一组存储单元的内容。)序规定操作的一组存储单元的内容。)比较进程和程序的区别:比较进程和程序的区别:比较进程和程序的区别:比较进程和程序的区别:答:答:答:答:11进程是一个动态的概念,进程的实质是程序的一次进程是一个动态的概念,进程的实质是程序的一次进程是一个动态的概念,进程的实质是程序的
20、一次进程是一个动态的概念,进程的实质是程序的一次执行过程,动态性是进程的基本特征,同时进程是有执行过程,动态性是进程的基本特征,同时进程是有执行过程,动态性是进程的基本特征,同时进程是有执行过程,动态性是进程的基本特征,同时进程是有一定的生命期的;而程序只是一组有序指令的集合,一定的生命期的;而程序只是一组有序指令的集合,一定的生命期的;而程序只是一组有序指令的集合,一定的生命期的;而程序只是一组有序指令的集合,本身并无运动的含义,是静态的。本身并无运动的含义,是静态的。本身并无运动的含义,是静态的。本身并无运动的含义,是静态的。22并发性,并发性是进程的重要特征,引入进程的目并发性,并发性是
21、进程的重要特征,引入进程的目并发性,并发性是进程的重要特征,引入进程的目并发性,并发性是进程的重要特征,引入进程的目的正是为了使其程序和其它程序并发执行;而程序的正是为了使其程序和其它程序并发执行;而程序的正是为了使其程序和其它程序并发执行;而程序的正是为了使其程序和其它程序并发执行;而程序(没有建立进程没有建立进程没有建立进程没有建立进程)是不能并发执行的。是不能并发执行的。是不能并发执行的。是不能并发执行的。33独立性,是指进程是一个能独立运行、独立分配资独立性,是指进程是一个能独立运行、独立分配资独立性,是指进程是一个能独立运行、独立分配资独立性,是指进程是一个能独立运行、独立分配资源和
22、独立调度的基本单位;凡未建立进程的程序,都源和独立调度的基本单位;凡未建立进程的程序,都源和独立调度的基本单位;凡未建立进程的程序,都源和独立调度的基本单位;凡未建立进程的程序,都不能作为一个独立的单位参加运行。不能作为一个独立的单位参加运行。不能作为一个独立的单位参加运行。不能作为一个独立的单位参加运行。不同的进程可以包含同一个程序,同一个程序在执不同的进程可以包含同一个程序,同一个程序在执不同的进程可以包含同一个程序,同一个程序在执不同的进程可以包含同一个程序,同一个程序在执行中也可以产生多个进程。行中也可以产生多个进程。行中也可以产生多个进程。行中也可以产生多个进程。实例:实例:l l一
23、位有一手好厨艺的计算机科学家正在为他的儿子烘制生日蛋糕。一位有一手好厨艺的计算机科学家正在为他的儿子烘制生日蛋糕。一位有一手好厨艺的计算机科学家正在为他的儿子烘制生日蛋糕。一位有一手好厨艺的计算机科学家正在为他的儿子烘制生日蛋糕。计算机科学家计算机科学家计算机科学家计算机科学家-处理机处理机处理机处理机(CPU);(CPU);做蛋糕的食谱做蛋糕的食谱做蛋糕的食谱做蛋糕的食谱-程序(即用适当形式描述的算法);程序(即用适当形式描述的算法);程序(即用适当形式描述的算法);程序(即用适当形式描述的算法);做蛋糕的原料(如面粉,鸡蛋,糖)做蛋糕的原料(如面粉,鸡蛋,糖)做蛋糕的原料(如面粉,鸡蛋,糖
24、)做蛋糕的原料(如面粉,鸡蛋,糖)-输入数据;输入数据;输入数据;输入数据;进程:厨师阅读食谱,取来各种原料以及烘制蛋糕等一进程:厨师阅读食谱,取来各种原料以及烘制蛋糕等一进程:厨师阅读食谱,取来各种原料以及烘制蛋糕等一进程:厨师阅读食谱,取来各种原料以及烘制蛋糕等一 系列动作的总和。系列动作的总和。系列动作的总和。系列动作的总和。现假设科学家的儿子跑进来,说被蜜蜂蛰了;现假设科学家的儿子跑进来,说被蜜蜂蛰了;现假设科学家的儿子跑进来,说被蜜蜂蛰了;现假设科学家的儿子跑进来,说被蜜蜂蛰了;科学家就记录下他照着食谱做到哪儿了科学家就记录下他照着食谱做到哪儿了科学家就记录下他照着食谱做到哪儿了科学
25、家就记录下他照着食谱做到哪儿了-保存进程当前状态;保存进程当前状态;保存进程当前状态;保存进程当前状态;然后拿出一本急救手册(医疗救治进程的程序),按照其中的指示然后拿出一本急救手册(医疗救治进程的程序),按照其中的指示然后拿出一本急救手册(医疗救治进程的程序),按照其中的指示然后拿出一本急救手册(医疗救治进程的程序),按照其中的指示处理蛰伤处理蛰伤处理蛰伤处理蛰伤-CPU-CPU进行进程切换(做蛋糕进行进程切换(做蛋糕进行进程切换(做蛋糕进行进程切换(做蛋糕 实施医疗救治);实施医疗救治);实施医疗救治);实施医疗救治);蛰伤处理完毕后,科学家又回来做蛋糕,从他离开时的那一步继续蛰伤处理完毕
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 os 进程 管理
限制150内