【教学课件】第二章进程管理.ppt
《【教学课件】第二章进程管理.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第二章进程管理.ppt(153页珍藏版)》请在三一办公上搜索。
1、1,2023/8/7,第二章 进程管理,2.1 进程的基本概念2.2 进程控制2.3 进程同步2.4 经典进程同步问题2.5 进程通信2.6 管程与线程,2,2023/8/7,2.1 进程的基本概念,2.1.1 前趋图2.1.2 程序顺序执行及特征2.1.3 程序并发执行及特征2.1.4 进程的特征和定义2.1.5 进程状态及状态转换图,3,2023/8/7,前趋图举例,=(P1,P2),(P1,P3),(P1,P4),(P2,P5),(P3,P5),(P4,P6),(P5,P7),(P6,P7)PiPj称Pi是Pj的直接前趋,Pj是Pi的直接后继,4,2023/8/7,前趋图中必须不存在循环
2、,图例中存在前趋关系S2S3和S3 S2,显然,这种前趋关系是无法满足的。,5,2023/8/7,2.1 进程的基本概念,2.1.1 前趋图2.1.2 程序顺序执行及特征2.1.3 程序并发执行及特征2.1.4 进程的特征和定义2.1.5 进程状态及状态转换图,6,2023/8/7,程序顺序执行,程序执行过程中通常存在顺序执行问题构成程序的若干个程序段之间组成程序段的多条语句之间,S1:a:=x+y;S2:b:=a-5;S3:c:=b+1;,7,2023/8/7,程序顺序执行时的特征,顺序性处理机的操作,严格按照规定顺序执行封闭性封闭环境下运行,程序独占全机资源只有当前运行程序才能改变资源状态
3、程序执行结果不受外界因素的影响可再现性只要程序执行时的环境和初始条件相同,程序重复执行结果相同,8,2023/8/7,程序顺序执行时的特性,将为程序员检测和校正程序的错误,带来极大的方便,9,2023/8/7,2.1 进程的基本概念,2.1.1 前趋图2.1.2 程序顺序执行及特征2.1.3 程序并发执行及特征2.1.4 进程的特征和定义2.1.5 进程状态及状态转换图,10,2023/8/7,程序并发执行例1,程序段语句间并发执行S1:a:=x+2 S2:b:=y+4S3:c:=a+b S4:d:=c+6,11,2023/8/7,程序并发执行例2,一批程序IiCi Pi并发执行IiIi+1
4、CiCi+1 PiPi+1,12,2023/8/7,程序并发执行时的特征,间断性“执行暂停执行执行”的活动规律失去封闭性系统资源共享及资源状态改变的多样性,致使程序运行失去封闭性,程序运行必然会受到其它程序的影响不可再现性并发执行的程序,计算结果与其执行速度及时间有关,13,2023/8/7,程序并发执行不可再现性举例,共享初值为0的变量N的两程序段A、BA:N:=N+1B:Print(N);N:=0执行结果分析先A:1,1,0中A:0,1,0后A:0,0,1,14,2023/8/7,2.1 进程的基本概念,2.1.1 前趋图2.1.2 程序顺序执行及特征2.1.3 程序并发执行及特征2.1.
5、4 进程的特征和定义2.1.5 进程状态及状态转换图,15,2023/8/7,进程的引入,并发、共享及多道程序环境基于程序的概念已不能完整、有效地描述并发程序在内存中的运行状态必须建立并发程序的新的描述和控制机制基于程序段、数据段和进程控制块而引入进程的概念以对应程序的运行过程进程控制块存放了进程标识符、进程运行的当前状态、程序和数据的地址以及关于该程序运行时的CPU环境信息,16,2023/8/7,进程的定义,进程是可并发执行的程序在一个数据集合上的运行过程,亦即进程实体的运行过程进程实体由程序段、数据段及进程控制块三部分构成进程是系统进行资源分配和调度的一个独立单位,17,2023/8/7
6、,进程的特征与程序的区别与联系,结构特征程序段、数据段及进程控制块动态性生命周期及“执行”本质并发性共存于内存、宏观同时运行独立性调度、资源分配、运行异步性推进相互独立、速度不可预知,18,2023/8/7,2.1 进程的基本概念,2.1.1 前趋图2.1.2 程序顺序执行及特征2.1.3 程序并发执行及特征2.1.4 进程的特征和定义2.1.5 进程状态及状态转换图,19,2023/8/7,进程的基本状态及状态转换,20,2023/8/7,引入挂起状态的可能原因,终端用户的请求程序运行期间发现可疑问题暂停进程父进程的请求考察、修改或协调子进程操作系统的需要运行中资源使用情况的检查和记账负载调
7、节的需要负荷调节和保证实时系统正常运行,21,2023/8/7,具有挂起状态的进程状态图,22,2023/8/7,2.1 进程的基本概念,2.1.1 前趋图2.1.2 程序顺序执行及特征2.1.3 程序并发执行及特征2.1.4 进程的特征和定义2.1.5 进程状态及状态转换图,23,2023/8/7,作业题,2.1 比较程序的顺序执行和并发执行。2.2 比较程序和进程。2.3 试对进程的状态及状态转换进行总结,注意状态转换的物理含义及转化条件。,24,2023/8/7,第二章 进程管理,2.1 进程的基本概念2.2 进程控制2.3 进程同步2.4 经典进程同步问题2.5 进程通信2.6 管程与
8、线程,25,2023/8/7,2.2 进程控制,2.2.1 进程控制块 进程图2.2.3 进程的创建与终止2.2.4 进程的阻塞与唤醒2.2.5 进程的挂起与激活 UNIX进程描述与控制,26,2023/8/7,进程控制块,进程实体的一部分,拥有描述进程情况及控制进程运行所需的全部信息的记录性数据结构使一个在多道程序环境下不能独立运行的程序,成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程操作系统控制和管理并发执行进程的依据进程存在的惟一标志常驻内存并存放于操作系统专门开辟的PCB区,?,27,2023/8/7,进程控制块中的信息,进程标识符内/外部、父/子进程、用户标识符处理器状
9、态信息通用、PC、PSW、用户栈指针寄存器进程调度信息进程状态、进程优先级、事件及其它进程控制信息程序和数据地址、进程同步通信机制资源清单、链接指针,28,2023/8/7,进程控制块的组织方式1链接方式,29,2023/8/7,进程控制块的组织方式2索引方式,执行指针,就绪表指针,阻塞表指针,就绪索引表,阻塞索引表,30,2023/8/7,2.2 进程控制,2.2.1 进程控制块 进程图2.2.3 进程的创建与终止2.2.4 进程的阻塞与唤醒2.2.5 进程的挂起与激活 UNIX进程描述与控制,31,2023/8/7,进程图(进程树),描述进程家族关系的有向树结点/有向边父/子进程祖父进程/
10、祖先,有什么用?,32,2023/8/7,2.2 进程控制,2.2.1 进程控制块 进程图2.2.3 进程的创建与终止2.2.4 进程的阻塞与唤醒2.2.5 进程的挂起与激活 UNIX进程描述与控制,33,2023/8/7,引起创建/终止进程的事件,用户登录分时系统中,验证为合法的终端用户登录作业调度批处理系统中作业调度程序调度到某作业提供服务运行中的用户程序提出某种请求应用请求基于应用进程的需要由其自身创建新进程,正常结束批处理系统中Halt,分时系统中LogsOff异常结束越界错误、保护错特权指令错非法指令错运行超时、等待超时算术运算错、I/O故障外界干预操作员或操作系统干预父进程请求/终
11、止,34,2023/8/7,进程创建/终止过程,Create()原语1、分配标识符,并申请空白进程控制块2、为新进程的程序和数据及用户栈分配必要的内存空间所需内存大小问题3、初始化进程控制块自身/父进程标识符处理机状态/调度信息4、将新进程插入到就绪进程队列,Terminate()原语1、检索被终止进程PCB,读取进程状态2、若其正处于执行状态,应立即中止执行并设置调度标志为真,以指示调度新进程3、终止子孙进程4、资源归还5、移出被终止进程PCB,等待其它程序利用,35,2023/8/7,2.2 进程控制,2.2.1 进程控制块 进程图2.2.3 进程的创建与终止2.2.4 进程的阻塞与唤醒2
12、.2.5 进程的挂起与激活 UNIX进程描述与控制,36,2023/8/7,引起进程阻塞/唤醒的事件,请求系统服务但不能立即满足启动某种操作且必须在该操作完成之后才能继续执行新数据尚未到达相互合作进程的一方需首先获得另一进程数据才能继续无新工作可做特定功能系统进程当完成任务且暂无任务,系统服务满足操作完成数据到达新任务出现,37,2023/8/7,进程阻塞/唤醒过程,Block()原语1、先立即停止执行,把进程控制块中的现行状态由“执行”改为阻塞,并将它插入到对应的阻塞队列中2、转调度程序进行重新调度,将处理机分配给另一就绪进程,并进行切换,Wakeup()原语首先把被阻塞进程从等待该事件的阻
13、塞进程队列中移出,将其PCB中的现行状态由阻塞改为就绪,然后再将该进程插入到就绪队列中,?,原语配对!,38,2023/8/7,2.2 进程控制,2.2.1 进程控制块 进程图2.2.3 进程的创建与终止2.2.4 进程的阻塞与唤醒2.2.5 进程的挂起与激活 UNIX进程描述与控制,39,2023/8/7,进程挂起/激活过程,Suspend()原语1、检查被挂进程现行状态并修改和插队2、复制PCB到指定区域3、若被挂进程正在执行则转向调度程序重新调度,Activate()原语1、检查进程现行状态并修改和插队2、若有新进程进入就绪队列且采用了抢占式调度策略,则检查和决定是否重新调度,?,?,4
14、0,2023/8/7,2.2 进程控制,2.2.1 进程控制块 进程图2.2.3 进程的创建与终止2.2.4 进程的阻塞与唤醒2.2.5 进程的挂起与激活 UNIX进程描述与控制,41,2023/8/7,UNIX进程控制用数据结构,进程表,本进程区表,内存,CODE,DATA,STACK,系统区表,进程U区,42,2023/8/7,UNIX进程状态转换图,43,2023/8/7,进程映像,进程是进程映像的执行过程,进程映像则是正在运行进程的实体用户级上下文用户程序(正文区、数据区)、用户栈区、共享存储区寄存器上下文PC、PSW、栈指针、通用寄存器系统级上下文进程表项、U区、本进程区表、系统区表
15、项、页表核心栈、若干层寄存器上下文,44,2023/8/7,进程控制,fork系统调用创建新进程0号(对换)进程=1号(始祖)进程exit系统调用实现进程自我终止exec系统调用改变进程原有代码(更新用户级上下文)wait系统调用阻塞主调进程并等待子进程终止,45,2023/8/7,进程调度与切换,引起进程调度的原因时钟中断、核心态执行返回、放弃处理机调用算法动态优先数轮转调度算法进程优先级分类内核优先级(可/不可中断)、用户优先级优先数计算基本用户优先数、进程本次CPU使用时间进程切换,46,2023/8/7,2.2 进程控制,2.2.1 进程控制块 进程图2.2.3 进程的创建与终止2.2
16、.4 进程的阻塞与唤醒2.2.5 进程的挂起与激活 UNIX进程描述与控制,47,2023/8/7,作业题,2.4 试根据你自己的理解,采用类C语言设计和描述操作系统关于进程控制块的数据结构、组织方式及管理机制。在此基础上,给出进程的创建、终止、阻塞、唤醒、挂起与激活等函数原型及函数代码。注意,对于过于复杂的功能或你无法解决的细节可采用指定功能的函数模块来替代。如处理机调度scheduler(),48,2023/8/7,第二章 进程管理,2.1 进程的基本概念2.2 进程控制2.3 进程同步2.4 经典进程同步问题2.5 进程通信2.6 管程与线程,49,2023/8/7,2.3 进程同步,2
17、.3.1 并发进程间制约关系2.3.2 临界资源与临界区 进程同步机制准则2.3.4 信号量机制2.3.5 信号量机制应用基础,50,2023/8/7,并发进程间制约关系,资源共享关系间接制约多个进程彼此无关,完全不知道或只能间接感知其它进程的存在系统须保证诸进程能互斥地访问临界资源系统资源应统一分配,而不允许用户进程直接使用相互合作关系直接制约系统应保证相互合作的诸进程在执行次序上的协调和防止与时间有关的差错,51,2023/8/7,2.3 进程同步,2.3.1 并发进程间制约关系2.3.2 临界资源与临界区 进程同步机制准则2.3.4 信号量机制2.3.5 信号量机制应用基础,52,202
18、3/8/7,临界资源,一段时间内只允许一个进程访问的资源许多物理设备、变量及表格举例两个进程A、B共享变量N(初值为5)A:N:=N+1;B:N:=N-1计算操作的系统实现过程剖析 A:R1:=N B:R2:=N R1:=R1+1 R2:=R2-1 N:=R1 N:=R2,53,2023/8/7,临界区,每个进程中访问临界资源的那段代码称为临界区保证诸进程互斥地进入自己的临界区是实现它们对临界资源的互斥访问的充要条件,54,2023/8/7,访问临界资源的循环进程描述,进程Pibeginrepeat 进入区 临界区 退出区 until false;end,主程序描述框架begin parbeg
19、in Pi;Pj;parendend,55,2023/8/7,2.3 进程同步,2.3.1 并发进程间制约关系2.3.2 临界资源与临界区 进程同步机制准则2.3.4 信号量机制2.3.5 信号量机制应用基础,56,2023/8/7,进程同步机制基本准则,空闲让进当无进程处于临界区时,可允许一个请求进入临界区的进程立即进入自己的临界区忙则等待当已有进程进入自己的临界区时,所有企图进入临界区的进程必须等待有限等待对要求访问临界资源的进程,应保证该进程能在有限时间内进入自己的临界区让权等待当进程不能进入自己的临界区时,应释放处理机,57,2023/8/7,2.3 进程同步,2.3.1 并发进程间制
20、约关系2.3.2 临界资源与临界区 进程同步机制准则2.3.4 信号量机制2.3.5 信号量机制应用基础,58,2023/8/7,整型信号量,整型信号量s除初始化外,仅能被两个标准的原子操作wait(s)和signal(s)亦即P/V操作来访问。wait(s):while s0 do no_op;s:=s-1;signal(s):s:=s+1;,有何弊端?,59,2023/8/7,记录型信号量机制 信号量类型声明,type semphore=record value:integer;L:list of process;end,物理意义?,60,2023/8/7,记录型信号量机制 wait(s)
21、操作描述,procedure wait(s)Var s:semphore;begin s.value:=s.value-1;if s.value0 then block(s.L);end,61,2023/8/7,记录型信号量机制 signal(s)操作描述,procedure signal(s)Var s:semphore;begin s.value:=s.value+1;if s.value0 then wakeup(s.L);end,62,2023/8/7,AND型信号量集机制的引入,对于多个进程要共享两个以上的资源的情况,上述机制则可能导致发生死锁例两个进程A、B要求同时访问共享数据C、
22、D process A:process B:wait(Dmutex);wait(Cmutex);wait(Cmutex);wait(Dmutex);对策:若干个临界资源的分配采取原子操作方式,63,2023/8/7,Swait(s1,s2,sn)操作,procedure Swait(s1,s2,sn)Var s1,s2,sn:semphore;begin if s1 1 and and sn 1 then for i:=1 to n do si:=si-1;else blockProcessAndResetPC(sfirstless);end,?,for i:=1 to n do if(sin
23、)for i:=1 to n do si:=si 1;,64,2023/8/7,Ssignal(s1,s2,sn)操作,procedure Ssignal(s1,s2,sn)Var s1,s2,sn:semphore;begin for i:=1 to n do si:=si+1;wakeupAllProcesses(si);endfor;end,?,65,2023/8/7,一般信号量集机制的引入,记录型信号量集机制中,wait(s)和signal(s)操作仅能对信号量施以增1和减1的操作,即每次只能获得或释放一个单位的临界资源。当一次需d个某类临界资源时,便需要进行d次wait(s)操作,这
24、显然是低效的。此外,在有些情况下,要求当资源数量低于某一下限值时,便不予分配。故在每次分配之前,都必须测试该资源的数量是否不小于测试值t。基于以上两点可以对AND信号量机制进行扩充,形成一般化的“信号量集”机制。,66,2023/8/7,Swait(s1,t1,d1,sn,tn,dn)操作,procedure Swait(s1,t1,d1,sn,tn,dn)Var s1,s2,sn:semphore;t1,t2,tn,d1,d2,dn:integer;begin if s1 t1 and and sn tn then for i:=1 to n do si:=si-di;else blockP
25、rocessAndResetPC(sfirstless);end,for i:=1 to n do if(sin)for i:=1 to n do si:=sidi;,67,2023/8/7,Ssignal(s1,d1,sn,dn)操作,procedure Ssignal(s1,d1,sn,dn)Var s1,s2,sn:semphore;d1,d2,dn:integer;begin for i:=1 to n do si:=si+di;wakeupAllProcesses(si);endfor;end,68,2023/8/7,一般信号量集的几种特殊情况,Swait(s,d,d)信号量集中只有
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 第二 进程 管理

链接地址:https://www.31ppt.com/p-5662249.html