进程与线程课件

上传人:F****n 文档编号:88272062 上传时间:2019-04-22 格式:PPT 页数:90 大小:1.83MB
返回 下载 相关 举报
进程与线程课件_第1页
第1页 / 共90页
进程与线程课件_第2页
第2页 / 共90页
进程与线程课件_第3页
第3页 / 共90页
进程与线程课件_第4页
第4页 / 共90页
进程与线程课件_第5页
第5页 / 共90页
点击查看更多>>
资源描述

《进程与线程课件》由会员分享,可在线阅读,更多相关《进程与线程课件(90页珍藏版)》请在金锄头文库上搜索。

1、1,第二章 进程与线程,为了描述程序在并发执行时对系统资源的共享,我们需要一个描述程序执行时动态特征的概念,这就是进程。 在本章中,我们将讨论进程概念、进程控制、进程间关系和进程通信。,2,第二章 进程和线程,2.1 进程(PROCESS) 2.2 进程的状态转换 2.3 进程管理 2.4 线程(THREAD) 2.5 进程互斥和同步 2.6 经典进程同步问题 2.7 管程 2.8 进程间通信(IPC, INTER-PROCESS COMMUNICATION),3,2.1 进程(PROCESS),2.1.1 程序的顺序执行和并发执行 2.1.2 进程的定义和描述 2.1.3 进程的特征,4,2

2、.1.1 程序的顺序执行和并发执行,顺序执行: 单道批处理系统的执行方式,也用于简单的单片机系统; 并发执行: 现在的操作系统多为并发执行,具有许多新的特征。引入并发执行的目的是为了提高资源利用率。,程序的执行有两种方式:,5,顺序执行的特征,顺序性: 处理机严格按照程序所规定的顺序执行,即每个操作必须在下一个操作开始之前结束。 封闭性: 程序一旦开始执行,其计算结果不受外界的影响,当程序的初始条件给定之后,其后的状态只能由程序本身确定,即只有本程序才能改变它。 可再现性: 程序执行的结果与初始条件有关,而与执行时间无关。即只要程序的初始条件相同,它的执行结果是相同的,不论它在什么时间执行,也

3、不管计算机的运行速度。,6,失去封闭性: 共享资源,受其他程序的控制逻辑的影响。如:一个程序写到存储器中的数据可能被另一个程序修改,失去原有的不变特征。 失去可再现性: 失去封闭性 失去可再现性;外界环境在程序的两次执行期间发生变化,失去原有的可重复特征。 程序与计算不再一一对应 并发程序在执行期间相互制约,并发执行的特征,7,2.1.2 进程的定义和描述,1引入:用程序(Program)这个静态概念已经不能如实反映程序并发执行过程中的这些特征。 2进程(Process) 进程最根本的属性是动态性和并发性。 定义:进程是一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。,8,进程与

4、程序的区别举例,Mary正在为女儿按食谱烘制生日蛋糕,她的儿子哭着跑进厨房说他被蜜蜂蛰了,Mary停下来,找出急救手册,为儿子处理蛰伤。 MaryCPU 做蛋糕的食谱程序 做蛋糕的各种原料输入数据 阅读食谱,取来各种原料以及烘制蛋糕的一系列动作的总和进程 每个进程都有各自的程序,9,进程与程序的区别举例,Mary正在为女儿按食谱烘制生日蛋糕,她的儿子哭着跑进厨房说他被蜜蜂蛰了,Mary停下来,找出急救手册,为儿子处理蛰伤。 处理儿子蛰伤前, Mary记录下蛋糕做到哪里了保存进程的当前状态 Mary从做蛋糕到处理蛰伤从一个进程切换到另一个更高优先级的进程 处理完蛰伤后,Mary又回来做蛋糕,从她

5、离开的 那一步继续做下去,10,进程与程序的区别举例,Mary正在为女儿按食谱烘制生日蛋糕,她的儿子哭着跑进厨房说他被蜜蜂蛰了,Mary停下来,找出急救手册,为儿子处理蛰伤。 一个进程是某种类型的一个活动,它有程序、输入、输出以及状态。单个处理器可以被若干进程共享,它使用某种调度算法决定停止一个进程的工作,并转而为另一个进程提供服务。,11,进程与程序的区别,(1)动态性 (2)并发性 (3)非对应性 (4)异步性,12,进程描述简介,从物理内存的分配来看,每个进程占用一片内存空间。进程可看作由三部分组成:,一段可执行的程序 程序所需的相关数据(变量,工作空间,缓冲区等) 程序执行的上下文环境

6、,静态,动态,13,上下文环境包括操作系统管理进程以及处理器执行进程所需要的所有信息。,上下文环境,各种处理器寄存器的内容,如程序计数器和数据寄存器。 操作系统使用的信息,如进程优先级,进程是否在等待特定I/O事件的完成。,14,15,进程被当作数据结构来实现。一个进程可以是正在执行,或等待执行。任何时候整个进程状态都包含在它的上下文环境中。这个数据结构可确保在进程中进行协调和合作。,16,2.1.3 进程的特征,动态性: 进程是程序的一次执行过程。 进程具有一定的生命周期。 进程具有动态的地址空间(数量和内容),地址空间上包括: 代码(指令执行和CPU状态的改变)。 数据(变量的生成和赋值)

7、。 系统控制信息(进程控制块的生成和删除)。 并发性: 多个进程实体同存于内存,且能在一段时间内同时运行。,17,2.1.3 进程的特征,异步性: 进程可按各自独立的、不可预知的速度向前推进。 独立性: 各进程的地址空间相互独立,除非采用进程间通信手段;进程实体是一个能够独立运行、独立分配资源和独立接受调度的基本单位。 结构化:进程组成: 程序 + 数据 + PCB 调度性: 进程是系统中申请资源的单位,也是被调度的单位。,18,2.2 进程的状态转换,2.2.1 两状态进程模型 2.2.2 五状态进程模型 2.2.3 进程描述 2.2.4 进程队列,19,2.2.1 两状态进程模型,操作系统

8、的基本职责是控制进程的执行确定交替执行的方式、给进程分配资源。 任何时刻,一个进程或正在执行或没有执行,可构建最简单的模型,即一个进程可处于两种状态之一:运行或未运行。,20,两状态进程模型,21,两状态进程模型,22,两状态进程模型,23,两状态进程模型,24,两状态进程模型,25,2.2.2 五状态进程模型,五状态进程模型(状态变迁),Not-Running,26,2.2.2 五状态进程模型,五状态进程模型(状态变迁),27,运行状态,就绪 状态,阻塞状态,等待某事件发生,(如等待I/O),所等待事件发生 (如I/O完成),分到CPU,时间片到,28,创建状态(New): 进程刚创建,但还

9、不能运行,OS还没有把它加入到可执行进程组中,通常是还没有加载到主存中的新进程。 结束状态(Exit): OS从可执行进程组中释放出的进程,或是因为它自身停止,或是因为某种原因被取消。 (进程已结束运行,回收除PCB之外的其他资源,并让其他进程从PCB中收集有关信息(如记帐,将退出码exit code传递给父进程)。),状态,29,状态,运行状态(Running): 该进程正在被执行,占用处理机资源;处于此状态的进程的数目小于等于CPU的数目。 在没有其他进程可以执行时(如所有进程都在阻塞状态),常会自动执行系统的idle进程(相当于空操作) 就绪状态(Ready): 进程已获得除处理机外的所

10、需资源,等待分配处理机资源;只要分配CPU就可执行。 可以按多个优先级来划分队列,如:时间片用完低优,I/O完成中优,页面调入完成高优,30,状态,阻塞状态(Blocked,封锁状态、等待状态): 由于进程等待某种条件(如I/O操作或进程同步),在条件满足之前无法继续执行。该事件发生前即使把处理机分配给该进程,也无法运行。如:等待I/O操作的完成。,31,转换,NULL-新建: 创建一个新进程,以运行一个程序。 新建-就绪 (提交Admit): 接纳一个新进程,进入就绪状态。由于性能、内存、进程总数等原因,系统会限制并发进程总数。 就绪-运行 (分派Dispatch): 从就绪进程表中选择一个

11、进程,进入运行状态;,32,转换,运行-退出 (释放Release): 由于进程完成或失败而中止进程运行,进入结束状态; 运行到结束:分为正常退出Exit和异常退出abort(执行超时或内存不够,非法指令或地址,I/O失败,被其他进程所终止) 就绪或阻塞到结束:可能的原因有:父进程可在任何时间中止子进程;(为清楚起见,状态图中未标出此类转换),33,运行-就绪(超时Timeout ): 由于用完时间片或高优先进程就绪等导致进程暂停运行; 运行-阻塞(事件等待Event Wait ): 进程要求的事件未出现而进入阻塞;可能的原因包括:申请系统服务或资源、通信、I/O操作等; 阻塞-就绪(事件出现

12、Event Occurs ): 进程等待的事件出现;如:操作完成、申请成功等;,转换,34,系统中各进程状态的分布和管理,系统中各进程状态的分布: 例:一个只有一个处理机的系统中,OS的进程有运行、就绪、阻塞三个基本状态。假如某时刻该系统中有10个进程并发执行,在略去调度程序所占用时间情况下试问: 这时刻系统中处于运行态的进程数最多有几个?最少呢? 这时刻系统中处于就绪态的进程数最多有几个?最少呢? 这时刻系统中处于阻塞态的进程数最多有几个?最少呢? 解:因为系统中只有一个处理机,所以某时刻处于运行态的进程数最多只有一个。而最少可能为0,此时其它10个进程一定全部排在各阻塞队列中,在就绪队列中

13、没有进程。而某时刻处于就绪态的进程数最多只有9个,不可能出现10个情况,因为一旦CPU有空,调度程序马上调度,当然这是在略去调度程序调度时间时考虑。处于阻塞态的进程数最少是0个。,35,注:对于五状态进程模型,一个重要的问题是当一个事件出现时如何检查阻塞进程表中的进程状态。当进程多时,对系统性能影响很大。一种可能的作法是按等待事件类型,排成多个队列。,转换,36,五状态进程模型(单队列结构),转换,37,五状态进程模型(多队列结构),38,进程状态与转换说明,进程必须经过就绪状态而不能直接从等待状态转换到运行状态。 一个进程由运行状态转换成等待状态一般是由运行进程主动提出的。 一个进程由等待状

14、态转换成就绪状态一般是由外部事件引起的。,39,2.2.3 进程描述,一个或一组被执行的程序。 与程序相关联的局部变量、全局变量、已定义。 栈:用于跟踪过程调用和过程间参数传递的栈 OS用于控制该进程的属性,属性集合为进程控制块(PCB),1.进程映像,进程映像模型,40,进程控制块是由OS维护的用来记录进程相关信息的一块内存。 进程控制块(PCB),它是进程组成中最关键的部分,其中含有进程的描述信息和控制信息,是进程动态特性的集中反映,是系统对进程施行识别和控制的依据。 每个进程都必须有一个唯一的标识符,是OS调度进程的主要数据。 不同OS,PCB大小不同,包含信息不同。,2. 进程控制块的

15、组成,41,进程控制块的内容,进程描述信息: 进程标识符(process ID),唯一,通常是一个整数; 进程名,通常基于可执行文件名(不唯一); 用户标识符(user ID); 处理器状态信息(现场保护区) : 处理器状态信息包括处理器寄存器的内容 用户可见寄存器 程序计数器、条件码、状态信息 栈指针:指向栈顶,42,进程控制块的内容,进程控制信息: 当前状态; 优先级(priority); 调度信息; 进程间通信; 资源占用信息; 进程实体信息; 族系关系; 等,43,每个进程有惟一的进程控制块 PCB是进程存在的唯一标志,3. 进程控制块的作用,44,2.2.4 进程队列PCB的组织方式

16、,1线性方式,PCB线性队列示意图,如果静态分配空间,则限定了系统同时存在的最大进程数目;,更严重的缺点:执行CPU调度时,必须经常对整个PCB表进行扫描,降低了调度效率;,45,2链接方式,链表:同一状态的进程其PCB成一链表,多个状态对应多个不同的链表 各状态的进程形成不同的链表:就绪链表、阻塞链表,46,2链接方式,PCB链接队列示意图,47,3. 索引方式,索引表:同一状态的进程归入一个index表(由index指向PCB),多个状态对应多个不同的index表 各状态的进行形成不同的索引表:就绪索引表、阻塞索引表 索引表的起始地址放在专用的指针单元中;,48,PCB索引结构示意图,3索引方式,49,2.3 进程管理,2.3.1 进程图 2.3.2 进程控制的功能 2.3.3 进程控制原语,50,2.3.1 进程图,进程图(Process Graph)是描述进程族系关系的有向树。,进程创建的层次关系,某进程可以动态的创建新进程,前者称作父进程,后者称作子进程;,51,2

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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