操作系统课件第二章进程管理

上传人:xian****812 文档编号:324058637 上传时间:2022-07-12 格式:PPT 页数:270 大小:931.50KB
返回 下载 相关 举报
操作系统课件第二章进程管理_第1页
第1页 / 共270页
操作系统课件第二章进程管理_第2页
第2页 / 共270页
操作系统课件第二章进程管理_第3页
第3页 / 共270页
操作系统课件第二章进程管理_第4页
第4页 / 共270页
操作系统课件第二章进程管理_第5页
第5页 / 共270页
点击查看更多>>
资源描述

《操作系统课件第二章进程管理》由会员分享,可在线阅读,更多相关《操作系统课件第二章进程管理(270页珍藏版)》请在金锄头文库上搜索。

1、第二章进程管理第二章进程管理7/7/20221为什么要引入进程?为什么要引入进程?l为了提高系统的吞吐量和设备(CPU和I/O设备)的利用率,OS中引入了多道程序设计技术。l多道批处理系统和分时系统中,程序不能独立运行,作为资源分配和独立运行的基本单位为进程。l问题:l为什么?l什么是进程?7/7/20222为什么要引入进程?为什么要引入进程?l程序执行方式l顺序执行(无OS,单道批处理系统)l并发执行(多道)l程序执行方式的分析工具前趋图7/7/20223为什么要引入进程?为什么要引入进程?l前趋图(PrecedenceGraph)是一个有向无循环图,记为DAG(DirectedAcycli

2、cGraph),用于描述进程之间执行的前后关系。l结点:程序段,进程或者语句;l每个结点还包含一个Weightl有向边:表示两个结点之间存在的偏序(PartialOrder)或前趋关系(PrecedenceRelation)“”。如果Pi,和Pj存在偏序关系,可写成PiPj,7/7/20224为什么要引入进程为什么要引入进程l前趋图说明l前趋图中必须不存在循环,为什么?l初始结点(InitialNode)l终止结点(FinalNode)是前趋图吗?S1S2S37/7/20225为什么要引入进程为什么要引入进程l前趋图是存在偏序关系结点的集合l左图可以表示为:lG=P,lP=P1,P2,P3,P

3、4,P5,P6,P7,P8,P9l=(P1,P2),(P1,P3),(P1,P4),(P2,P5),(P3,P5),(P4,P6),(P4,P7),(P5,P8),(P6,P8),(P7,P9),(P8,P9)P1P3P8P9P4P2P5P6P7具有九个结点的前趋图7/7/20226为什么要引入进程为什么要引入进程l练习画出前趋图lS1:a=5-xlS2:b:=a.xlS3:c=4.xlS4:d=b+clS5:e=d+37/7/20227为什么要引入进程为什么要引入进程l程序的顺序执行及其特征程序的顺序执行及其特征l仅当前一操作(程序段)执行完后,才能执行后继操作。例如,在进行计算时,总须先输

4、入用户的程序和数据,然后进行计算,最后才能打印计算结果。lS1:a=x+y;lS2:b=a-5;lS3:c=b+1;7/7/20228图2-1程序的顺序执行为什么要引入进程为什么要引入进程7/7/20229为什么要引入进程为什么要引入进程l程序顺序执行时的特征程序顺序执行时的特征l顺序性:一个程序开始执行必须要等到前一个程序已执行完成l封闭性:程序一旦开始执行,其计算结果不受外界因素影响l可再现性:程序的结果与它的执行速度无关(即与时间无关),只要给定相同的输入,一定会得到相同的结果。7/7/202210为什么要引入进程为什么要引入进程l为什么要引入进程程序的并发执行及其特征程序的并发执行及其

5、特征并发环境:在一定时间时间内物理机器上有两个或两个以上的程序同处于开始运行但尚未结束的状态,并且次序不是事先确定的BAABBAAB7/7/202211为什么要引入进程为什么要引入进程l引入并发的目的:l引入并发是为了提高资源利用率,从而提高系统引入并发是为了提高资源利用率,从而提高系统效率效率l l并发与并行概念的区别:并发与并行概念的区别:oncurrency/paralleloncurrency/parallel7/7/202212为什么要引入进程为什么要引入进程图2-3并发执行时的前趋图P1P2P3P4I1I2I3I4C1C2C3C4输入程序输入程序计算程序计算程序打印程序打印程序7/

6、7/202213在该例中存在下述前趋关系:IiCi,IiIi+1,CiPi,CiCi+1,PiPi+1而Ii+1和Ci及Pi-1是重重迭迭的,亦即在Pi-1和Ci以及Ii+1之间,可以并发执行。为什么要引入进程为什么要引入进程7/7/202214为什么要引入进程为什么要引入进程l程序并发执行时的特征程序并发执行时的特征l间断性l l执行执行停停执行执行l失去封闭性l不可再现性l l并发程序执行的结果与其执行的相对速度有关,是不并发程序执行的结果与其执行的相对速度有关,是不确定的确定的7/7/202215l例如,有两个循环程序A和B,它们共享一个变量N。程序A每执行一次时,都要做N=N+1操作;

7、程序B每执行一次时,都要执行Print(N)操作,然后再将N置成“0”。程序A和B以不同的速度运行。l(1)N=N+1在Print(N)和N=0之前,此时得到的N值分别为n+1,n+1,0。l(2)N=N+1在Print(N)和N=0之后,此时得到的N值分别为n,0,1。l(3)N=N+1在Print(N)和N=0之间,此时得到的N值分别为n,n+1,0。为什么要引入进程为什么要引入进程7/7/202216为什么要引入进程为什么要引入进程l与时间有关的错误一飞机订票系统,两个终端,运行T1、T2进程T1:T2:.Read(x);(1)Read(x);(4)ifx=1thenifx=1thenx

8、:=x-1;(2)x:=x-1;(5)write(x);(3)write(x);(6).7/7/202217为什么要引入进程为什么要引入进程顺序执行并发执行执行过程顺序并发程序和执行的对应关系 一一对应一对多封闭性独占资源共享资源确定性具有无可再现性具有无程序间关系无有间接或直接制约关系顺序和并发执行比较7/7/202218为什么要引入进程为什么要引入进程l程序并发执行的条件l概念l读集R(si)l写集W(si)l程序可并发执行条件(Bernstein条件)lR(p1)W(p2)R(p2)W(p1)W(p1)W(p2)l为什么无R(p1)R(p2)呢?l分析前面订票程序。l例P1:N:=N+1

9、P2:PRINT(N);N:=0l练习:s1:b=a.xs2:c=4.xs3:d=b+c7/7/202219为什么要引入进程为什么要引入进程l在多道程序环境下,通常的程序不能直接参与并发执行,因为结果不可再现的。所以在在OS中为了能对并发执行的程序加以描述和控制,引入了进程(process)的概念7/7/202220为什么要引入进程为什么要引入进程lOS对进程的要求lOS必须交替执行多个进程,以便最大程度的使用CPU,同时提供合理的响应时间lOS必须将资源分配给进程,同时避免死锁lOS必须支持进程间通信以及用户进程创建lChap2:进程的描述和控制;进程的同步和通信lChap3:进程的调度;死

10、锁7/7/202221进程的基本概念进程的基本概念l定义:Process进程是具有独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的独立单位7/7/202222进程同程序的比较进程同程序的比较l程序是指令的有序集合,其本身没有任何运行的含义,是一个静态的概念。而进程是程序在处理机上的一次执行过程,它是一个动态的概念。l程序可以作为一种软件资料长期存在,而进程是有一定生命期的。程序是永久的,进程是暂时的。l进程更能真实地描述并发,而程序不能l进程是由程序和数据两部分组成的l进程具有创建其他进程的功能,而程序没有l同一程序同时运行于若干个数据集合上,它将属于若干个不同的进程

11、。也就是说同一程序可以对应多个进程7/7/202223进程的特征进程的特征l动态性:进程是程序的执行l并发性:多个进程可同存于内存中,能在一段时间内同时运行l独立性:独立运行的基本单位,独立获得资源和调度的基本单位。l异步性:各进程按各自独立的不可预知的速度向前推进l结构特征:由程序段、数据段、进程控制块(ProcessControlBlock,PCB)三部分组成7/7/202224进程的状态及转换进程的状态及转换l进程有三种基本状态l不同系统设置的进程状态数目不同(LINUX)lTASK_RUNNING(就绪或就绪或(执行执行):RlTASK_INTERRUPTIBLE(可中断等待)可中断等

12、待).SlTASK_UNINTERRUPTIBLE(不可中断等待不可中断等待):DlTASK_STOPPED(暂停暂停).TlTASK_ZOMBIE(僵死僵死)Z7/7/202225进程的三种基本状态进程的三种基本状态l就绪状态(Ready):存在于处理机调度队列中的那些进程,它们已经准备就绪,一旦得到CPU,就立即可以运行。这些进程所处的状态为就绪状态。l运行状态(Running):正在运行的进程所处的状态为运行状态。l等待状态(Wait/Blocked):若一进程正在等待某一事件发生(如等待输入输出工作完成),这时,即使给它CPU,它也无法运行,称该进程处于等待状态、阻塞、睡眠、封锁状态。

13、7/7/202226进程的状态图进程的状态图7/7/202227进程转换进程转换l就绪-运行l调度程序选择一个新的进程运行l运行-就绪l运行进程用完了时间片l运行进程被中断,因为一高优先级进程处于就绪状态7/7/202228进程转换(续)进程转换(续)l运行-等待l当一进程必须等待时lOS尚未完成服务尚未完成服务l对一资源的访问尚不能进行对一资源的访问尚不能进行l初始化初始化I/O且必须等待结果且必须等待结果l等待某一进程提供输入等待某一进程提供输入(IPC)l等待-就绪l当所等待的事件发生时7/7/202229五状态进程模型五状态进程模型7/7/202230创建创建(新新new)状态状态lO

14、S已完成为创建一进程所必要的工作l已构造了进程标识符已构造了进程标识符l已创建了管理进程所需的表格已创建了管理进程所需的表格l但还没有允许执行该进程(尚未同意)l因为资源有限因为资源有限7/7/202231终止(退出终止(退出exit)状态状态l中止后进程移入该状态l它不再有执行资格l表格和其它信息暂时由辅助程序保留l例子例子:为处理用户帐单而累计资源使用情为处理用户帐单而累计资源使用情况的财务程序况的财务程序l当数据不再需要后,进程(和它的表格)被删除7/7/202232七状态进程模型七状态进程模型活动活动挂起挂起事件事件发生发生事件事件发生发生等待等待事件事件挂起挂起调度调度超时超时释放释

15、放活动活动挂起挂起7/7/202233l挂起状态l挂起进程在操作系统中可以定义为暂时被淘汰出内存的进程,机器的资源是有限的,在资源不足的情况下,操作系统对在内存中的程序进行合理的安排,其中有的进程被暂时调离出内存,当条件允许的时候,会被操作系统再次调回内存,重新进入等待状态或者就绪状态l为什么要引入挂起状态?(调节负载,对换,父进程,操作系统,终端用户)7/7/202234新状态转换新状态转换(中期调度中期调度)l阻塞-阻塞挂起l当所有进程都阻塞,OS会安排空间让一就绪进程进入内存l阻塞挂起-就绪挂起l当等待的事件发生时(状态信息已在OS中)l就绪挂起-就绪l当内存中没有就绪进程时l就绪-就绪

16、挂起(较少见)l当没有被阻塞的进程,而为了性能上的考虑,必须释放一些内存时7/7/202235思考题思考题l在单处理机计算机系统中,如果有n个进程,l运行状态的进程最多几个?最少几个?l等待状态的进程最多几个?最少几个?l就绪状态的进程最多几个?最少几个?l有没有这样的状态转换,等待运行,就绪等待7/7/202236进程控制块进程控制块(ProcessControlBlock)l为了描述一个进程和其它进程以及系统资源的关系,为了刻画一个进程在各个不同时期所处的状态,人们采用了一个与进程相联系的数据块,称为进程控制块(PCB)。l系统利用PCB来控制和管理进程,所以PCB是系统感知进程存在的唯一标志l进程与PCB是一一对应的l常驻内存7/7/202237进程标识符进程标识符(在在PCB中中)l可使用一些数字标识符l统一进程标识符(必然的)l索引至索引至(直接或间接直接或间接)主进程表主进程表l用户标识符l与某个作业对应的用户与某个作业对应的用户l创建本进程的某个进程的标识符7/7/202238处理器状态信息处理器状态信息(在在PCB中中)l处理器寄存器内容l用户可见寄存器l控制和状态寄存

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

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号