操作系统课件3

上传人:子 文档编号:57390266 上传时间:2018-10-21 格式:PPT 页数:52 大小:406KB
返回 下载 相关 举报
操作系统课件3_第1页
第1页 / 共52页
操作系统课件3_第2页
第2页 / 共52页
操作系统课件3_第3页
第3页 / 共52页
操作系统课件3_第4页
第4页 / 共52页
操作系统课件3_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《操作系统课件3》由会员分享,可在线阅读,更多相关《操作系统课件3(52页珍藏版)》请在金锄头文库上搜索。

1、第三章 进 程 管 理,掌握 多道程序系统的特点 进程的引入和定义 进程的状态及状态变迁 进程的描述:PCB 了解 进程的控制,1、进程的引入,进程的概念是操作系统中最基本、最重要的概念。它是在多道程序系统出现以后,为了刻画系统内部出现的情况,描述系统内部各作业的活动规律而引进的一个新概念,它是对程序的抽象。,多道程序系统的特点,并行性 在主存中同时存放多道作业,充分利用系统资源。 制约性 各程序同时存在于主存,可能因为竞争同一资源(如处理器、外部设备)而相互制约。 动态性 各程序在系统中所处的状态在不变化。,2、进程的概念,定义:Process 进程是具有独立功能的程序关于某个数据集合上的一

2、次运行活动,是系统进行资源分配和调度的独立单位。 它对应处理机、存储器和外设等资源的分配和回收; 引入多进程,提高了对硬件资源的利用率,但又带来额外的空间和时间开销,增加了OS 的复杂性;,进程与程序的区别,进程是动态的,程序是静态的:程序是有序代码的集合;进程是程序的执行。通常进程不可在计算机之间迁移;而程序通常对应着文件、静态和可以复制。 进程是暂时的,程序的永久的:进程是一个状态变化的过程,程序可长久保存。 进程与程序的组成不同:进程的组成包括程序、数据和进程控制块(即进程状态信息)。 进程与程序的对应关系:通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可包括多个程序。,进

3、程的性质,并行性:各进行按各自独立的,不可预知的速度并发推进。并发和异步特性会导致程序执行的不可再现性。 制约性:并发进程之间存在着制约性,在进行的关键点上需要相互等待或互通消息。 动态性:进程是程序在数据集合上的一次执行过程,是动态概念;而程序是一组有序指令序列,是静态概念。 进程有一个生命过程:创建、运行、等待等。 进程具有动态的地址空间(数量和内容),地址空间上包括: 代码(指令执行和CPU状态的改变) 数据(变量的生成和赋值) 系统控制信息(进程控制块的生成和删除),进程的性质,结构性:包括数据集合和运行于其上的程序。 代码段、数据段和核心段(在地址空间中);程序文件中通常也划分了代码

4、段和数据段,而核心段通常就是OS核心(由各个进程共享,包括各进程的PCB) 共享性:同一程序同时运行于不同数据集合上时,构成不同的进程。 独立性:是系统中资源分配和保护的基本单位,也是系统调度的独立单位(单线程进程)。每个进程的地址空间相互独立,除非采用进程间通信手段;,3、进程的状态,运行状态(Running):进程占有CPU,并在CPU上运行。处于此状态的进程的数目小于等于CPU的数目。 在没有其他进程可以执行时(如所有进程都在阻塞状态),通常会自动执行系统的idle进程(相当于空操作)。 就绪状态(Ready):进程已获得除处理机外的所需资源,等待分配处理机资源;只要分配CPU就可执行。

5、 可以按多个优先级来划分队列,如:时间片用完低优,I/O完成中优,页面调入完成高优 等待状态(Blocked):指进程因等待某种事件的发生而暂时不能运行的状态(即使CPU空闲,该进程也不可运行)。等待的事件可以为:I/O操作或进程同步等。,进程状态转换,在进程运行过程中,由于进程自身进展情况及外界环境的变化,这三种基本状态可以依据一定的条件相互转换。 就绪运行 运行就绪 运行等待 等待就绪,进程的状态转换,运行,就绪,等待,1、就绪运行 2、运行就绪 3、运行等待 4、等待就绪,进程转换,就绪 运行 调度:调度程序选择一个新的进程运行 该转换可以由其他转换引起 运行 就绪 运行进程用完了时间片

6、 运行进程被中断,因为一高优先级进程处 于就绪状态 该转换可以引起其他转换发生,进程转换(续),运行 等待 当一进程必须等待某事件发生, OS尚未完成服务 对一资源的访问尚不能进行 初始化I/O 且必须等待结果 等待某一进程提供输入 (IPC) 可以引起其他转换发生 等待 就绪 当所等待的事件发生时,因果变迁,如果一个状态变迁是由于另一个状态变迁引起的,则这两个变迁为因果变迁。 思考下列说法是否对,为什么? (1)一个进程从运行状态变为就绪状态态,一定会引起另一个进程从就绪状态态变为运行状态。 (2)一个进程从运行状态变为阻塞状态态,一定会引起另一进程从运行状态变为就绪状态。 (3)一个进程从

7、阻塞状态变为就绪状态,一定会引起另一个进程从就绪状态变为运行状态。,三状态进程模型(单队列结构),进程的挂起和解挂,为了更好的管理和调度进程及适应系统的功能目标,许多系统都有“挂起”和“解挂”一个进程的功能,原因在于: 系统有时可能出故障或某些功能受到破坏,需要暂时将系统中的进程挂起,以便故障消除后再恢复。 用户在执行自己的作业过程中,要求挂起他的进程,以便进行某些检查和改正。 系统中负载过重,资源相对不足,造成系统效率下降,需要挂起一部分进程以调整系统负荷,具有挂起功能的进程状态变化,事件发生 挂起 解除挂起 时间片完成 被调度 挂起 时间发生 挂起 解除挂起 等待事件,1,Running,

8、Blockeds,Blockeda,Readya,Readys,4,3,2,5,6,7,8,9,10,状态,就绪状态(Readya):进程在内存且可立即进入运行状态; 等待状态(Blockeda):进程在内存并等待某事件的出现; 挂起等待状态(Blockeds):进程在外存并等待某事件的出现; 挂起就绪状态(Readys):进程在外存,但只要进入内存,即可运行;,转换,挂起(Suspend):把一个进程从内存转到外存;可能有以下几种情况: 等待到挂起等待:没有进程处于就绪状态或就绪进程要求更多内存资源时,会进行这种转换,以提交新进程或运行就绪进程; 就绪到挂起就绪:当有高优先级等待(系统认为会

9、很快就绪的)进程和低优先级就绪进程时,系统会选择挂起低优先级就绪进程; 运行到挂起就绪:对抢先式分时系统,当有高优先级挂起等待进程因事件出现而进入挂起就绪时,系统可能会把运行进程转到挂起就绪状态;,解挂(Activate):把一个进程从外存转到内存;可能有以下几种情况: 挂起就绪到就绪:没有就绪进程或挂起就绪进程优先级高于就绪进程时,会进行这种转换; 挂起等待到等待:当一个进程释放足够内存时,系统会把一个高优先级挂起等待(系统认为会很快出现所等待的事件)进程;,4、进程的描述,进程程序块 进程数据块 系统/用户堆栈 进程控制块,进程控制块(Process Control Block),存放进程

10、的管理和控制信息的数据结构称为进程控制块。它是进程管理和控制的最重要的数据结构,在创建时,建立PCB,并伴随进程运行的全过程,直到进程撤消而撤消。 用它来记录进程的外部特征,描述进程的运动变化过程。 系统利用PCB来控制和管理进程,PCB是系统感知进程存在的唯一标志。PCB就象我们的户口。 进程与PCB是一一对应的。,进程控制块的内容,包含以下三类信息: 进程标志信息 处理器状态信息 进程控制信息,进程标志信息,本进程的标志ID: 通常用系统中唯一的数字作为标记,该数字实际是该进程的PCB在系统的PCB表中的表目序号。 建立本进程的进程(父进程)的标志ID 用户标记,处理器状态信息,用户使用的

11、寄存器 控制和状态寄存器: 包括程序计数器PC和条件寄存器(或程序状态字PSW). 堆栈指针,进程控制信息,调度和状态信息: 进程的状态,进程的调度优先级,与调度有关的信息 进程在有关队列中的链接指针 进程间的通信信息: 包括标志位、信号或信号量、消息队列等 主存使用信息: 包括分给进程的主存大小和位置 进程使用的其他资源信息 进程得到有关服务的优先级,进程管理,系统中的进程是很多的,状态也不一样。为了调度和管理进程,需将各进程的PCB用适当的方法组织起来,以下有三种方法: 单表:把所有的PCB组织在一个表格中。 索引表:同一状态的进程归入一个index表(由index指向PCB),多个状态对

12、应多个不同的index表。 各状态的进程形成不同的索引表:就绪索引表、阻塞索引表 链表:分别把具有相同状态的所有进程的PCB按优先级排成一个或多个队列,同一状态的进程其PCB成一链表,多个状态对应多个不同的链表 各状态的进程形成不同的链表:就绪链表、阻塞链表,PCB组织形式,5、进程控制,创建、撤消进程以及完成进程各状态之间的转换,通常由具有特定功能的原语完成。,建立进程原语 撤销进程原语 阻塞进程原语 唤醒进程原语,挂起进程原语 解除挂起进程原语 改变优先数原语 调度进程原语,创建进程,引起创建进程的事件 用户登录。 作业调度。 提供服务。 应用请求。 创建进程的过程 创建一个PCB 赋予一

13、个统一进程标识符 为进程映象分配空间 初始化进程控制块 许多默认值 (如: 状态为 New,无I/O设备或文件.) 设置相应的链接 如: 把新进程加到就绪队列的链表中,进程创建系统调用: create(name,priority,start-addr) UNIX系统: fork(),撤消进程,进程完成其任务,希望终止时,调用撤消进程的系统调用(进程撤消原语)撤消进程。 在一般操作系统中进程撤消的系统调用是:kill UNIX系统中是exit()。 引起进程撤销的事件 正常结束。 异常结束。 外界干预。,撤消进程,两种策略: 仅撤销指定标识符的进程; 撤销一个子进程及该子进程的所有子孙。,撤消进

14、程,根据撤销进程标识号,从相应队列中找到它的PCB 将该进程拥有的资源归还给父进程或操作系统 若该进程拥有子进程,应先撤销元的所有子孙进程,以防它们脱离控制 被撤销进程出队,将它的PCB归还到PCB池,进程的阻塞和唤醒,引起进程阻塞和唤醒的事件 请求系统服务。 启动某种操作并等待操作完成。 等待合作进程的协同配合。 系统进程无新工作可做。,进程的阻塞和唤醒,进程阻塞过程 停止当前进程的执行;保存该进程的CPU现场信息;将进程状态改为阻塞态,并将其PCB入相应的阻塞队列;转进程调度程序。 进程唤醒过程 首先把被阻塞的进程从等待该事件的阻塞队列中移出,将其PCB中的现行状态由阻塞改为就绪,然后再将

15、该PCB插入到就绪队列中。,进程切换,进程切换:中断处于运行态的进程运行,让出处理器,恢复新进程的状态,使新进程投入运行。 当系统调度新进程占有处理器时,新老进程随之发生上下文切换。 进程的运行被认为是在进程的上下文中执行的。 进程上下文:操作系统中把进程物理实体和支持进程运行的环境合称为进程上下文(context)。进程实体+运行环境。,进程切换,进程上下文组成: 用户级上下文:由用户程序块、用户数据块和用户堆栈组成的进程地址空间。 系统级上下文:又进程控制块、内存管理信息、进程环境块,及系统堆栈等组成的进程地址空间。 寄存器上下文:由PSW寄存器和各类控制寄存器、地址寄存器、通用寄存器组成

16、、用户栈指针等组成。,进程切换,进程切换步骤: 保存被中断进程的处理器现场信息 修改被中断进程的进程控制块的有关信息,如进程状态等 把被中断进程的PCB加入有关队列 选择下一个占有处理器运行的进程 修改被选中进程的PCB的有关信息 根据被选中进程设置操作系统用到的地址转换和存储保护信息 根据被选中进程恢复处理器现场,改变优先级数原语,进程的优先级数是表示进程的重要性及运行的优先级,进程调度程序以此来确定优先调用哪一个进程到处理机上运行。 为防止一些进程因优先数太低而长期不能运行,许多系统采用动态优先数。 影响优先数的因素 作业开始时的静态优先数 过程的类型 过程所使用的资源量 在系统中的等待时间,6. 操作系统代码的执行,通常,OS核心不是一个进程,其执行不被调度。 OS通过中断方式获得CPU控制权。 OS与应用程序的切换会引起两个开关的变化: CPU执行模式开关:开销小 存取PSW和模式改变指令 进程间开关:开销大 进程地址空间变换 维护PCB信息,核心态 运行,系统调用或中断(含模式切换),

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

当前位置:首页 > 生活休闲 > 科普知识

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