操作系统zxj-2进程管理.ppt

上传人:wuy****n92 文档编号:73405205 上传时间:2023-02-18 格式:PPT 页数:137 大小:1.96MB
返回 下载 相关 举报
操作系统zxj-2进程管理.ppt_第1页
第1页 / 共137页
操作系统zxj-2进程管理.ppt_第2页
第2页 / 共137页
点击查看更多>>
资源描述

《操作系统zxj-2进程管理.ppt》由会员分享,可在线阅读,更多相关《操作系统zxj-2进程管理.ppt(137页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第二章第二章 进程管理进程管理进程管理进程管理vv 程序的顺序执行及特征程序的顺序执行及特征程序的顺序执行及特征程序的顺序执行及特征 一、程序执行有固定的时序。一、程序执行有固定的时序。一、程序执行有固定的时序。一、程序执行有固定的时序。二、特征:二、特征:二、特征:二、特征:顺序性顺序性顺序性顺序性:处理机的操作必须严格按照程序所规定的顺处理机的操作必须严格按照程序所规定的顺处理机的操作必须严格按照程序所规定的顺处理机的操作必须严格按照程序所规定的顺序执行序执行序执行序执行 封闭性:封闭性:封闭性:封闭性:程序一旦开始执行,其计算结果不受外界程序一旦开始执行,其计算结果不受外界程序一旦开始执

2、行,其计算结果不受外界程序一旦开始执行,其计算结果不受外界影响影响影响影响 可再现性:可再现性:可再现性:可再现性:只要初始条件相同,一个程序多次重复只要初始条件相同,一个程序多次重复只要初始条件相同,一个程序多次重复只要初始条件相同,一个程序多次重复执行,将得到相同的结果。执行,将得到相同的结果。执行,将得到相同的结果。执行,将得到相同的结果。2.12.12.12.1进程的基本概念进程的基本概念进程的基本概念进程的基本概念I1C1P1I2C2P2进程管理进程管理前趋图定义前趋图定义前趋图定义前趋图定义vv有向无循环图(有向无循环图(有向无循环图(有向无循环图(DAGDAGDAGDAG):描述

3、进程间执行的前后关系描述进程间执行的前后关系描述进程间执行的前后关系描述进程间执行的前后关系vv表示方式:表示方式:表示方式:表示方式:(1 1 1 1)p1-p2p1-p2p1-p2p1-p2(2 2 2 2)-=(p1,p2)|p1-=(p1,p2)|p1-=(p1,p2)|p1-=(p1,p2)|p1 必须在必须在必须在必须在p2p2p2p2开始前完成开始前完成开始前完成开始前完成 vv节点表示:一条语句,一个程序段,一进程。节点表示:一条语句,一个程序段,一进程。节点表示:一条语句,一个程序段,一进程。节点表示:一条语句,一个程序段,一进程。P1P2P3P4进程管理进程管理2.1.3

4、2.1.3 2.1.3 2.1.3 程序的并发执行程序的并发执行程序的并发执行程序的并发执行vv一、多个程序的并发执行(可能性分析)一、多个程序的并发执行(可能性分析)一、多个程序的并发执行(可能性分析)一、多个程序的并发执行(可能性分析)I1I2I3I4C1C2C3C4P1P2P3P4t进程管理进程管理程序的并发执行程序的并发执行程序的并发执行程序的并发执行(2)(2)(2)(2)vv二、特征二、特征二、特征二、特征 间断性:间断性:间断性:间断性:程序之间相互制约的关系,将导致程序具有间程序之间相互制约的关系,将导致程序具有间程序之间相互制约的关系,将导致程序具有间程序之间相互制约的关系,

5、将导致程序具有间断性断性断性断性 失去封闭性:失去封闭性:失去封闭性:失去封闭性:主要由共享资源引起主要由共享资源引起主要由共享资源引起主要由共享资源引起 不可再现性:不可再现性:不可再现性:不可再现性:设设设设N N N N的初值为的初值为的初值为的初值为n n n n。举例:有举例:有举例:有举例:有2 2 2 2个循环程序个循环程序个循环程序个循环程序A A A A和和和和B B B B,它们共享一个变量,它们共享一个变量,它们共享一个变量,它们共享一个变量N N N N,程序,程序,程序,程序A A A A每执行一次时,都要做每执行一次时,都要做每执行一次时,都要做每执行一次时,都要做

6、N:=N+1;BN:=N+1;BN:=N+1;BN:=N+1;B则每次要执行则每次要执行则每次要执行则每次要执行Print(N),Print(N),Print(N),Print(N),然后再做然后再做然后再做然后再做N:=0.N:=0.N:=0.N:=0.若程序若程序若程序若程序A,BA,BA,BA,B以不同的速度运行以不同的速度运行以不同的速度运行以不同的速度运行有以下三种不同的结果有以下三种不同的结果有以下三种不同的结果有以下三种不同的结果进程管理进程管理程序的并发执行程序的并发执行程序的并发执行程序的并发执行(3)(3)(3)(3)vvN:=N+1N:=N+1N:=N+1N:=N+1在在

7、在在 print(N)print(N)print(N)print(N)和和和和 N:=0N:=0N:=0N:=0之之之之 前前前前,则则则则 N N N N值值值值 分分分分 别别别别 为为为为n+1,n+1,0.n+1,n+1,0.n+1,n+1,0.n+1,n+1,0.vvN:=N+1N:=N+1N:=N+1N:=N+1在在在在print(N)print(N)print(N)print(N)和和和和N:=0N:=0N:=0N:=0之后,则之后,则之后,则之后,则N N N N值分别为值分别为值分别为值分别为n,0n,0n,0n,0,1.1.1.1.vvN:=N+1N:=N+1N:=N+1N

8、:=N+1在在在在print(N)print(N)print(N)print(N)和和和和N:=0N:=0N:=0N:=0之间,则之间,则之间,则之间,则N N N N值分别为值分别为值分别为值分别为n,n+1,0.n,n+1,0.n,n+1,0.n,n+1,0.进程管理进程管理进程的特征和状态进程的特征和状态进程的特征和状态进程的特征和状态vv1.1.1.1.进程的特征和定义进程的特征和定义进程的特征和定义进程的特征和定义 一、定义:一、定义:一、定义:一、定义:程序在并发环境下的一次执行过程程序在并发环境下的一次执行过程程序在并发环境下的一次执行过程程序在并发环境下的一次执行过程 1.1.

9、1.1.结构特征结构特征结构特征结构特征 进程:由程序段、数据段及进程控制块三部分构成,进程:由程序段、数据段及进程控制块三部分构成,进程:由程序段、数据段及进程控制块三部分构成,进程:由程序段、数据段及进程控制块三部分构成,总称总称总称总称“进程映像进程映像进程映像进程映像”。2.2.2.2.动态性动态性动态性动态性 由由由由“创建创建创建创建”而产生,由而产生,由而产生,由而产生,由“调度调度调度调度”而执行;由得不到资而执行;由得不到资而执行;由得不到资而执行;由得不到资源而源而源而源而阻塞阻塞阻塞阻塞;由撤消而消亡。(而程序是静态的)。;由撤消而消亡。(而程序是静态的)。;由撤消而消亡

10、。(而程序是静态的)。;由撤消而消亡。(而程序是静态的)。进程管理进程管理进程的特征和状态进程的特征和状态进程的特征和状态进程的特征和状态(2)(2)(2)(2)3.3.3.3.并发性并发性并发性并发性 只有建立了进程,才能并发执行。只有建立了进程,才能并发执行。只有建立了进程,才能并发执行。只有建立了进程,才能并发执行。4.4.4.4.独立性。独立性。独立性。独立性。独立运行,独立获得资源。独立运行,独立获得资源。独立运行,独立获得资源。独立运行,独立获得资源。5.5.5.5.异步性:(间断性)异步性:(间断性)异步性:(间断性)异步性:(间断性)进程管理进程管理进程与程序区别进程与程序区别

11、进程与程序区别进程与程序区别程序是静态的,进程是动态的;进程更能真实地描述并发,而程序不能;一个程序可对应多个进程;进程有生命周期,有诞生有消亡,短暂的;而程序是相对长久的;程序可作为软件资源长期保存,进程只是一次执行过程,是暂时的;进程是系统分配调度的独立单位,能与其他进程并发执行;进程具有创建其他进程的功能,而程序没有。进程管理进程管理进程的特征和状态进程的特征和状态进程的特征和状态进程的特征和状态(3)(3)(3)(3)vv2.2.2.2.进程的三种基本状态进程的三种基本状态进程的三种基本状态进程的三种基本状态 就绪状态:就绪状态:就绪状态:就绪状态:执行状态执行状态执行状态执行状态 阻

12、塞状态阻塞状态阻塞状态阻塞状态就绪就绪阻塞阻塞执行执行时间片完时间片完进程调度进程调度I/O请求请求I/O完成完成图图25 进程的三种基本状态及其转换进程的三种基本状态及其转换进程管理进程管理进程的特征和状态进程的特征和状态进程的特征和状态进程的特征和状态(4)(4)(4)(4)vv3.3.3.3.挂起状态(被换出内存的状态)挂起状态(被换出内存的状态)挂起状态(被换出内存的状态)挂起状态(被换出内存的状态)引入原因引入原因引入原因引入原因 终端用户请求终端用户请求终端用户请求终端用户请求 父进程请求父进程请求父进程请求父进程请求 负荷调节需要(实时系统)负荷调节需要(实时系统)负荷调节需要(

13、实时系统)负荷调节需要(实时系统)操作系统需要操作系统需要操作系统需要操作系统需要 进程状态的转换进程状态的转换进程状态的转换进程状态的转换(图图图图2-6)2-6)2-6)2-6)活动就绪活动就绪活动就绪活动就绪 静止就绪静止就绪静止就绪静止就绪 活动阻塞活动阻塞活动阻塞活动阻塞 静止阻塞静止阻塞静止阻塞静止阻塞 静止就绪静止就绪静止就绪静止就绪 活动就绪活动就绪活动就绪活动就绪 静止阻塞静止阻塞静止阻塞静止阻塞 活动阻塞活动阻塞活动阻塞活动阻塞进程管理进程管理图图图图2 2 2 26 6 6 6 具有挂起状态的进程状态图具有挂起状态的进程状态图具有挂起状态的进程状态图具有挂起状态的进程状态

14、图执行执行活动活动就绪就绪静止静止就绪就绪活动活动阻塞阻塞静止静止阻塞阻塞激活激活挂起挂起激活激活挂起挂起释放释放释放释放挂起挂起请求请求I/O进程管理进程管理思考题思考题思考题思考题1 1如果系统中有如果系统中有N N个进程,运行的进程最多几个,最个进程,运行的进程最多几个,最少几个;就绪进程最多几个最少几个;阻塞进程最少几个;就绪进程最多几个最少几个;阻塞进程最多几个,最少几个?多几个,最少几个?2.2.有没有这样的状态转换,为什么?有没有这样的状态转换,为什么?(1 1)阻塞阻塞运行;运行;(2 2)就绪就绪阻塞阻塞进程管理进程管理进程管理进程管理实验实验实验实验v写一个程序描述进程状态

15、迁移过程。写一个程序描述进程状态迁移过程。v要求:要求:提供导致进程状态变化的调用接口,包括创建、提供导致进程状态变化的调用接口,包括创建、删除、调度、阻塞、时间到、挂起、激活等。删除、调度、阻塞、时间到、挂起、激活等。实现进程列表显示的接口。实现进程列表显示的接口。注:这里设计的进程是一个假设的对象实体,是注:这里设计的进程是一个假设的对象实体,是由程序自己创建和删除,不是系统维护的进程。由程序自己创建和删除,不是系统维护的进程。进程管理进程管理进程控制块进程控制块进程控制块进程控制块vv1.1.1.1.进程控制块的作用进程控制块的作用进程控制块的作用进程控制块的作用 是进程存在的唯一标志;

16、是进程存在的唯一标志;是进程存在的唯一标志;是进程存在的唯一标志;PCB(PCB(PCB(PCB(p p p process rocess rocess rocess c c c control ontrol ontrol ontrol b b b block)lock)lock)lock)常驻内存常驻内存常驻内存常驻内存vv2.2.2.2.进程控制块中的信息进程控制块中的信息进程控制块中的信息进程控制块中的信息 标识、处理机状态,进标识、处理机状态,进标识、处理机状态,进标识、处理机状态,进程调度信息,进程控制程调度信息,进程控制程调度信息,进程控制程调度信息,进程控制信息信息信息信息pid

17、进程状态进程状态现场现场优先级优先级阻塞原因阻塞原因程序地址程序地址同步机制同步机制资源清单资源清单链接指针链接指针进程管理进程管理进程控制块进程控制块进程控制块进程控制块(2)(2)(2)(2)vv3.PCB3.PCB3.PCB3.PCB的组织的组织的组织的组织 链接链接链接链接 索引索引索引索引执行指针执行指针就绪队列指针就绪队列指针阻塞队列指针阻塞队列指针空闲队列指针空闲队列指针PCB14PCB23PCB30PCB48PCB5PCB67PCB79PCB80PCB91进程管理进程管理等待队列示例等待队列示例等待队列示例等待队列示例struct wait_queue struct wait_

18、queue struct task_struct*task;struct task_struct*task;struct wait_queue*next;struct wait_queue*next;PCBPCBPCB进程管理进程管理进程控制块进程控制块进程控制块进程控制块(3)(3)(3)(3)vv3.PCB3.PCB3.PCB3.PCB的组织的组织的组织的组织 索引索引索引索引(p34(p34(p34(p34图图图图2-8)2-8)2-8)2-8)PCB1PCB2PCB3PCB4PCB5PCB6PCB7执行指针执行指针就绪表指针就绪表指针阻塞表指针阻塞表指针进程管理进程管理补充补充补充补充

19、vvPCBPCBPCBPCB和进程的代码数据放在一起吗?和进程的代码数据放在一起吗?和进程的代码数据放在一起吗?和进程的代码数据放在一起吗?系统态和用户态系统态和用户态系统态和用户态系统态和用户态 系统空间和用户空间系统空间和用户空间系统空间和用户空间系统空间和用户空间vv系统调用和普通调用的区别?系统调用和普通调用的区别?系统调用和普通调用的区别?系统调用和普通调用的区别?系统调用会引起从用户态进入核心态系统调用会引起从用户态进入核心态系统调用会引起从用户态进入核心态系统调用会引起从用户态进入核心态进程管理进程管理进程进程进程进程-进程控制进程控制进程控制进程控制v处理机执行状态系统态用户态

20、v进程控制机构内核:中断处理,时钟管理,进程管理,存储器管理,设备管理等。原语(primitive)由若干条指令构成的“原子操作(atomic operation)”过程,作为一个整体而不可分割要么全都完成,要么全都不做。许多系统调用就是原语。进程管理进程管理2.2 2.2 2.2 2.2 进程控制进程控制进程控制进程控制vv2.2.1 2.2.1 2.2.1 2.2.1 进程的创建进程的创建进程的创建进程的创建vv一、进程图:一、进程图:一、进程图:一、进程图:描述了进程的家族关系:(描述了进程的家族关系:(描述了进程的家族关系:(描述了进程的家族关系:(P34 P34 P34 P34 图图

21、图图2-92-92-92-9)子进程可继承父的资源,撤消时应归还给父进子进程可继承父的资源,撤消时应归还给父进子进程可继承父的资源,撤消时应归还给父进子进程可继承父的资源,撤消时应归还给父进程,父的撤消会撤消全部子进程。程,父的撤消会撤消全部子进程。程,父的撤消会撤消全部子进程。程,父的撤消会撤消全部子进程。根ABCGFED祖先进程管理进程管理v二、引起创建进程的事件:二、引起创建进程的事件:二、引起创建进程的事件:二、引起创建进程的事件:1.1.1.1.用户登录:用户登录:用户登录:用户登录:为终端用户建立一进程为终端用户建立一进程为终端用户建立一进程为终端用户建立一进程2.2.2.2.作业

22、调度:(不是进程调度)作业调度:(不是进程调度)作业调度:(不是进程调度)作业调度:(不是进程调度)为被调度的作业建立进程为被调度的作业建立进程为被调度的作业建立进程为被调度的作业建立进程3.3.3.3.提供服务:提供服务:提供服务:提供服务:如要打印时建立打印进程如要打印时建立打印进程如要打印时建立打印进程如要打印时建立打印进程4.4.4.4.应用请求:应用请求:应用请求:应用请求:由应用程序建立多个进程由应用程序建立多个进程由应用程序建立多个进程由应用程序建立多个进程进程管理进程管理2.2.1 2.2.1 2.2.1 2.2.1 进程的创建进程的创建进程的创建进程的创建(2)(2)(2)(

23、2)vv三、进程的创建:(三、进程的创建:(三、进程的创建:(三、进程的创建:(creatcreatcreatcreat原语)原语)原语)原语)1.1.1.1.申请空白申请空白申请空白申请空白PCBPCBPCBPCB(一个系统的(一个系统的(一个系统的(一个系统的PCBPCBPCBPCB是有限的)是有限的)是有限的)是有限的)2.2.2.2.为新进程分配资源(不同于一般的分配,为新进程分配资源(不同于一般的分配,为新进程分配资源(不同于一般的分配,为新进程分配资源(不同于一般的分配,PCB-LISTPCB-LISTPCB-LISTPCB-LIST在一个特殊区域)在一个特殊区域)在一个特殊区域)

24、在一个特殊区域)3.3.3.3.初始化初始化初始化初始化PCBPCBPCBPCB 4.4.4.4.将新进程插入就绪队列。将新进程插入就绪队列。将新进程插入就绪队列。将新进程插入就绪队列。进程管理进程管理一个典型的进程创建原语一个典型的进程创建原语Create(s0,m0,pi)p=Get_New_PCB();/分配新的分配新的PCB pid=Get_New_PID();/分配进程的分配进程的PID pID=pid;/设置进程的设置进程的PID p-CPU_State=s0;/CPU的状态的状态 p-Memory=m0;/内存内存 p-Priority=pi;/优先级优先级 p-Status.T

25、ype=Ready;/进程状态进程状态 p-Status.List=RL;/进程队列进程队列 Insert(RL,p);/将进程将进程p插入就绪队列插入就绪队列 Scheduler();/调度程序调度程序 进程管理进程管理2.2.2 2.2.2 2.2.2 2.2.2 进程的终止进程的终止进程的终止进程的终止v一、引起进程终止的事件一、引起进程终止的事件一、引起进程终止的事件一、引起进程终止的事件 1.1.1.1.正常结束:进程运行完成而推出正常结束:进程运行完成而推出正常结束:进程运行完成而推出正常结束:进程运行完成而推出 2.2.2.2.异常结束:进程因异常而强行结束异常结束:进程因异常而

26、强行结束异常结束:进程因异常而强行结束异常结束:进程因异常而强行结束 越界错误;保护错;非法指令;特权指令错;运行越界错误;保护错;非法指令;特权指令错;运行越界错误;保护错;非法指令;特权指令错;运行越界错误;保护错;非法指令;特权指令错;运行超时;等待超时;算术运算错;超时;等待超时;算术运算错;超时;等待超时;算术运算错;超时;等待超时;算术运算错;I/OI/OI/OI/O故障故障故障故障 3.3.3.3.外界干预:外界干预:外界干预:外界干预:a.a.a.a.系统员系统员系统员系统员killkillkillkill进程;进程;进程;进程;b.b.b.b.父进程终止;父进程终止;父进程终

27、止;父进程终止;c.c.c.c.父进程请求。父进程请求。父进程请求。父进程请求。进程管理进程管理2.2.2 2.2.2 2.2.2 2.2.2 进程的终止进程的终止进程的终止进程的终止(2)(2)(2)(2)vv二、进程的终止过程(终止进程的实质就是回收二、进程的终止过程(终止进程的实质就是回收二、进程的终止过程(终止进程的实质就是回收二、进程的终止过程(终止进程的实质就是回收PCBPCBPCBPCB)(1 1 1 1)检查进程状态;)检查进程状态;)检查进程状态;)检查进程状态;(2 2 2 2)执行态)执行态)执行态)执行态中止,且置调度标志为真。中止,且置调度标志为真。中止,且置调度标志

28、为真。中止,且置调度标志为真。(3 3 3 3)有无子孙需终止。)有无子孙需终止。)有无子孙需终止。)有无子孙需终止。(4 4 4 4)归还资源给其父进程或系统。)归还资源给其父进程或系统。)归还资源给其父进程或系统。)归还资源给其父进程或系统。(5 5 5 5)从)从)从)从PCBPCBPCBPCB队列中移出队列中移出队列中移出队列中移出PCB.(PCB.(PCB.(PCB.(并回收并回收并回收并回收PCB)PCB)PCB)PCB)进程管理进程管理进程进程进程进程-进程控制进程控制进程控制进程控制一个典型进程终止原语如下:Destroy(pid)p=Get_PCB(pid);/获取进程控制块

29、 Kill_Tree(p);/删除整个进程树 Scheduler();/调度器进程管理进程管理2.2.3 2.2.3 2.2.3 2.2.3 进程的阻塞与唤醒进程的阻塞与唤醒进程的阻塞与唤醒进程的阻塞与唤醒v一、引起进程阻塞和唤醒的事件一、引起进程阻塞和唤醒的事件一、引起进程阻塞和唤醒的事件一、引起进程阻塞和唤醒的事件 1.1.1.1.请求系统服务而得不到满足时,如问系统请请求系统服务而得不到满足时,如问系统请请求系统服务而得不到满足时,如问系统请请求系统服务而得不到满足时,如问系统请求打印。求打印。求打印。求打印。2.2.2.2.启动某种操作而需同步时:如该操作和请求启动某种操作而需同步时:

30、如该操作和请求启动某种操作而需同步时:如该操作和请求启动某种操作而需同步时:如该操作和请求该操作的进程需同步运行(即非异步操作)。该操作的进程需同步运行(即非异步操作)。该操作的进程需同步运行(即非异步操作)。该操作的进程需同步运行(即非异步操作)。3.3.3.3.新数据尚未到达:如进程新数据尚未到达:如进程新数据尚未到达:如进程新数据尚未到达:如进程A A A A写,进程写,进程写,进程写,进程B B B B读,则读,则读,则读,则A A A A未写,完未写,完未写,完未写,完B B B B不能读。不能读。不能读。不能读。4.4.4.4.无新工作可做。无新工作可做。无新工作可做。无新工作可做

31、。进程管理进程管理2.2.3 2.2.3 2.2.3 2.2.3 进程的阻塞与唤醒进程的阻塞与唤醒进程的阻塞与唤醒进程的阻塞与唤醒(2)(2)(2)(2)vv二、进程阻塞过程:二、进程阻塞过程:二、进程阻塞过程:二、进程阻塞过程:是进程自身的一种主动行为是进程自身的一种主动行为是进程自身的一种主动行为是进程自身的一种主动行为 a.a.a.a.调调调调blockblockblockblock原语原语原语原语 b.b.b.b.停止执行,修改停止执行,修改停止执行,修改停止执行,修改PCBPCBPCBPCB入阻塞队列(一个或多个)入阻塞队列(一个或多个)入阻塞队列(一个或多个)入阻塞队列(一个或多个

32、),并转调度。,并转调度。,并转调度。,并转调度。vv三、唤醒过程三、唤醒过程三、唤醒过程三、唤醒过程 其它相关进程完成。其它相关进程完成。其它相关进程完成。其它相关进程完成。a.wakeupa.wakeupa.wakeupa.wakeup原语原语原语原语 b.b.b.b.修改修改修改修改PCBPCBPCBPCB,入就绪队列,入就绪队列,入就绪队列,入就绪队列 可见,有可见,有可见,有可见,有blockblockblockblock原语,在其它进程中就应有原语,在其它进程中就应有原语,在其它进程中就应有原语,在其它进程中就应有wakeupwakeupwakeupwakeup原语。原语。原语。原

33、语。进程管理进程管理Block()/获取当前进程的进程控制块 p=Get_PCB();/保存当前进程的状态 s=p-Status.Type;cpu=p-Processor_ID;/处理机状态/保存处理机现场 p-CPU_State=Interrupt(cpu);/将进程的状态改为阻塞 p-Status.Type=Blocked;Insert(BL,p);/将进程插入等待队列 Scheduler();阻塞原语的实现过程阻塞原语的实现过程进程管理进程管理Wakeup(pid)/获取进程控制P=Get_PCB(pid);/从阻塞队列中移出进程pRemove(p-Status.List,p);/进程的

34、状态改为就p-Status.Type=Ready;/将进程插入到就绪队列Insert(RL,p);/调度程序Scheduler();v唤醒原语的执行过程如下:唤醒原语的执行过程如下:进程管理进程管理2.2.4 2.2.4 2.2.4 2.2.4 进程的挂起与激活进程的挂起与激活进程的挂起与激活进程的挂起与激活 vv一、进程的挂起过程一、进程的挂起过程一、进程的挂起过程一、进程的挂起过程 由进程自己或其父进程调由进程自己或其父进程调由进程自己或其父进程调由进程自己或其父进程调suspendsuspendsuspendsuspend原语完成,将该进原语完成,将该进原语完成,将该进原语完成,将该进程

35、程程程PCBPCBPCBPCB移到指定区域,注意状态的改变,有可能要重移到指定区域,注意状态的改变,有可能要重移到指定区域,注意状态的改变,有可能要重移到指定区域,注意状态的改变,有可能要重新调度。新调度。新调度。新调度。vv二、进程的激活过程。二、进程的激活过程。二、进程的激活过程。二、进程的激活过程。activeactiveactiveactive原语(如在外存,调入内存,改变状态,根原语(如在外存,调入内存,改变状态,根原语(如在外存,调入内存,改变状态,根原语(如在外存,调入内存,改变状态,根据情况看是否调度,如抢先或非抢先)。据情况看是否调度,如抢先或非抢先)。据情况看是否调度,如抢

36、先或非抢先)。据情况看是否调度,如抢先或非抢先)。vv阻塞、唤醒一般由阻塞、唤醒一般由阻塞、唤醒一般由阻塞、唤醒一般由OSOSOSOS实现,而挂起与激活可由用户干预。实现,而挂起与激活可由用户干预。实现,而挂起与激活可由用户干预。实现,而挂起与激活可由用户干预。进程管理进程管理进程进程进程进程-进程控制进程控制进程控制进程控制v实例研究:Linux和Windows系统创建进程LinuxLinux系统中进程创建系统中进程创建fork fork 在在LinuxLinux系统中,用户或系统可以使用系统调用系统中,用户或系统可以使用系统调用forkfork来创建一个来创建一个新的进程。新的进程。for

37、kfork的函数原形为:的函数原形为:pid_t fork()pid_t fork()当一个进程调用当一个进程调用forkfork创建一个子进程后,父进程和子进程都在自创建一个子进程后,父进程和子进程都在自己独立的地址空间内执行。它们之间不共享任何地址空间,但是己独立的地址空间内执行。它们之间不共享任何地址空间,但是父子进程具有相同的程序代码、数据和堆栈段,父子进程具有相同的程序代码、数据和堆栈段,因此,为了区因此,为了区别运行中的父子进程,别运行中的父子进程,forkfork系统调用向父子进程返回不同的值。系统调用向父子进程返回不同的值。它向子进程返回它向子进程返回0 0,而向父进程返回子进

38、程的,而向父进程返回子进程的PIDPID。进程管理进程管理.Beforefork()After.forkfork执行前执行前一个控制流进入内核一个控制流进入内核forkfork模块模块。Beforefork()After。Beforefork()Afterforkforkfork执行后执行后调用后,从调用后,从forkfork返回两个控制流返回两个控制流父进程父进程子进程子进程进程管理进程管理/*-The file create.c introduces the use of fork.-*/#include main()int pid;printf(“Before:my pid is%d.n

39、”,getpid();pid=fork();/create new process if(pid=-1)/出错处理出错处理 perror(“Can not fork process!”);/error else if(pid=0)/子进程代码子进程代码 printf(“I am the child.My pid is%d.n”,getpid();else /父进程代码父进程代码 printf(“I am the parent.My child is%d.n”,pid);进程管理进程管理进程进程进程进程-进程控制进程控制进程控制进程控制vWindows系统中进程的创建CreateProcess

40、在windows系统,一个进程可以调用win32 API的CreateProcess函数来创建一个新的进程及其主线程,以执行指定的任务。在利用CreateProcess建立进程时,操作系统要为新进程分配新的地址空间和资源,建立新的主线程。一旦新进程建立,父进程仍然使用原来的地址空间继续执行,而新进程则在新的地址空间执行一个新的程序。CreateProcess含有10个参数来指定建立进程的方式,具体参数的含义可参考相关的Win32 API手册。进程管理进程管理#include#include#include STARTUPINFO startInfo;PROCESS_INFORMATION pr

41、ocessInfo;strcpy(lpCommandLine,“c:WINNTSYSTEM32NOTEPAD.EXE temp.txt”);ZeroMemory(&startupInfo,sizeof(startInfo);startInfo.cb=sizeof(startInfo);if(!CreateProcess(NULL,lpCommandLine,NULL,NULL,FALSE,HIGH_PRIORTY_CLASS CREATE_NEW_CONSOLE,NULL,NULL,&startInfo,&processInfo)fprintf(stderr,”CreateProcess fa

42、iled!”);ExitProcess(1);CloseHandle(&processInfo.hThread);进程管理进程管理2.32.32.32.3进程同步进程同步进程同步进程同步v同同同同步步步步:并并并并发发发发执执执执行行行行的的的的诸诸诸诸进进进进程程程程之之之之间间间间能能能能有有有有效效效效地地地地共共共共享享享享资资资资源源源源和和和和相相相相互互互互合合合合作作作作,从从从从而而而而使使使使程序的执行具有可再现性。程序的执行具有可再现性。程序的执行具有可再现性。程序的执行具有可再现性。进程管理进程管理2.3.1 2.3.1 2.3.1 2.3.1 进程同步的基本概念进程同

43、步的基本概念进程同步的基本概念进程同步的基本概念vv1.1.1.1.两种形式的制约关系两种形式的制约关系两种形式的制约关系两种形式的制约关系 资源共享关系:(进程间接制约)资源共享关系:(进程间接制约)资源共享关系:(进程间接制约)资源共享关系:(进程间接制约)需互斥地访问临界资源。需互斥地访问临界资源。需互斥地访问临界资源。需互斥地访问临界资源。相互合作关系:(进程直接制约)相互合作关系:(进程直接制约)相互合作关系:(进程直接制约)相互合作关系:(进程直接制约)vv2.2.2.2.临界资源:(一次仅允许一个进程访问的资源)临界资源:(一次仅允许一个进程访问的资源)临界资源:(一次仅允许一个

44、进程访问的资源)临界资源:(一次仅允许一个进程访问的资源)引起不可再现性是因为临界资源没有互斥访问。引起不可再现性是因为临界资源没有互斥访问。引起不可再现性是因为临界资源没有互斥访问。引起不可再现性是因为临界资源没有互斥访问。进程管理进程管理进程的同步进程的同步v进程同步举例:公共汽车中的司机和售票员进程同步举例:公共汽车中的司机和售票员司机司机 P1 售票员售票员 P2 while(true)while(true)关门;关门;启动车辆;启动车辆;正常运行;正常运行;售票;售票;到站停车;到站停车;开门;开门;进程的同步是指系统中多个进程中发生的事件存在某种时序进程的同步是指系统中多个进程中发

45、生的事件存在某种时序关系,需要相互合作,共同完成一项任务。具体说,一个进关系,需要相互合作,共同完成一项任务。具体说,一个进程运行到某一点时要求另一伙伴进程为它提供消息,在未获程运行到某一点时要求另一伙伴进程为它提供消息,在未获得消息之前,该进程处于等待状态,获得消息后被唤醒进入得消息之前,该进程处于等待状态,获得消息后被唤醒进入就绪态。就绪态。进程管理进程管理进程的互斥进程的互斥例如:例如:系统中只有一台打印机,进程系统中只有一台打印机,进程p1p1,p2p2都需要都需要使用打印机。使用打印机。临界资源(临界资源(Critical ResourceCritical Resource)一次只能

46、被一个进程使用一次只能被一个进程使用形式:硬件,软件:变量、数据、队列等形式:硬件,软件:变量、数据、队列等当临界资源由一个进程占用后,其它进程如果要使用它,必须等待占用进程使用完毕并把它释放后,才能由另一个进程使用。多个进程在共享临界资源时的这种制约关系称为进程的互斥。进程管理进程管理生产者消费者问题生产者消费者问题生产者消费者问题生产者消费者问题Var n,integer;Var n,integer;Type item=;Type item=;var buffer:array0,1,n-1 of item;var buffer:array0,1,n-1 of item;in,out:0,1

47、,n-1;in,out:0,1,n-1;counter:0,1,n;counter:0,1,n;进程管理进程管理生产者消费者问题生产者消费者问题生产者消费者问题生产者消费者问题producer:repeat produce an item in nextp;while counter=n do no-op;bufferin:=nextp;in:=(in+1)mod n;counter:=counter+1;until false;consumer:repeatwhile counter=0 do no-op;nextc:=bufferout;out:=(out+1)mod n;counter:

48、=counter-1;consumer the item in nextc;until false;进程管理进程管理生产者消费者问题(生产者消费者问题(生产者消费者问题(生产者消费者问题(2 2 2 2)设设设设countercounter的初值为的初值为的初值为的初值为5 5 5 5register1:=counter;register2:=counter;register1:=counter;register2:=counter;register1:=register1+1;register2:=register2-1;register1:=register1+1;register2:=r

49、egister2-1;counter:=register1;counter:=register2;counter:=register1;counter:=register2;register1:=counter;register1:=counter;(register1:=5)(register1:=5)register1:=register1+1;register1:=register1+1;(register1:=6)(register1:=6)register2:=counter;register2:=counter;(register2:=5)(register2:=5)registe

50、r2:=register2-1;register2:=register2-1;(register2:=4)(register2:=4)counter:=register1;counter:=register1;(counter:=6)(counter:=6)counter:=register2;counter:=register2;(counter:=4)(counter:=4)进程管理进程管理vv定义:进程访问临界资源的那段代码。定义:进程访问临界资源的那段代码。定义:进程访问临界资源的那段代码。定义:进程访问临界资源的那段代码。vv由于临界区的出现,需要对进入临界区的进程加以管由于临界区的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁