第4章 进程及进程管理



《第4章 进程及进程管理》由会员分享,可在线阅读,更多相关《第4章 进程及进程管理(87页珍藏版)》请在文档大全上搜索。
1、1 / 71第4章 进程及进程管理4.1 并发活动进程的引入4.2 进程概念4.3 进程控制4.4 进程的相互制约关系4.5 进程互斥4.6 信号灯和、V操作4.7 进程同步4.8 进程通信4.9 线程2 / 714.1.1 程序的顺序执行(一)数据、操作数据:用来表现人们思维对象的抽象概念的物理表现操作:数据处理的规则。3 / 71(二)什么是程序的顺序执行(二)什么是程序的顺序执行程序的顺序执行程序的顺序执行:4 / 71I1 I2C2C1P1P2作业1作业2图4.1 程序段的顺序执行5 / 711、顺序性:2、封闭性:3、可再现性: (三)顺序程序的特点6 / 714.1.24.1.2程
2、序的并发执行程序的并发执行并发环境:并发环境: 在一定时间内物理机器上有两个或在一定时间内物理机器上有两个或两个以上的程序同处于开始运行但两个以上的程序同处于开始运行但尚未结束的状态,并且次序不是事尚未结束的状态,并且次序不是事先确定的。先确定的。7 / 71引入并发的目的:引入并发的目的: 并发程序:并发程序:8 / 71图4.2 并行计算的先后次序I1I2I3I4C1C2C3P1P29 / 71例:例:图4.2 10 / 71图 4.311 / 71并发执行的算法表示:1、语句表示 s0 ; cobegin S1; S2; ; Sn coend; sn+1; 12 / 712.流程图表示。
3、s0s1s2SnSn+113 / 71例4.1 假设一个飞机订票系统有两个终端,分别运行进程T1和T2且同处于运行之中,其程序如下(类C代码)其运行情况如图3.1所示。T1( ) T2( ) while(未下班) while(未下班) read(x); read(x); if x=1 if x=1 x-; x-; write(x); write(x); Main( ) Cobegin T1( ); T2( ); Coend int x;图4.44.1.3并发执行的例子14 / 71时间时间 t0t1t2t3t4t5X 1 1 0 0 0 0T1read(x)x- -write(x) T2 re
4、ad(x)write(x)(a)时间时间 t0t1t2t3t4t5X 1 1 1 0 0 0T1read(x) x- - write(x) T2 read(x) x- - write(x)(b)15 / 71结果分析: 按照(a)的序列执行时,系统中仅有的一张票售给了一位旅客,这是正确的。 按照(b)的序列执行时,尽管T1和T2均无非法操作,但却把一张票售给了两位旅客。 在(b)情况下发生的错误,称为 与时间有关的错误。16 / 71特征:(1)失去程序的封闭性(2)程序和计算不再一一对应(3)程序并发执行时存在相互制约关系17 / 714.2 进程概念4.2.1 进程的引入和定义程序的顺序执
5、行、程序的并发执行特征比较程序的顺序执行 程序的并发执行1 顺序性 1 间断性2 封闭性 2 失去封闭性3可再现性 3 不可再现性18 / 7119 / 714.2.1 进程的引入 程序并发执行时所产生的一系列新的特点是传统的静态的“程序”的概念,已不足以描述程序的并发执行,为此引入了“进程”的概念。 进程的定义: 一个程序在给定活动空间和初始环境下,在一个处理机上的执行过程。20 / 71定义:定义:ProcessProcess 进程是具有独立功能的程序关于进程是具有独立功能的程序关于某个数据集合上的一次运行活动,某个数据集合上的一次运行活动,是系统进行资源分配和是系统进行资源分配和调度调度
6、的独立的独立单位单位2 2、进程的定义、进程的定义21 / 7122 / 7123 / 71系统进程系统进程用户进程用户进程(系统进程优先于用户进程(系统进程优先于用户进程) )进程的分类进程的分类: :24 / 714.2.3 进程的状态图图4.8 4.8 进程状态变迁图进程状态变迁图25 / 71进程状态变迁(1)运行状态:进程正在处理机上运行的状态,该进程已获得必要的资源,也获得了处理机,用户程序正在处理机上运行。(2)阻塞状态:进程等待某种事件完成(例如,等待输入/输出操作的完成)而暂时不能运行的状态,处于该状态的进程不能参加竞争处理机,此时,即使分配给它处理机,它也不能运行。(3)就
7、绪状态:该进程运行所需的一切条件都得到满足,但因处理机资源个数少于进程个数,所以该进程不能运行,而必须等待分配处理机资源,一旦获得处理机就立即投入运行。26 / 71状态变迁的方向:(1)就绪状态变化到运行状态 。(2)运行状态变化到就绪状态。 (3)运行状态变化到阻塞状态。 (4)阻塞状态变化到就绪状态。 27 / 714.2.4 进程控制块 为了刻画进程的动态变化,通常把进程表示为由程序段、私有数据块和进程控制块组成,如图4.9(a)所示。程序部分描述进程本身所要完成的功能,而“私有数据块”是接受程序规定操作的一组存储单元的内容,是操作的对象。进程控制块是在进程创建时产生的,当进程存在于系
8、统时(运行),进程控制块就标识了这个进程。如图4.9(b)所示。 28 / 7129 / 71(1)进程标识符: 进程符号名或内部id号。(2)进程当前状态: 本进程目前处于何种状态(运行、就绪、等待)。(3)当前队列指针next: 该项登记了处于同一状态的下一个进程的pcb地址。(4)总链队列指针all_q_next: 该项登记了在系统总链队列中,下一个进程的pcb地址。(5)程序开始地址: 该进程的程序将从此地址开始执行。(6)进程优先级: 反映了进程要求CPU的紧迫程度。(7)CPU现场保护区: 当进程由于某种原因释放处理机时,CPU现场信息被保存在pcb的该区域中。(8)通信信息: 进
9、程间进行通信时所记录的有关信息。(9)家族联系: 指明本进程与家族的联系。(10)占有资源清单30 / 71运行就绪等待时间片到进程调度进程创建进程阻塞进程撤消31 / 7131all_q _nextnextnextnextPCBPCBPCBall_q _next总链队列结构32 / 71进程控制块是进程存在的标志,当系统或父进程创建一个进程时,实际上就是为其建立一个进程控制块。 进程控制块既能标识进程的存在,又能刻画出进程的动态特征,它是一个进程仅有的被系统真正感知的部分。对操作系统而言,所有进程控制块将构成并发执行控制和维护系统工作的依据。进程控制块的作用:进程控制块的作用:33 / 71
10、4.3 进程控制 4.3.1 进程控制的概念 4.3.2 进程创建4.3.3 进程撤消4.3.4 进程等待4.3.5 进程唤醒4.3.6 进程延迟 34 / 714.3.1 进程控制的概念一、原语在操作系统中,某些被进程调用的操作,例如队列操作、对锁的操作、检查启动外设操作等,一旦开始执行就不能被中断,否则就会出现“与时间有关的错误”(如例4.1)。原语就是为实现这些操作而设置的。原语是一种特殊的系统调用命令,它可以完成一个特定的功能。其特点是原语执行时不可中断,所以原语操作具有原子性,它是不可再分的。35 / 71用于进程控制的原语用于进程控制的原语1创建原语2撤消原语3阻塞原语4唤醒原语3
11、6 / 714.3.2 进程创建MODULE 4.5 进程创建Creat(name,priority,start-addr) 在总链队列上查找有无同名的进程; if (有同名进程)return (错误码); 从pcb资源池申请一个空闲的pcb结构; if (无空pcb结构) return(错误码); 用入口参数设置pcb内容; 置进程为“就绪”态; 将新进程的pcb入就绪队列; 将新进程的pcb入总链队列; return(新进程的pid); 37 / 714.3.3 进程撤消MODULE 4.6 进程撤消kill( ) 由运行指针得当前进程的pid;释放本进程所占用得资源给父进程; 该进程从总