




已阅读5页,还剩64页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,2019年7月26日星期五,北京交通大学计算机学院,操作系统(A),北京交通大学计算机学院 何永忠 副教授,第二章:进程管理,2,2019年7月26日星期五,北京交通大学计算机学院,回顾与展望,操作系统是管理资源者 具有有效性和方便性 多道和分时是实现上述要求的基本方法 后续的教学任务:如何实现操作系统?有哪些难点?采用什么技术方法?,3,2019年7月26日星期五,北京交通大学计算机学院,学习要求,进程管理是全书的重点也是难点 如何理解 本次课的要求 难点:实现操作系统的第一个挑战?为什么要引入进程?进程到底是什么? 重点:并发性,进程状态转移 了解:进程控制,4,2019年7月26日星期五,北京交通大学计算机学院,第二章 进程管理,2.1 进程的基本概念 2.2 进程控制 2.3 进程同步 2.4 经典进程同步问题 2.5 管程 2.6 进程通信 2.7 线程,5,2019年7月26日星期五,北京交通大学计算机学院,第一个挑战,单道程序 操作系统只需要将作业调入内存,并转入作业入口开始执行后,计算机系统就可以交给该作业,除了被动响应程序的服务请求外,就无事可做了。 多道程序 多道和分时系统的最重要共性:并发 并发是提高效率、方便性的最核心手段 多个程序在内存并发时,操作系统就必须进行主动的干预,复杂性大大增加。,6,2019年7月26日星期五,北京交通大学计算机学院,顺序、并行、并发执行,7,2019年7月26日星期五,北京交通大学计算机学院,并发,定义:两个或多个程序在同一时间间隔内运行。 并行执行:同一时刻执行两个或者多个 顺序执行:独占系统依次执行 并行和顺序是并发执行的特殊情况,8,2019年7月26日星期五,北京交通大学计算机学院,下面这些关于并发的说法对不对? 宏观上并行,微观上交替执行 先执行的不一定先结束 同一时刻只有一个程序执行 同一时间段有多个程序执行,并发,9,2019年7月26日星期五,北京交通大学计算机学院,多个程序共享CPU 如何保证一个程序暂停后下一次还能从上次断点继续执行? 换一种说法:OS把一个CPU正确的虚拟化为多个CPU必须做哪些工作?,第一个挑战,10,2019年7月26日星期五,北京交通大学计算机学院,CPU的虚拟化,每个虚拟CPU需要保存哪些信息? PC,SP, 其他寄存器等 切换CPU时的操作 先保存CPUi的信息 在加载CPUj的信息 切换的时机 程序主动放弃CPU、时钟中断等,11,2019年7月26日星期五,北京交通大学计算机学院,程序并发执行可能导致意想不到的后果!,第二个挑战,12,2019年7月26日星期五,北京交通大学计算机学院,并发执行约束:前趋图,=(P1,P2),(P1,P3),(P1,P4),(P2,P5),(P3,P5),(P4,P6),(P5,P7),(P6,P7) PiPj 称Pi是Pj的直接前趋,Pj是Pi的直接后继,13,2019年7月26日星期五,北京交通大学计算机学院,前趋图中必须不存在循环,图例中存在前趋关系S2S3和S3 S2,显然,这种前趋关系是无法满足的。,14,2019年7月26日星期五,北京交通大学计算机学院,单道程序顺序执行,程序的顺序执行 构成程序的若干个程序段之间 组成程序段的多条语句之间,S1: a:=x+y; S2: b:=a-5; S3: c:=b+1;,15,2019年7月26日星期五,北京交通大学计算机学院,单道程序顺序执行时的特征,顺序性 处理机严格按照程序指令的规定顺序执行 封闭性 封闭环境下运行,程序独占全机资源 只有当前运行程序才能改变资源状态 程序执行结果不受外界因素的影响 可再现性 只要程序执行时的环境和初始条件相同,程序重复执行结果相同,16,2019年7月26日星期五,北京交通大学计算机学院,单道程序顺序执行时的特性与程序员对编程的认知完全相同,为程序实现和错误调试,带来极大方便,17,2019年7月26日星期五,北京交通大学计算机学院,程序并发执行例1,同一程序内部语句间并发执行及其前驱关系 S1: a:=x+2 S2: b:=y+4 S3: c:=a+b S4: d:=c+6,不遵守?,18,2019年7月26日星期五,北京交通大学计算机学院,程序并发执行例2,同一程序内不同部分以及程序间并发执行 第i个程序:IiCi Pi IiIi+1 CiCi+1 PiPi+1,不遵守?,19,2019年7月26日星期五,北京交通大学计算机学院,程序并发执行举例,程序间并发,程序内语句顺序执行 共享变量N,初值为0 程序A A1: N=1; 程序B B1: Print(N); B2: N=0;,20,2019年7月26日星期五,北京交通大学计算机学院,程序并发执行,A1: N=1,B1: Print(N),B2: N=0,A1: N=1,B1: Print(N),B2: N=0,21,2019年7月26日星期五,北京交通大学计算机学院,程序并发执行的特征与问题,间断性 “执行暂停执行执行”的活动规律 失去封闭性 系统资源共享及资源状态改变的多样性,致使程序运行失去封闭性,程序运行必然会受到其它程序的影响 不可再现性 并发执行的程序,计算结果与其执行速度及时间有关,程序B执行情况与单道顺序执行的区别?,22,2019年7月26日星期五,北京交通大学计算机学院,解决方法:进程的引入,需求: 需要记录新的数据控制并发程序执行 需要控制并发程序执行的先后关系 现状: 程序的概念已不能完整、有效地描述和控制并发程序在内存中的运行,23,2019年7月26日星期五,北京交通大学计算机学院,进程的定义,进程控制块:存放了进程标识符、进程运行的当前状态、程序和数据的地址以及关于该程序运行时的CPU环境信息 进程实体:由程序段、数据段及进程控制块三部分构成 进程 进程实体的运行 可并发程序的执行,24,2019年7月26日星期五,北京交通大学计算机学院,进程,进程就成为一个可活动的、能改变其他客体的、有生命的主动实体 像不像“人”? 进程实体是进程的“身体”? 进程成为操作系统一个独立的管理对象 进程=主体=主动发起 数据、硬件设备=客体=被动接收,25,2019年7月26日星期五,北京交通大学计算机学院,进程作为主体意义 操作系统把“资源”分配给“享有权利、负有义务、承担责任的主体”(进程) 把CPU分配给进程的过程就是“调度” 进程是操作系统中资源分配和调度的一个独立单位,进程,26,2019年7月26日星期五,北京交通大学计算机学院,进程的特征与程序的区别与联系,结构特征 程序段、数据段及进程控制块 动态性 生命周期及“执行” 本质 并发性 共存于内存、宏观同时运行 独立性 调度、资源分配、运行 异步性 推进相互独立、速度不可预知,27,2019年7月26日星期五,北京交通大学计算机学院,进程状态的引入,并发进程的执行模式:“执行-暂停-执行”,暂停时可能是正在I/O操作,可能是上次的时间片用完等情况。 调度时操作系统如何获知哪些进程可以被调度执行?哪些暂时还不行呢?,28,2019年7月26日星期五,北京交通大学计算机学院,进程的基本状态及状态转换,29,2019年7月26日星期五,北京交通大学计算机学院,课堂练习与讨论,30,2019年7月26日星期五,北京交通大学计算机学院,引入挂起状态的可能原因,终端用户的请求 程序运行期间发现可疑问题暂停进程 父进程的请求 考察、修改或协调子进程 操作系统的需要 运行中资源使用情况的检查和记账 负载调节的需要 负荷调节和保证实时系统正常运行,I/O请求与挂起请求的区别 主动I/O 被动挂起 I/O时间不定挂起时间较长,31,2019年7月26日星期五,北京交通大学计算机学院,具有挂起状态的进程状态图,32,2019年7月26日星期五,北京交通大学计算机学院,作业题,2.1 比较程序的顺序执行和并发执行。 2.2 比较程序和进程。 2.3 试对进程的状态及状态转换进行总结,注意状态转换的物理含义及转化条件。 2.4 试举例说明引起进程创建、撤消、阻塞或被唤醒的主要事件分别有哪些?,33,2019年7月26日星期五,北京交通大学计算机学院,第二章 进程管理,2.1 进程的基本概念 2.2 进程控制 2.3 进程同步 2.4 经典进程同步问题 2.5 管程 2.6 进程通信 2.7 线程,34,2019年7月26日星期五,北京交通大学计算机学院,2.2 进程控制,2.2.1 进程控制块 2.2.2 进程图 2.2.3 进程的创建与终止 2.2.4 进程的阻塞与唤醒 2.2.5 进程的挂起与激活 2.2.6 UNIX进程描述与控制,35,2019年7月26日星期五,北京交通大学计算机学院,进程控制块,进程实体的一部分,拥有描述进程情况及控制进程运行所需的全部信息的记录性数据结构 使一个在多道程序环境下不能独立运行的程序,成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程 操作系统控制和管理并发执行进程的依据 进程存在的惟一标志 常驻内存并存放于操作系统专门开辟的PCB区,进程的身份证和档案,36,2019年7月26日星期五,北京交通大学计算机学院,进程控制块中的信息,名字:进程标识符 内/外部、父/子进程、用户标识符 切换状态记录:处理器状态信息 通用、PC、PSW、用户栈指针寄存器 进程调度信息 进程状态、进程优先级、事件及其它 其他进程控制信息 程序和数据地址、进程同步通信机制 资源清单、链接指针,37,2019年7月26日星期五,北京交通大学计算机学院,进程控制块的组织方式1链接方式,38,2019年7月26日星期五,北京交通大学计算机学院,进程控制块的组织方式2索引方式,执行指针,就绪表指针,阻塞表指针,就绪索引表,阻塞索引表,方式1和2哪个快?哪个节约空间?,39,2019年7月26日星期五,北京交通大学计算机学院,Linux2.2.26内核struct task_struct1/10,40,2019年7月26日星期五,北京交通大学计算机学院,Linux2.2.26内核struct task_struct2/10,41,2019年7月26日星期五,北京交通大学计算机学院,Linux2.2.26内核struct task_struct3/10,42,2019年7月26日星期五,北京交通大学计算机学院,Linux2.2.26内核struct task_struct4/10,43,2019年7月26日星期五,北京交通大学计算机学院,Linux2.2.26内核struct task_struct5/10,44,2019年7月26日星期五,北京交通大学计算机学院,Linux2.2.26内核struct task_struct6/10,45,2019年7月26日星期五,北京交通大学计算机学院,Linux2.2.26内核struct task_struct7/10,46,2019年7月26日星期五,北京交通大学计算机学院,Linux2.2.26内核struct task_struct8/10,47,2019年7月26日星期五,北京交通大学计算机学院,Linux2.2.26内核struct task_struct9/10,48,2019年7月26日星期五,北京交通大学计算机学院,Linux2.2.26内核struct task_struct10/10,49,2019年7月26日星期五,北京交通大学计算机学院,2.2 进程控制,2.2.1 进程控制块 2.2.2 进程图 2.2.3 进程的创建与终止 2.2.4 进程的阻塞与唤醒 2.2.5 进程的挂起与激活 2.2.6 UNIX进程描述与控制,50,2019年7月26日星期五,北京交通大学计算机学院,进程图(进程树),描述进程家族关系的有向树 结点/有向边 父/子进程 祖父进程/祖先,有什么用?,51,2019年7月26日星期五,北京交通大学计算机学院,2.2 进程控制,2.2.1 进程控制块 2.2.2 进程图 2.2.3 进程的创建与终止 2.2.4 进程的阻塞与唤醒 2.2.5 进程的挂起与激活 2.2.6 UNIX进程描述与控制,52,2019年7月26日星期五,北京交通大学计算机学院,进程的控制,进程的从诞生到消亡的整个生命周期都是在操作系统控制下进行的。 创建诞生;终止消亡,运行结束,53,2019年7月26日星期五,北京交通大学计算机学院,引起创建/终止进程的事件,用户登录 分时系统中,验证为合法的终端用户登录 作业调度 批处理系统中作业调度程序调度到某作业 提供服务 运行中的用户程序提出某种请求 应用请求 基于应用进程的需要由其自身创建新进程,正常结束 批处理系统中Halt,分时系统中LogsOff 异常结束 越界错误、保护错 特权指令错 非法指令错 运行超时、等待超时 算术运算错、I/O故障 外界干预 操作员或操作系统干预 父进程请求/终止,54,2019年7月26日星期五,北京交通大学计算机学院,Windows中引起创建进程的事件,系统启动 用户登陆 用户请求 应用程序请求,55,2019年7月26日星期五,北京交通大学计算机学院,控制进程服务的实现方法,系统调用 原语 一种更基本的系统调用。 运行过程不可中断 具有类似事务的原子性,可不分割执行,不可并发交错执行,56,2019年7月26日星期五,北京交通大学计算机学院,创建进程的操作步骤,操作对象:进程实体(PCB、代码、数据),57,2019年7月26日星期五,北京交通大学计算机学院,进程创建/终止过程,Create()原语 1、申请Pid,空白PCB 2、为新进程的程序和数据及用户栈分配必要的内存空间 所需内存大小问题 3、初始化进程控制块 自身/父进程标识符 处理机状态/调度信息 4、将新进程插入到就绪进程队列,Terminate()原语 1、读取进程状态,若其正处于执行状态,应立即中止执行并设置调度标志为真 2、终止子孙进程 3、资源归还 4、释放PCB,58,2019年7月26日星期五,北京交通大学计算机学院,2.2 进程控制,2.2.1 进程控制块 2.2.2 进程图 2.2.3 进程的创建与终止 2.2.4 进程的阻塞与唤醒 2.2.5 进程的挂起与激活 2.2.6 UNIX进程描述与控制,59,2019年7月26日星期五,北京交通大学计算机学院,引起进程阻塞/唤醒的事件,请求系统服务 但不能立即满足 启动某种操作 且必须在该操作完成之后才能继续执行 新数据尚未到达 相互合作进程的一方需首先获得另一进程数据才能继续 无新工作可做 特定功能系统进程当完成任务且暂无任务,系统服务满足 操作完成 数据到达 新任务出现,60,2019年7月26日星期五,北京交通大学计算机学院,进程阻塞/唤醒过程,Block()原语 1、先立即停止执行,把进程控制块中的现行状态由“执行”改为阻塞,并将它插入到对应的阻塞队列中 2、转调度程序进行重新调度,将处理机分配给另一就绪进程,并进行切换,Wakeup()原语 首先把被阻塞进程从等待该事件的阻塞进程队列中移出,将其PCB中的现行状态由阻塞改为就绪,然后再将该进程插入到就绪队列中,?,原语配对!,61,2019年7月26日星期五,北京交通大学计算机学院,2.2 进程控制,2.2.1 进程控制块 2.2.2 进程图 2.2.3 进程的创建与终止 2.2.4 进程的阻塞与唤醒 2.2.5 进程的挂起与激活 2.2.6 UNIX进程描述与控制,62,2019年7月26日星期五,北京交通大学计算机学院,进程挂起/激活过程,Suspend()原语 1、检查被挂进程现行状态并修改和插队 2、复制PCB到指定区域 3、若被挂进程正在执行则转向调度程序重新调度,Activate()原语 1、检查进程现行状态并修改和插队 2、若有新进程进入就绪队列且采用了抢占式调度策略,则检查和决定是否重新调度,?,?,63,2019年7月26日星期五,北京交通大学计算机学院,UNIX进程控制块PCB,进程表,本进程区表,内存,CODE,DATA,STACK,系统区表,进程U区,64,2019年7月26日星期五,北京交通大
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 历史金与南宋的对峙课件 2024-2025学年统编版历史七年级下册
- 城市污水处理厂智能化升级改造中的水质监测与预警系统优化策略报告
- 传统食品产业升级关键:2025年工业化生产技术改造全景报告
- 2025年绿色消费理念传播与消费行为引导在绿色环保产业可持续发展中的应用报告
- 教育行业质量评估与认证体系在学生信息素养教育中的实践探索报告
- 医美行业消费趋势分析报告:2025年市场规范化发展消费者满意度调查
- 产业转移园区建设2025年社会稳定风险评估与区域安全风险监测
- 2025下半年证券行业政策端利好、流动性支持下券商有望迎来业绩与估值双升
- 核酸数据上报管理制度
- 中药储存温湿度管理制度
- 消防培训课件2025
- 2025-2030中国HFO1234yf行业市场现状供需分析及投资评估规划分析研究报告
- 2025年江西上饶市中考一模化学试题(含答案)
- DBJ52T-既有建筑幕墙安全性检测鉴定技术规程
- 2024北京化学工业集团有限责任公司所属企业招聘33人笔试参考题库附带答案详解
- 新能源货车租赁战略合作协议书(2篇)
- 数学教师个人述职报告总结
- 2023承压设备产品焊接试件的力学性能检验
- ESG趋势下企业财务管理新挑战
- 森林防灭火应急处置课件
- 贡菜的栽培技术
评论
0/150
提交评论