[工学]操作系统课件-第2章-进程.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《[工学]操作系统课件-第2章-进程.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工学 操作系统 课件 进程
- 资源描述:
-
1、第二章 进 程 管 理 第二章第二章 进程管理进程管理 第一节:进程的概念第一节:进程的概念第二章 进 程 管 理 前趋图前趋图:是一个有向无循环图。前趋图前趋图用于描述进程之间执行的前后关系。图中的每个结点结点可用于描述一个程序段或进程,一个程序段或进程,乃至一条语句乃至一条语句;结点间的有向边有向边则用于表示两个结点之间存在的偏序或前趋关系“”。P1P3P8P9P4P2P5P6P7S1S2S3(a)具有九个结点的前趋图(b)具有循环的前趋图节点节点第二章 进 程 管 理 图21(a)中存在着这样的前趋关系:P1P2,P1P3,P1P4,P2P5,P3P5,P4P6,P4P7,P5P8,P6
2、P8,P7P9,P8P9图 2-1 前趋图 第二章 进 程 管 理 或表示为:P=P1,P2,P3,P4,P5,P6,P7,P8,P9=(P1,P2),(P1,P3),(P1,P4),(P2,P5),(P3,P5),(P4,P6),(P4,P7),(P5,P8),(P6,P8),(P7,P9),(P8,P9)应当注意,前趋图中必须不存在前趋图中必须不存在循环,循环,但在图2-1(b)中却有着下述的前趋关系:S2S3,S3S2 图 2-1 前趋图 第二章 进 程 管 理 1、程序的顺序执行、程序的顺序执行第二章 进 程 管 理 图 2-2 程序的顺序执行 S1:a=x+y;S2:b=a-5;S3
3、:c=b+1;试想S1、S2、S3三条语句以何顺序执行?1、程序的顺序执行、程序的顺序执行第二章 进 程 管 理 程序顺序执行时的特征程序顺序执行时的特征(1)顺序性顺序性:(2)封闭性封闭性(运行时候独占处理机资源,运行结果不受外界影响)程序可再现性:(3)可再现性可再现性(初始条件相同,结果相同)第二章 进 程 管 理 2、程序的并发执行及其特征、程序的并发执行及其特征 第二章 进 程 管 理 2、程序的并发执行及其特征、程序的并发执行及其特征 2.1程序的并发执行程序的并发执行 图 2-3 并发执行时的前趋图 P1P2P3P4I1I2I3I4C1C2C3C4在该例中存在下述前趋关系:Ii
4、Ci,IiIi+1,CiPi,CiCi+1,PiPi+1而Ii+1和Ci及Pi-1是重迭的,亦即在Pi-1和Ci以及Ii+1之间,可以并发执行并发执行。如何实现并如何实现并发执行?发执行?第二章 进 程 管 理 对于具有下述四条语句的程序段:S1:a=x+2 S2:b=y+4 S3:c=a+b S4:d=c+b 请画出前趋关系图。S1S2S3S4第二章 进 程 管 理 2.2 程序并发执行时的特征程序并发执行时的特征 1)间断性间断性(相互制约性相互制约性)后面的模块等待前面的模块 传来的结果,然后才执行(如打印模块等待 计算模块完成)。走走停停。2)失去封闭性失去封闭性:多个程序共享系统中的
5、各种资源,因而这些资源的状态将由多个程序来改变,致使程序的运行已失去了封闭性。结果是结果是一个程序运行时会受到另一个程序的 影响。3)不可再现性不可再现性 :程序在并发执行时,由于失去了封 闭性,也将导致失去其可再现性下面看个小例子:第二章 进 程 管 理 例如,有两个循环程序A和B,它们共享一个变量N。程序A每执行一次时,都要做N=N+1操作;程序B每执行一次时,都要执行Print(N)操作,然后再将N置成“0”。程序A和B以不同的速度运行。(1)N=N+1在Print(N)和N=0之前,此时得到的N值分别为n+1,n+1,0。(2)N=N+1在Print(N)和N=0之后,此时得到的N值分
6、别为n,0,1。(3)N=N+1在Print(N)和N=0之间,此时得到的N值分别为n,n+1,0。结论:程序在并发执行时,由于失去了封闭性,其计算结果已经和并发执行速度有关,从而使程序失去了可再现性,亦即,程序经过多次执行后,虽然他们执行时的环境和初始条件相同,但得到的结果却不相同。第二章 进 程 管 理 顺序执行顺序执行:并发执行:并发执行:程序具有封闭性程序具有封闭性 程序失去封闭性程序失去封闭性独享资源独享资源 共享资源共享资源(互为存在条件互为存在条件)可再现性可再现性 程序与程序与“计算计算”不再一一对不再一一对应应有相互制约有相互制约第二章 进 程 管 理 3、进程、进程(Pro
7、cess)第二章 进 程 管 理 3.1较典型的较典型的进程定义进程定义有:有:进程是程序的一次执行。进程是程序的一次执行。进程是一个程序及其数据在处理机上顺序执行时所发生进程是一个程序及其数据在处理机上顺序执行时所发生 的活动。的活动。进程是程序在一个数据集合上运行的过程,它是系统进进程是程序在一个数据集合上运行的过程,它是系统进 行资源分配和调度的一个独立单位。行资源分配和调度的一个独立单位。进程是一个程序及其数据在处理机上顺序执行时所发生进程是一个程序及其数据在处理机上顺序执行时所发生的活动。的活动。进程是程序在一个数据集合上运行的过程进程是程序在一个数据集合上运行的过程,它是系统进行它
8、是系统进行资源分配和调度的一个独立单位;资源分配和调度的一个独立单位;第二章 进 程 管 理 3.2 进程的组成:进程的组成:进程的实体进程的实体由由:程序段、程序段、数据段、数据段、进程控制块进程控制块PCB组成。组成。有人把这三部分称为有人把这三部分称为”进程映像进程映像”.通常的程序是不能通常的程序是不能并发执行并发执行的的,为使程序能并发执行为使程序能并发执行,应为之配置一进程控制块应为之配置一进程控制块,即即PCB;所谓所谓创建进程是指创建进程实体中的创建进程是指创建进程实体中的PCB,撤销亦,撤销亦如此。如此。第二章 进 程 管 理 1)结构化特征:结构化特征:含含代码段、数据段和
9、核心段(在地址空间中)2)动态性:动态性:进程的实质是进程实体的一次执行过程,动态性是进动态性是进程的最基本特征。程的最基本特征。3)并发性并发性:指多个进程实体同存于内存中,且能在一段时间内同指多个进程实体同存于内存中,且能在一段时间内同时运行,它是进程的重要特征,也是操作系统的重要特征。时运行,它是进程的重要特征,也是操作系统的重要特征。4)独立性独立性:各进程的各进程的地址空间相互独立地址空间相互独立,除非采用进程间通信手段;,除非采用进程间通信手段;5)异步性异步性:这是指进程按各自独立的,不可预知的速度向前推进。这是指进程按各自独立的,不可预知的速度向前推进。导致程序执行的不可再现性
10、导致程序执行的不可再现性3.3进程的特征:进程的特征:第二章 进 程 管 理 1)1)程序是静态的,进程是动态的程序是静态的,进程是动态的;(是根本区别)(是根本区别)程序是有序代码的集合;进程是程序的执行。程序是有序代码的集合;进程是程序的执行。2)2)进程和程序不是一一对应的进程和程序不是一一对应的;一个程序可对应多个进程一个程序可对应多个进程,即多个进程可执行同一程序即多个进程可执行同一程序;一个进程可以执行一个或几个程序一个进程可以执行一个或几个程序 3)3)进程是暂时的,程序的永久的进程是暂时的,程序的永久的:进程是一个状态变化的过程,:进程是一个状态变化的过程,程序可长久保存。程序
11、可长久保存。4)4)进程与程序的组成不同进程与程序的组成不同:进程的组成包括程序、数据和进程:进程的组成包括程序、数据和进程控制块(即进程状态信息)。控制块(即进程状态信息)。5)5)进程具有创建其他进程的功能,而程序没有进程具有创建其他进程的功能,而程序没有。3.4进程与程序的区别进程与程序的区别第二章 进 程 管 理 程序与进程的类比程序与进程的类比 程程 序序 进进 程程 唱歌的曲谱或音乐乐器的乐谱唱歌的曲谱或音乐乐器的乐谱 演出或演奏演出或演奏 剧本剧本 演出演出 火车火车 列车列车 第二章 进 程 管 理 1、判断题:、判断题:进程是一个程序在某数据集上的一次执进程是一个程序在某数据
12、集上的一次执行,所以不同进程对应不同的程序行,所以不同进程对应不同的程序。分析分析:进程是程序在某数据集上得一次执行,但是:进程是程序在某数据集上得一次执行,但是不不同进程可以对应同一程序同进程可以对应同一程序。2、程序顺序执行与并发执行有什么不同?、程序顺序执行与并发执行有什么不同?3、用户程序必须在进程中运行。、用户程序必须在进程中运行。正确4、判断题判断题:两次打开:两次打开Word字处理程序,编辑同一篇文章,字处理程序,编辑同一篇文章,因为程序因为程序 一样一样(Word 2003),数据一样,数据一样(同一篇文章同一篇文章),所以,所以系统中运行的这两个系统中运行的这两个Word字处
13、理程序是同一个进程。字处理程序是同一个进程。错误,运行的是错误,运行的是2个不同的进程个不同的进程第二章 进 程 管 理 3.5处理机调度器(处理机调度器(dispatcher)把处理机从一个进程切换到另一个进程;防止某进程独占处理机;处理机调度器(进程调度进程调度):是操作系统中的一段代码,它完成如下功能:第二章 进 程 管 理 3.6 进程的进程的三种基本状态三种基本状态 1)就绪就绪(Ready)(Ready)状态状态:已分配到除:已分配到除CPU以外的所有必要的资以外的所有必要的资源,源,只要能再获得处理机,便,便可立即执行的状态。多个排成。多个排成一队称为就绪队列。一队称为就绪队列。
14、2)执行状态执行状态:指进程已获得处理机,其程序指进程已获得处理机,其程序正在执行正在执行;在单处理机系统中,只能有一个进程处于执行状态在单处理机系统中,只能有一个进程处于执行状态;在多处理机系统中,则可能多个进程处于执行状态。在多处理机系统中,则可能多个进程处于执行状态。3)阻塞状态阻塞状态:进程因发生某事件:进程因发生某事件(如请求如请求IO、申请缓冲空、申请缓冲空间等间等)而而暂停执行时的状态,亦即进程的执行受到阻塞,故称,亦即进程的执行受到阻塞,故称这种暂停状态为阻塞状态,有时也称为这种暂停状态为阻塞状态,有时也称为“等待等待”状态或状态或“睡睡眠眠”状态。状态。通常将处于阻塞状态的进
15、程排成一个队列,称为阻塞队通常将处于阻塞状态的进程排成一个队列,称为阻塞队列。在有的系统中,按阻塞原因的不同而将处于阻塞状态的列。在有的系统中,按阻塞原因的不同而将处于阻塞状态的进程排成多个队列。进程排成多个队列。第二章 进 程 管 理 图 2-5 进程的三种基本状态及其转换(教材讲5种)就绪阻塞执行时间片完进程调度I/O完成I/O请求结束结束新进程新进程接纳完成第二章 进 程 管 理 作业后备队列进程就绪队列作业调度作业调度一些一些阻塞队列阻塞队列第二章 进 程 管 理 3.7五状态五状态进程模型AdmitRunningNewExitReadyBlockedDispatchTimeoutEv
16、entWaitEventOccursReleaseCreate五状态进程模型(状态变迁)第二章 进 程 管 理 AdmitReady QueueDispatchTime-outEvent WaitReleaseProcessorBlocked QueueEventOccurs五状态进程模型(单队列结构)第二章 进 程 管 理 AdmitReady QueueDispatchTime-outReleaseProcessorEvent 1 WaitEvent 1 QueueEvent 1OccursEvent 2 WaitEvent 2 QueueEvent 2Occurs五状态进程模型(多队列结
17、构)第二章 进 程 管 理 3.8 进程状态的转换(1)新(New)状态就绪状态。(2)就绪(Ready)状态执行状态。(3)执行状态阻塞状态。(4)阻塞状态就绪状态。(5)执行状态就绪状态第二章 进 程 管 理 3.9挂起进程模型挂起进程模型 这个问题的出现是由于进程优先级的引入,一些低优先级进程可能等待较长时间,从而被对换至外存外存。这样做的目的是:提高处理机效率:就绪进程表为空时,要提交新进程,以提高处理机效率;为运行进程提供足够内存:资源紧张时,暂停某些进程,如:CPU繁忙(或实时任务执行),内存紧张 用于调试:在调试时,挂起被调试进程(从而对其地址空间进行读写)第二章 进 程 管 理
18、 AdmitRunningNewExitReadyBlockedDispatchTimeoutEventWaitEventOccursReleaseBlockedSuspendSuspendActivate单挂起单挂起进程模型进程模型第二章 进 程 管 理 AdmitRunningReadySuspendExitReadyBlockedDispatchTimeoutEventWaitEventOccursReleaseBlockedSuspendSuspendNewEventOccursActivateSuspendActivateAdmitSuspend双挂起双挂起进程模型进程模型内存内存外
19、存外存第二章 进 程 管 理 3.9.1 状态状态 就绪状态就绪状态(Ready):进程在内存且可立即进入运行状态;阻塞状态阻塞状态(Blocked):进程在内存并等待内存并等待某事件的出现;阻塞挂起状态阻塞挂起状态(Blocked,suspend):进程在外存并外存并等待等待某事件的出现;就绪挂起状态(就绪挂起状态(Ready,suspend):进程在外存,但只要进入内存,即可运行;注:这里只列出了意义有变化或新的状态。第二章 进 程 管 理 3.9.2转换转换 挂起(挂起(Suspend):把一个进程从内存内存转到外存外存;可能有以下几种情况:阻塞到阻塞挂起:没有进程处于就绪状态或就绪进程
20、要求更多内存资源时,会进行这种转换,以提交新进程或运行就绪进程;就绪到就绪挂起:当有高优先级阻塞(系统认为会很快就绪的)进程和低优先级就绪进程时,系统会选择挂起低优先级就绪进程;运行到就绪挂起:对抢占式分时系统,当有高优先级阻塞挂起进程因事件出现而进入就绪挂起时,系统可能会把正运行的进程转到就绪挂起状态;激活(激活(Activate):把一个进程从外存外存转到内存内存;可能有以下几种情况:就绪挂起到就绪:没有就绪进程或挂起就绪进程优先级高于就绪进程时,会进行这种转换;阻塞挂起到阻塞:当一个进程释放足够内存时,系统会把一个高优先级阻塞挂起(系统认为会很快出现所等待的事件)进程变成阻塞状态;第二章
21、 进 程 管 理 事件出现(事件出现(Event Occurs):进程等待的事件出现;如:操作完成、申请成功等;可能的情况有:阻塞到就绪:针对内存进程的事件出现;阻塞挂起到就绪挂起:针对外存进程的事件出现;收容收容(Admit):收容(提交)一个新进程,进入就绪状态或就绪挂起状态。第二章 进 程 管 理 1、进程由就绪态转为运行态是因为()引起的?A、中断事件、中断事件 b、进程状态转换、进程状态转换c、进程调度的、进程调度的d、为程序创建进程、为程序创建进程C2、分配到必要的资源并获得处理机的进程状态是()。)。运行态运行态3、当(),进程从执行状态转变为就绪状态。a、进程被调度程序选中 b
22、、时间片到 c、等待某一事件 d、等待的时间发生B4、判断题判断题:两次打开:两次打开Word字处理程序,编辑同一篇文章,字处理程序,编辑同一篇文章,因为程序因为程序 一样一样(Word 2003),数据一样,数据一样(同一篇文章同一篇文章),所以,所以系统中运行的这两个系统中运行的这两个Word字处理程序是同一个进程。字处理程序是同一个进程。第二章 进 程 管 理 第二章 进 程 管 理 3.10、进程控制块、进程控制块 3.10.1.进程控制块的作用进程控制块的作用 或者说:或者说:OS是根据是根据PCB来对并发执行的进程进行控来对并发执行的进程进行控制和管理的。制和管理的。简单题:进程控
23、制块的作用(要扩展)?简单题:进程控制块的作用(要扩展)?判断题:进程控制块是进程存在的唯一标志。判断题:进程控制块是进程存在的唯一标志。进程控制块是由OS维护的用来记录进程相关信息的一块内存。正确正确第二章 进 程 管 理 3.10.2进程控制块的内容(进程控制块的内容(数据结构很复杂数据结构很复杂)进程标识符进程标识符:内部进程标识符(process ID),唯一,通常是一个整数;进程名(外部标识符),通常基于可执行文件名(不唯一);用户标识符(user ID);进程组关系(process group)进程控制信息进程控制信息:当前状态;优先级(priority);代码执行入口地址;程序的
24、外存地址;运行统计信息(执行时间、页面调度);进程间同步和通信;阻塞原因 进程调度信息进程调度信息:进程状态、进程优先级、资源信息等 处理机状态处理机状态:寄存器值(通用、程序计数器PC、状态PSW,地址包括栈指针)第二章 进 程 管 理 3.10.3 PCB的组织方式 链表:同一状态的进程其PCB成一链表,多个状态对应多个不同的链表 各状态的进程形成不同的链表:就绪链表、阻塞链表 索引表:同一状态的进程归入一个index表(由index指向PCB),多个状态对应多个不同的index表 各状态的进行形成不同的索引表:就绪索引表、阻塞索引表PCB TableReadyBlockedPCB Tab
25、leIndex TableReadyBlocked把具有相同状态的把具有相同状态的PCB,用其中,用其中的链接字,链接成一个队列。的链接字,链接成一个队列。第二章 进 程 管 理 4、进程控制、进程控制返回第二章 进 程 管 理 4.1 进程控制的功能:进程控制的功能:完成进程状态的转换。原语(primitive):由若干条指令构成的“原子操作(atomic operation)”过程,作为一个整体而不可分割要么全都完成,要么全都不做。许多系统调用就是原语。注意:系统调用并不都是原语。进程A调用read(),因无数据而阻塞,在read()里未返回。然后进程B调用read(),此时read()被
展开阅读全文