《二章节进程描述与控制.ppt》由会员分享,可在线阅读,更多相关《二章节进程描述与控制.ppt(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、二章节进程描述与控制 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望进程的基本概念ProcessConceptw进程的引入w进程的定义和特征w进程的基本状态及其转换w具有挂起功能的进程状态及其转换进程的引入w多道程序系统的特点是并行性。为了充分利用系统资源,在主存中同时存放多道作业运行,所以各作业之间是并行的 w各程序由于同时存在于主存中,它们之间必定会存在相互依赖,相互制约的关系。(间接制约关系、直接制约关系)w在多道程序系统所带来的复杂环境中,程序具有了并行、
2、制约、动态的特性,原来的程序概念,难以刻画系统中的情况。程序本身完全是静态的概念程序本身完全是静态的概念 程序概念也反映不了系统中的并行特性程序概念也反映不了系统中的并行特性 1、程序的顺序执行w一个较大的程序通常都是由若干个程序段组成。在程序执行时,必须按照某种先后次序逐个执行,仅当前一操作执行完后,才能执行后继操作。例如:在进行计算时,总是先输入用户的程序和数例如:在进行计算时,总是先输入用户的程序和数据,然后才能计算,计算完成后再将结果打印出来。据,然后才能计算,计算完成后再将结果打印出来。I1C1P1P2I2C2程序顺序执行时的前驱图对于一个程序段中的多条语句来说,也有一个执行顺序的问
3、题。如果对于下述三条语句的程序段:S1:axyS2:ba5S3:Cb1 (其中S2必须在a被赋值以后才能执行;同样S3也只能在b被赋值 以后才能执行)2、程序顺序执行时的特征w顺序性处理机的操作,严格按照程序所规定的顺序执行,处理机的操作,严格按照程序所规定的顺序执行,即只有前一操作结束后,才能执行后继操作。即只有前一操作结束后,才能执行后继操作。w封闭性(失去交换性)程序是在封闭的环境下运行的。即程序在运行时,程序是在封闭的环境下运行的。即程序在运行时,它独占全机资源,因而机内各资源的状态(除初始它独占全机资源,因而机内各资源的状态(除初始状态外),只有程序才能改变它。程序一旦开始运状态外)
4、,只有程序才能改变它。程序一旦开始运行,其执行结果不受外界因素的影响。行,其执行结果不受外界因素的影响。w可再现性只要程序执行时的环境和初始条件都相同,不论它只要程序执行时的环境和初始条件都相同,不论它是从头到尾的不停顿的执行,还是是从头到尾的不停顿的执行,还是“走走停停走走停停”地地执行,都将获得相同的结果。执行,都将获得相同的结果。3.多道程序的并发执行计算机能够同时处理多个具有独立功能的程序(批计算机能够同时处理多个具有独立功能的程序(批处理系统,分时系统、实时系统、网络与分布式系处理系统,分时系统、实时系统、网络与分布式系统)。这样的执行环境具有三个特点:统)。这样的执行环境具有三个特
5、点:独立性独立性 随机性随机性资源共享资源共享硬件资源:硬件资源:CPU、输入输出设备,存储器、输入输出设备,存储器软件资源:各种例行程序、各种共享的数据软件资源:各种例行程序、各种共享的数据多道程序环境下执行程序的道数多道程序环境下执行程序的道数计算机系统中计算机系统中CPU的个数的个数单单CPU中,则由中,则由N1道程序处在等待道程序处在等待CPU的状态的状态输入输出设备有限将导致这些设备被共享、内存有输入输出设备有限将导致这些设备被共享、内存有限将导致内存被共享限将导致内存被共享 程序并发执行可分为两种:w多道程序系统的程序执行环境变化所引起的多道程序的并发执行 由于资源有限,多道程序的
6、并发执行总是伴随着资由于资源有限,多道程序的并发执行总是伴随着资源的共享与竞争,制约了各道程序的执行速度。源的共享与竞争,制约了各道程序的执行速度。w在某道程序段中,包含着一部分可以同时执行或顺序颠倒执行的代码 例如:例如:read(a););read(b););既可以同时执行,也可以颠倒次序执行,同时执行既可以同时执行,也可以颠倒次序执行,同时执行不会改变顺序程序所具有的逻辑行为,可采用并发不会改变顺序程序所具有的逻辑行为,可采用并发执行来充分利用资源。执行来充分利用资源。程序并发执行 一组逻辑上相互独立的程序或程序段在执行过程中,其执行时间在客观上相互重叠,即一个程序段的执行尚未结束,另一
7、个程序段的执行已经开始的这种执行方式。程序的并发执行I1I2I4I3C1C2C3P1C4P4P3P2程序并发执行时的前驱图4.程序并发执行时的特征w间断性程序在并发执行时,由于它们共享资源或为完成某程序在并发执行时,由于它们共享资源或为完成某一项任务而合作,致使在并发程序之间存在相互制一项任务而合作,致使在并发程序之间存在相互制约的关系。约的关系。(I、C、P是三个相互合作的程序,当计是三个相互合作的程序,当计算程序完成算程序完成Ci1的计算后,如果输入程序的计算后,如果输入程序I尚未完成尚未完成对对Ii的处理,则计算程序无法进行的处理,则计算程序无法进行Ci处理,致使计算处理,致使计算程序在
8、停运行。程序在停运行。)w失去封闭性程序在并发执行时,是多个程序共享系统中的各种程序在并发执行时,是多个程序共享系统中的各种资源,因而这些资源的状态将由多个程序来改变,资源,因而这些资源的状态将由多个程序来改变,致使程序的运行失去了封闭性。致使程序的运行失去了封闭性。4.程序并发执行时的特征(续)w不可再现性 程序在并发执行时,由于失去了封闭性,也导致失去了可再现程序在并发执行时,由于失去了封闭性,也导致失去了可再现性。性。例如:有两个循环程序例如:有两个循环程序A和和B,它们共享一个变量,它们共享一个变量N。程序。程序A每每执行一次时都要做执行一次时都要做NN1操作;程序操作;程序B每执行一
9、次时,都要每执行一次时,都要做做print(N)操作,然后再将)操作,然后再将N置成置成“0”,程序,程序A和和B以不同以不同的速度运行。(假定某时刻变量的速度运行。(假定某时刻变量N的值为的值为k)(1)NN1在在print(N)和)和N0之前,此时得到的之前,此时得到的N值分别为值分别为(2)NN1在在print(N)和)和N0之后,此时得到的之后,此时得到的N值分别为值分别为(3)NN1在在 print(N)和)和N0之间,此时得到的之间,此时得到的N值分别值分别为为k1,k1,0k,0,1k,k1,05.程序并发执行的条件w1966年,Bernstein(伯恩斯坦)提出了相邻语句P1,
10、P2可以并发执行的条件。w如果并发执行的各程序段中语句或指令满足Bernstein的条件,则认为并发执行不会对执行结果的封闭性和可再现性产生影响。定义程序读集与写集符号R(Pi)=a1,a2,am 表示程序Pi在执行期间需引用的变量的集合,称Pi的读集;W(Pi)=b1,b2,bm 表示程序Pi在执行期间需改变的变量的集合,称Pi的写集;若有两条语名若有两条语名P1:c=a+b;P2:x=x+1;则它们的读集与写为则它们的读集与写为:R(P1)=a,b W(P1)=c R(P2)=x W(P2)=x P1的读集与写集的交集为空的读集与写集的交集为空;P2的读集与写集的交集非空的读集与写集的交集
11、非空;R(P1)W(P1)=R(P2)W(P1)=x Bernstein条件w若两个程序P1和P2能满足下述条件,它们便能并发执行,否则不能R(P1)W(P2)R(P2)W(P1)W(P1)W(P2)=R(P1)W(P2)R(P2)W(P1)W(P1)W(P2)=即 R(P1)W(P2)=W(P1)R(P2)=W(P1)W(P2)=同时成立例1 若有两条语句P1:cab和P2:wc1,判断它们是否可以并发执行?解:它们的“读集”和“写集”分别为 R(P1)a,b;W(P1)c R(P2)c ;W(P2)w R(P1)W(P2)=R(P2)W(P1)=c 所以:两条语句不能并发执行。同一语句的“
12、读集”和“写集”的交集是空集。R(cab)W(cab)=R(wc1)W(wc1)=同一语句的“读集”和“写集”也可能相同(交集不为空)例如计数语句:xx1 读集和写集相同 R(xx1)W(xx1)x例:下述四条语句S1:ax+yS2:bz+1S3:ca+bS4:wc+6S1S2S4S3R(S1)=x,yW(S1)=a;R(S2)=zW(S2)=b;R(S3)=a,bW(S3)=c;R(S4)=cW(S4)=w;程序顺序执行、并发执行特征比较 程序的顺序执行 程序的并发执行 1 顺序性顺序性 1 间断性间断性 2 封闭性封闭性 2 失去封闭性失去封闭性 3可再现性可再现性 3 不可再现性不可再现
13、性进程的定义w进程有许多各式各样的定义(1)进程是可以并发执行的计算部分)进程是可以并发执行的计算部分(2)进程是一个独立的可以调度的活动)进程是一个独立的可以调度的活动(3)进程是一个抽象的实体,当它执行某个任务时,)进程是一个抽象的实体,当它执行某个任务时,将要分配和释放各种资源将要分配和释放各种资源(4)行为的规则叫程序,程序在处理机上执行的活动)行为的规则叫程序,程序在处理机上执行的活动称为进程。称为进程。(5)一个进程是一系列逐一执行的操作,而操作的确)一个进程是一系列逐一执行的操作,而操作的确切含义则有赖于以何种详尽程度来描述进程。切含义则有赖于以何种详尽程度来描述进程。我国对进程
14、的定义w进程:一个具有独立功能的程序关于某个数据集合的一次运行过程。在处理机上的执行过程和分配资源的基本单位在处理机上的执行过程和分配资源的基本单位在这里,程序指一组操作序列,而数据集则是接受在这里,程序指一组操作序列,而数据集则是接受程序规定操作的一组存储单元的内容。程序规定操作的一组存储单元的内容。进程和程序的区别w 动态性,进程的实质是程序的一次执行过程,它由“创建”而产生,由“调度”而执行,因得不得资源而暂停执行,最后由“撤销”而消记亡,是有一定的生命期,而程序只是指令的集合,本身无运行的含义,是静态的。w并发性,并发性是进程的重要特征,引入进程的目的正是为了使其程序和其它程序并发执行
15、;而程序(没有建立进程)是不能并发执行的。w独立性,是指进程一个能独立运行、独立分配资源和独立调度的基本单位;凡未建立进程的程序,都不能作为一个独立的单位参加运行。w异步性,各进程各自以独立的、不可预知的速度向前推进。进程的三种基本状态(ProcessState)w就绪(Ready):万事具备,只欠东风(被执行)万事具备,只欠东风(被执行).w执行(Running)占有占有CPU.w阻塞(Blocked/Waiting)进程因为等待某事件的发生(如进程因为等待某事件的发生(如I/O完成),不能继完成),不能继续执行续执行.进程3种状态间的转换w就绪-执行w执行-就绪w执行-阻塞w阻塞-就绪进程
16、基本状态图diagram of process state等待事件事件发生进程调度进程创建进程撤消挂起功能的引入w对换的需要为缓解内存紧张的情况,将内存中处于阻塞状态的为缓解内存紧张的情况,将内存中处于阻塞状态的进程换至外存上,使进程处于一种有别于阻塞状态进程换至外存上,使进程处于一种有别于阻塞状态的新状态。的新状态。w系统负荷调节的需要系统中负荷过重,资源数目相对不足时需要挂起一系统中负荷过重,资源数目相对不足时需要挂起一部分进程以调整系统负荷。部分进程以调整系统负荷。w终端用户的需要用户检查自己作业执行情况和中间结果时,因同预用户检查自己作业执行情况和中间结果时,因同预期结果不符而要求挂起
17、进程以便进行检查和改正。期结果不符而要求挂起进程以便进行检查和改正。进程的5种状态w活动就绪(Ready_Active)w静止就绪(Ready_Static)w执行(Running)w活动阻塞(Blocked_A)w静止阻塞(Blocked_S)进程5种状态间的转换图进程描述w操作系统的控制结构w进程的结构描述wPCB的结构wPCB的组织形式进程和资源的关系处理机I/OI/OI/O内存P1P2Pn虚拟内存计算机资源操作系统的控制结构w为掌握每一个进程和资源的当前状态信息,OS为每个被管理的对象建立并维护一张信息表,称为操作系统控制表,包括内存表内存表输入输入/输出表输出表文件表文件表进程表进程
18、表进程的主要组成部分w进程控制块(PCB)w程序w数据w系统栈进程上下文w上文:已执行过的进程指令已执行过的进程指令数据在寄存器和栈中的内容数据在寄存器和栈中的内容w正文正在执行的正在执行的w下文待执行的进程指令待执行的进程指令数据在寄存器和栈中的内容数据在寄存器和栈中的内容机器指令与寄存器通过DEBU了解机器指令理解寄存器C程序程序汇编程序汇编程序int a=3;mov 010B,3a=a+1;mov ax,010Badd ax,1mov 010B,axb=a+2;mov ax,010Badd ax,2mov 010D,axCPU现场保护的必要性mov ax,3add ax,1mov 010
19、B,axmov ax,5add ax,bxmov 020C,axCPUAXBXCX进程进程A进程进程BProcessControlBlock(PCB进程控制块)wOS为了管理、控制进程,设置PCB,存储进程相关信息Process number 进程标识符进程标识符Process state 进程现行状态进程现行状态Program counter 程序计数器程序计数器CPU registers 寄存器值寄存器值CPU scheduling information调度信调度信息息Memory-management information 存储管理信息存储管理信息Accounting information记帐信息记帐信息I/O status information I/O状态信息,状态信息,如打开的文件如打开的文件进程控制块的组织形式:链接方式进程控制块的组织形式:索引方式进程在各队列间迁移方块表示队列,圆圈表示资源CPUSwitchFromProcesstoProcess
限制150内