




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2020/7/17,1,第3章 进程管理,2020/7/17,2,第3章 进程管理,3.0 并发活动进程的引入 3.1 进程的概念 3.2 进程的状态 3.3 进程的描述和管理 3.4 进程控制 3.5 进程调度 3.6 UNIX SVR4的进程管理,2020/7/17,3,程序的顺序执行,若一个计算机由若干操作组成,而这些操作必须按照某种先后次序来执行,以保证某些操作的结果可为其他一些操作所利用,则这类计算过程就是程序的顺序执行过程。,2020/7/17,4,顺序程序的特点,顺序性 处理机的操作严格按照程序所规定的顺序执行,每个操作必须在下一个操作开始执行之前结束 封闭性 程序一旦开始执行,
2、其计算结果不受外界因素的影响 可再现性 程序执行的结果与它的执行速度无关(即与时间无关),而只与初始条件有关,只要给定相同的输入条件,程序重复执行一定会得到相同的结果,2020/7/17,5,程序的并发执行(I),一个事实:大多数计算问题只要求操作在时间上是偏序的,即有些操作必须在其他操作之前执行,这是有序的,但其中有的却可以同时进行。,程序段执行的先后顺序,有的程序段执行是有先后顺序的 有的程序段可以并发执行,2020/7/17,6,程序的并发执行(II),若干个程序段同时在系统中运行,这些程序段的执行在时间上是重叠的,一个程序段的执行尚未结束,另一个程度段的执行已经开始,即使这种重叠是很小
3、的一部分,也称这几个程序段是并发执行的。,三个并发程序段,2020/7/17,7,并发程序的特点,失去程序的封闭性 如:一个程序的执行可以改变另一个程序的变量 程序与计算不再一一对应 当多个计算任务共享某个程序时,它们都可以调用这个程序,如Fortran编译程序 程序并发执行的相互制约 当并发执行的各程序之间需要协同操作来完成一个共同的任务时,它们之间具有直接的相互制约关系,且一般这样的程序之间有一定的逻辑联系,2020/7/17,8,进程介绍,现代的所有计算机都能同时做几件事情 伪并行(CPU在多道程序之间快速地切换) 人们很难对多个并行活动进行跟踪,进程是用于描述并行活动的一种模型 从概念
4、上说,每个进程拥有它自己的虚拟CPU,而真正的CPU在各进程之间来回切换(多道程序),2020/7/17,9,举例说明进程模型,计算机科学家做蛋糕的例子,2020/7/17,10,进程的引入(I),多道程序设计具有并行性的特点 并行性 所有用户程序、各种中断处理程序、各类设备管理程序、高级调度程序、低级调度程序 制约性 间接制约关系、直接制约关系 动态性 基于上述两个特点,各程序在系统中所处的状态不断变化,2020/7/17,11,进程的引入(II),程序的概念难以反映这种复杂的特性 程序本身是一个静态的概念,不能反映系统中的动态性; 程序概念也反映不了系统中的并行特性,2020/7/17,1
5、2,进程(process)的定义(I),程序在处理器上的执行 进程是一个可调度的实体 进程是逻辑上的一段程序,它在每一瞬间都含有一个程序控制点,指出现在正在执行的指令 顺序进程是一个程序及其数据在处理器上顺序地执行时所发生的活动 进程是这样的计算部分,它可以与别的进程并行运行,2020/7/17,13,进程的定义(II),进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动 进程和程序之间的区别 进程是程序的执行,属于动态概念,而程序是一组指令的有序集合,是静态概念 进程的存在是暂时的,而程序的存在是永久的 进程的组成包括程序和数据,还由“进程控制块(PCB)”组成 一个程序可能对应
6、多个进程 一个进程可以包含多个程序,2020/7/17,14,进程的基本状态,运行状态(Running):正在处理器上运行的状态 就绪状态(Ready):一个进程获得了除处理器外的一切所需资源,一旦得到处理器即可运行的状态 等待/阻塞状态(Blocked):一个进程正在等待某一事件发生而暂时停止运行的状态,2020/7/17,15,进程状态变化图,一个进程可处于运行态、阻塞态、就绪态。图中示出各状态之间的转换,2020/7/17,16,进程状态的变化,处于运行状态的进程在其运行过程中需等待某一事件发生后才能继续运行,该进程变为等待/阻塞状态 处于运行状态的进程在其运行过程中,因分给它的处理器时
7、间片已用完而不得不让出处理器,该进程变为就绪状态 处于就绪状态的进程被进程调度程序选中后,就分配到处理器来运动,变为运行状态 处于阻塞状态的进程,若其等待的事件已经发生,该进程变为就绪状态,2020/7/17,17,进程的挂起和解挂,为何引入这两种状态 系统故障或功能受到破坏 用户怀疑自己执行的作业的中间结果时,要检查和改正 调整系统负荷 增加两个新的状态 挂起就绪和挂起等待 挂起命令可由进程自己或其他进程发出,而解挂命令只能由其他进程发出,2020/7/17,18,进程的描述,进程的描述应包含哪些信息和内容 一个或多个程序 数据 充分的主存 用于保存过程调用现场信息和过程间传递的参数等信息的
8、一个堆栈 有关情况的属性信息,2020/7/17,19,进程控制块(PCB),进程标识信息 本进程的标识Id 父进程的标识Id 用户标识 处理器状态信息 用户使用的寄存器 控制和状态寄存器 堆栈指针,进程控制信息 调度和状态信息 进程在有关队列中的链接指针 进程间的通信信息 主存使用信息 进程使用的其他资源信息 进程得到有关服务的优先级,2020/7/17,20,PCB结构,进程标识符name 进程当前状态status 当前队列指针next 总链指针all_q_next 进程开始地址start_addr 进程优先级priority CPU现场保护区cpustatus 通信信息communica
9、tion_information 家族联系process_family 占有资源清单own_resource,2020/7/17,21,PCB的作用,PCB是操作系统中最重要的数据结构 PCB记录进程的属性信息,以便操作系统对其进行控制和管理 PCB是进程存在的具体物理标志和体现 PCB对是调度进程的主要的数据基,2020/7/17,22,进程管理,各进程的PCB的组织方法 把所有不同状态的进程的PCB组织在一个表格中 分别把有着相同状态的进程的PCB组织在同一个表格中 分别把具有相同状态的所有进程的PCB按优先数排成一个或多个队列,2020/7/17,23,进程控制原语,建立一个进程原语 撤
10、消一个进程原语 挂起一个进程原语 解除挂起进程原语 改变优先数原语 阻塞一个进程原语 唤醒一个进程原语 调度进程运行原语,2020/7/17,24,建立进程原语(1),所有进程只能由父进程建立,不是自生自灭的 建立进程原语是供进程调用,以建立子进程使用的 主要功能是创建一个指定标识符的进程 主要任务是形成该进程的进程控制块PCB 主要操作过程,2020/7/17,25,进程树,2020/7/17,26,建立进程原语(2),建立原语的形式为create(name,priority,start_addr) name为被建立进程的标识符 priority为进程的优先级 start_addr为某程序的
11、开始地址 以上三项为调用者必须提供的参数,其他资源从父进程那里继承。,2020/7/17,27,进程建立原语的形式化描述,算法create 输入:新进程的符号名,优先级,开始执行地址 输出:新创建进程的内部标识符pid 在总链队列上查找有无同名的进程; if(有同名进程) return(错误码); /带错误码返回 从PCB资源池申请一个空闲的PCB结构; if(无空PCB结构) return(错误码); /带错误码返回 用入口参数设置PCB内容; 置进程为“就绪”状态; 将新进程的PCB入就绪队列; 将新进程的PCB入总链队列; return(新进程的pid); ,2020/7/17,28,挂
12、起进程原语,执行挂起命令的功能模块 调用挂起原语的进程只能挂起它自己或它的子孙,而不能挂起其他族系的进程,否则认为该命令非法 挂起命令的执行方法 把发本命令的进程挂起 把具有指定标识符的进程挂起 把某进程及其全部或部分子孙进程一起挂起,2020/7/17,29,进程挂起原语的形式化描述,算法susp 输入:chan等待的事件(等待原因) 输出:无 保护现行进程的CPU现场到PCB结构中; 置该进程为“等待”态; 将该进程PCB插入到等chan的等待队列; 转进程调度; ,2020/7/17,30,解挂原语,恢复一个进程的活动状态 一个进程只能将自己的子孙进程解挂,而不能解挂别的族系进程 一个进
13、程可以将自己挂起,却不能将自己解挂,2020/7/17,31,撤消进程原语,当一个进程完成其任务后,应将其撤消,以便及时释放出它所占用的资源 撤消原语采取的策略: 只撤消一个具有指定标识符的进程 撤消它的一个子进程及该子进程的所有子孙 命令形式为kill或exit,2020/7/17,32,撤消进程原语的形式化描述,算法kill 输入:无 输出:无 由运行指针得当前进程的pid; 释放本进程所占用的资源给父进程; 该进程从总链队列中摘除; 释放此PCB结构; 转进程调度程序; ,2020/7/17,33,改变进程优先数原语,进程的优先数是表示进程的重要性及运行的优先性,供进程调度程序调度进程运
14、行时使用的 防止一些进程因优先数较低,而长期得不到运行的情况 进程的优先数与以下因素有关 与作业开始时的静态优先数有关 与进程的类型有关 与进程所使用的资源量有关 与进程在系统中等待时间有关,2020/7/17,34,进程间通信(Inter Process Communication,IPC),竞争条件 临界区 忙等待的互斥 睡眠与唤醒 信号量 事件计数器 管程 消息传递 原语等价,2020/7/17,35,经典的IPC问题,哲学家进餐问题 读者-写者问题 睡眠的理发师问题,2020/7/17,36,哲学家进餐问题,2020/7/17,37,睡眠的理发师问题,2020/7/17,38,进程调度
15、,时间片轮转调度 优先级调度 多级队列 最短作业优先 保证调度算法 策略与机制 两级调度法,2020/7/17,39,调度算法应考虑的问题,公平确保每个进程获得合理的CPU份额 效率使CPU百分之百地忙碌 响应时间使交互用户的响应时间尽可能短 周转时间使批处理用户等待输出的时间尽可能短 吞吐量使每小时处理的作业数量多,2020/7/17,40,时间片轮转调度(1),每个进程被分配一个时间段,称作它的时间片,即该进程允许运行的时间; 如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程; 如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。,(a)就绪进程列表 (b)进程B用完
16、它的时间片后的就绪进程列表,2020/7/17,41,时间片轮转调度(2),该方法中唯一有趣的问题是时间片的长度; 结论可以归结为:时间片设得太短会导致过多的进程切换,降低了CPU效率;而设得太长又可能引起对短的交互请求的响应时间变长; 通常将时间片设为100ms,是一个比较合理的折衷。,2020/7/17,42,优先级调度,基本思想:每个进程被赋予一个优先级,优先级最高的就绪进程被率先执行; 优先级可以为静态或动态; 将一组进程按优先级分成若干类,在各类之间采用优先级调度,而各类进程内部采用时间片轮转调度。,一个有4类优先级的调度算法,2020/7/17,43,多级队列,为CPU密集的进程设
17、置较长的时间片,比频繁地分给它们很短的时间片要高效(因为减少了交换的次数); 进程的长时间片又会影响响应时间,因此设立优先级类,属于最高级类的进程运行一个时间片,属于次高优先级类的进程运行2个时间片,再次一级运行4个时间片,依此类推,当一个进程用完分配的时间片后,它被移到下一类。,2020/7/17,44,最短作业优先,一个最短作业优先调度的例子 (a)平均作业时间为14分钟 (b)平均作业时间为11分钟,2020/7/17,45,两级调度算法(1),就绪进程的一个子集首先被装入内存,调度程序在随后的一段时间里只在这个子集中进行调度; 一个高级调度程序周期性地将那些在内存中驻留时间足够长的进程
18、换出,而将那些在磁盘上等候时间过长的进程换入; 低级调度程序只关心当时在内存中的就绪进程,而高级调度程序则关心将进程在内存和磁盘间来回交换。,2020/7/17,46,两级调度算法(2),高级调度程序用于决策的标准有: 进程自上次被换入或换出以来的时间; 进程最近使用的CPU时间; 进程的大小(小进程不参与高级调度); 进程的优先级。 可以再次用到时间片轮转、优先级调度,或其他各种算法; 高级和低级调度程序可以使用相同或不同的算法。,2020/7/17,47,1.多道程序环境下,操作系统分配资源以( )为基本单位。 A.程序 B.指令 C.进程 D.作业 2.一个进程被唤醒意味着( )。 A该进程重新占有了CPU, B它的优先权变为最大 C其PCB移至等待队列队首,D进程变为就绪状
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 环保学习资料回收行业跨境出海战略研究报告
- 全面购房合同标准文本
- 修建公墓合同标准文本
- 窄式阅读对初中生英语词汇附带习得的影响研究
- 公益摄影合同标准文本
- 信房贷款合同标准文本
- 基于高可靠通信的稀疏码多址接入技术研究
- 页岩油气地层非Magara压实规律研究
- 基于RMP模式烟台市芝罘区夜间休闲产业的开发与优化研究
- 大型煤气化炉特性优化及IGCC发电系统集成研究
- GB/T 15382-2021气瓶阀通用技术要求
- FZ/T 51004-2011纤维级聚己内酰胺切片
- 2023年江苏省中学生生物学竞赛(奥赛)初赛试题和答案
- 2020年(汽车行业)汽车行业英文缩写
- 舞蹈素质测试表
- DB15T 1417-2018 胶粉改性沥青及混合料设计与施工规范
- 基于核心素养导向的初中数学试题命制策略与实例课件
- 城市环境卫生工作物资消耗定额
- 学校卫生监督课件
- 物理人教版(2019)必修第二册5.2运动的合成与分解(共19张ppt)
- 中国航信离港系统讲义
评论
0/150
提交评论