HYZ-OS-2013-进程管理.ppt

上传人:za****8 文档编号:11830637 上传时间:2020-05-03 格式:PPT 页数:69 大小:428.01KB
返回 下载 相关 举报
HYZ-OS-2013-进程管理.ppt_第1页
第1页 / 共69页
HYZ-OS-2013-进程管理.ppt_第2页
第2页 / 共69页
HYZ-OS-2013-进程管理.ppt_第3页
第3页 / 共69页
点击查看更多>>
资源描述
1,2020年5月3日星期日,北京交通大学计算机学院,操作系统(A),北京交通大学计算机学院何永忠副教授,第二章:进程管理,2,2020年5月3日星期日,北京交通大学计算机学院,回顾与展望,操作系统是管理资源者具有有效性和方便性多道和分时是实现上述要求的基本方法后续的教学任务:如何实现操作系统?有哪些难点?采用什么技术方法?,3,2020年5月3日星期日,北京交通大学计算机学院,学习要求,进程管理是全书的重点也是难点如何理解本次课的要求难点:实现操作系统的第一个挑战?为什么要引入进程?进程到底是什么?重点:并发性,进程状态转移了解:进程控制,4,2020年5月3日星期日,北京交通大学计算机学院,第二章进程管理,2.1进程的基本概念2.2进程控制2.3进程同步2.4经典进程同步问题2.5管程2.6进程通信2.7线程,5,2020年5月3日星期日,北京交通大学计算机学院,第一个挑战,单道程序操作系统只需要将作业调入内存,并转入作业入口开始执行后,计算机系统就可以交给该作业,除了被动响应程序的服务请求外,就无事可做了。多道程序多道和分时系统的最重要共性:并发并发是提高效率、方便性的最核心手段多个程序在内存并发时,操作系统就必须进行主动的干预,复杂性大大增加。,6,2020年5月3日星期日,北京交通大学计算机学院,顺序、并行、并发执行,7,2020年5月3日星期日,北京交通大学计算机学院,并发,定义:两个或多个程序在同一时间间隔内运行。并行执行:同一时刻执行两个或者多个顺序执行:独占系统依次执行并行和顺序是并发执行的特殊情况,8,2020年5月3日星期日,北京交通大学计算机学院,下面这些关于并发的说法对不对?宏观上并行,微观上交替执行先执行的不一定先结束同一时刻只有一个程序执行同一时间段有多个程序执行,并发,9,2020年5月3日星期日,北京交通大学计算机学院,多个程序共享CPU如何保证一个程序暂停后下一次还能从上次断点继续执行?换一种说法:OS把一个CPU正确的虚拟化为多个CPU必须做哪些工作?,第一个挑战,10,2020年5月3日星期日,北京交通大学计算机学院,CPU的虚拟化,每个虚拟CPU需要保存哪些信息?PC,SP,其他寄存器等切换CPU时的操作先保存CPUi的信息在加载CPUj的信息切换的时机程序主动放弃CPU、时钟中断等,11,2020年5月3日星期日,北京交通大学计算机学院,程序并发执行可能导致意想不到的后果!,第二个挑战,12,2020年5月3日星期日,北京交通大学计算机学院,并发执行约束:前趋图,=(P1,P2),(P1,P3),(P1,P4),(P2,P5),(P3,P5),(P4,P6),(P5,P7),(P6,P7)PiPj称Pi是Pj的直接前趋,Pj是Pi的直接后继,13,2020年5月3日星期日,北京交通大学计算机学院,前趋图中必须不存在循环,图例中存在前趋关系S2S3和S3S2,显然,这种前趋关系是无法满足的。,14,2020年5月3日星期日,北京交通大学计算机学院,单道程序顺序执行,程序的顺序执行构成程序的若干个程序段之间组成程序段的多条语句之间,S1:a:=x+y;S2:b:=a-5;S3:c:=b+1;,15,2020年5月3日星期日,北京交通大学计算机学院,单道程序顺序执行时的特征,顺序性处理机严格按照程序指令的规定顺序执行封闭性封闭环境下运行,程序独占全机资源只有当前运行程序才能改变资源状态程序执行结果不受外界因素的影响可再现性只要程序执行时的环境和初始条件相同,程序重复执行结果相同,16,2020年5月3日星期日,北京交通大学计算机学院,单道程序顺序执行时的特性与程序员对编程的认知完全相同,为程序实现和错误调试,带来极大方便,17,2020年5月3日星期日,北京交通大学计算机学院,程序并发执行例1,同一程序内部语句间并发执行及其前驱关系S1:a:=x+2S2:b:=y+4S3:c:=a+bS4:d:=c+6,不遵守?,18,2020年5月3日星期日,北京交通大学计算机学院,程序并发执行例2,同一程序内不同部分以及程序间并发执行第i个程序:IiCiPiIiIi+1CiCi+1PiPi+1,不遵守?,19,2020年5月3日星期日,北京交通大学计算机学院,程序并发执行举例,程序间并发,程序内语句顺序执行共享变量N,初值为0程序AA1:N=1;程序BB1:Print(N);B2:N=0;,20,2020年5月3日星期日,北京交通大学计算机学院,程序并发执行,A1:N=1,B1:Print(N),B2:N=0,A1:N=1,B1:Print(N),B2:N=0,21,2020年5月3日星期日,北京交通大学计算机学院,程序并发执行的特征与问题,间断性“执行暂停执行执行”的活动规律失去封闭性系统资源共享及资源状态改变的多样性,致使程序运行失去封闭性,程序运行必然会受到其它程序的影响不可再现性并发执行的程序,计算结果与其执行速度及时间有关,程序B执行情况与单道顺序执行的区别?,22,2020年5月3日星期日,北京交通大学计算机学院,解决方法:进程的引入,需求:需要记录新的数据控制并发程序执行需要控制并发程序执行的先后关系现状:程序的概念已不能完整、有效地描述和控制并发程序在内存中的运行,23,2020年5月3日星期日,北京交通大学计算机学院,进程的定义,进程控制块:存放了进程标识符、进程运行的当前状态、程序和数据的地址以及关于该程序运行时的CPU环境信息进程实体:由程序段、数据段及进程控制块三部分构成进程进程实体的运行可并发程序的执行,24,2020年5月3日星期日,北京交通大学计算机学院,进程,进程就成为一个可活动的、能改变其他客体的、有生命的主动实体像不像“人”?进程实体是进程的“身体”?进程成为操作系统一个独立的管理对象进程=主体=主动发起数据、硬件设备=客体=被动接收,25,2020年5月3日星期日,北京交通大学计算机学院,进程作为主体意义操作系统把“资源”分配给“享有权利、负有义务、承担责任的主体”(进程)把CPU分配给进程的过程就是“调度”进程是操作系统中资源分配和调度的一个独立单位,进程,26,2020年5月3日星期日,北京交通大学计算机学院,进程的特征与程序的区别与联系,结构特征程序段、数据段及进程控制块动态性生命周期及“执行”本质并发性共存于内存、宏观同时运行独立性调度、资源分配、运行异步性推进相互独立、速度不可预知,27,2020年5月3日星期日,北京交通大学计算机学院,进程状态的引入,并发进程的执行模式:“执行-暂停-执行”,暂停时可能是正在I/O操作,可能是上次的时间片用完等情况。调度时操作系统如何获知哪些进程可以被调度执行?哪些暂时还不行呢?,28,2020年5月3日星期日,北京交通大学计算机学院,进程的基本状态及状态转换,29,2020年5月3日星期日,北京交通大学计算机学院,课堂练习与讨论,30,2020年5月3日星期日,北京交通大学计算机学院,引入挂起状态的可能原因,终端用户的请求程序运行期间发现可疑问题暂停进程父进程的请求考察、修改或协调子进程操作系统的需要运行中资源使用情况的检查和记账负载调节的需要负荷调节和保证实时系统正常运行,I/O请求与挂起请求的区别主动I/O被动挂起I/O时间不定挂起时间较长,31,2020年5月3日星期日,北京交通大学计算机学院,具有挂起状态的进程状态图,32,2020年5月3日星期日,北京交通大学计算机学院,作业题,2.1比较程序的顺序执行和并发执行。2.2比较程序和进程。2.3试对进程的状态及状态转换进行总结,注意状态转换的物理含义及转化条件。2.4试举例说明引起进程创建、撤消、阻塞或被唤醒的主要事件分别有哪些?,33,2020年5月3日星期日,北京交通大学计算机学院,第二章进程管理,2.1进程的基本概念2.2进程控制2.3进程同步2.4经典进程同步问题2.5管程2.6进程通信2.7线程,34,2020年5月3日星期日,北京交通大学计算机学院,2.2进程控制,2.2.1进程控制块2.2.2进程图2.2.3进程的创建与终止2.2.4进程的阻塞与唤醒2.2.5进程的挂起与激活2.2.6UNIX进程描述与控制,35,2020年5月3日星期日,北京交通大学计算机学院,进程控制块,进程实体的一部分,拥有描述进程情况及控制进程运行所需的全部信息的记录性数据结构使一个在多道程序环境下不能独立运行的程序,成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程操作系统控制和管理并发执行进程的依据进程存在的惟一标志常驻内存并存放于操作系统专门开辟的PCB区,进程的身份证和档案,36,2020年5月3日星期日,北京交通大学计算机学院,进程控制块中的信息,名字:进程标识符内/外部、父/子进程、用户标识符切换状态记录:处理器状态信息通用、PC、PSW、用户栈指针寄存器进程调度信息进程状态、进程优先级、事件及其它其他进程控制信息程序和数据地址、进程同步通信机制资源清单、链接指针,37,2020年5月3日星期日,北京交通大学计算机学院,进程控制块的组织方式1链接方式,38,2020年5月3日星期日,北京交通大学计算机学院,进程控制块的组织方式2索引方式,执行指针,就绪表指针,阻塞表指针,就绪索引表,阻塞索引表,方式1和2哪个快?哪个节约空间?,39,2020年5月3日星期日,北京交通大学计算机学院,Linux2.2.26内核structtask_struct1/10,40,2020年5月3日星期日,北京交通大学计算机学院,Linux2.2.26内核structtask_struct2/10,41,2020年5月3日星期日,北京交通大学计算机学院,Linux2.2.26内核structtask_struct3/10,42,2020年5月3日星期日,北京交通大学计算机学院,Linux2.2.26内核structtask_struct4/10,43,2020年5月3日星期日,北京交通大学计算机学院,Linux2.2.26内核structtask_struct5/10,44,2020年5月3日星期日,北京交通大学计算机学院,Linux2.2.26内核structtask_struct6/10,45,2020年5月3日星期日,北京交通大学计算机学院,Linux2.2.26内核structtask_struct7/10,46,2020年5月3日星期日,北京交通大学计算机学院,Linux2.2.26内核structtask_struct8/10,47,2020年5月3日星期日,北京交通大学计算机学院,Linux2.2.26内核structtask_struct9/10,48,2020年5月3日星期日,北京交通大学计算机学院,Linux2.2.26内核structtask_struct10/10,49,2020年5月3日星期日,北京交通大学计算机学院,2.2进程控制,2.2.1进程控制块2.2.2进程图2.2.3进程的创建与终止2.2.4进程的阻塞与唤醒2.2.5进程的挂起与激活2.2.6UNIX进程描述与控制,50,2020年5月3日星期日,北京交通大学计算机学院,进程图(进程树),描述进程家族关系的有向树结点/有向边父/子进程祖父进程/祖先,有什么用?,51,2020年5月3日星期日,北京交通大学计算机学院,2.2进程控制,2.2.1进程控制块2.2.2进程图2.2.3进程的创建与终止2.2.4进程的阻塞与唤醒2.2.5进程的挂起与激活2.2.6UNIX进程描述与控制,52,2020年5月3日星期日,北京交通大学计算机学院,进程的控制,进程的从诞生到消亡的整个生命周期都是在操作系统控制下进行的。创建诞生;终止消亡,运行结束,53,2020年5月3日星期日,北京交通大学计算机学院,引起创建/终止进程的事件,用户登录分时系统中,验证为合法的终端用户登录作业调度批处理系统中作业调度程序调度到某作业提供服务运行中的用户程序提出某种请求应用请求基于应用进程的需要由其自身创建新进程,正常结束批处理系统中Halt,分时系统中LogsOff异常结束越界错误、保护错特权指令错非法指令错运行超时、等待超时算术运算错、I/O故障外界干预操作员或操作系统干预父进程请求/终止,54,2020年5月3日星期日,北京交通大学计算机学院,Windows中引起创建进程的事件,系统启动用户登陆用户请求应用程序请求,55,2020年5月3日星期日,北京交通大学计算机学院,控制进程服务的实现方法,系统调用原语一种更基本的系统调用。运行过程不可中断具有类似事务的原子性,可不分割执行,不可并发交错执行,56,2020年5月3日星期日,北京交通大学计算机学院,创建进程的操作步骤,操作对象:进程实体(PCB、代码、数据),57,2020年5月3日星期日,北京交通大学计算机学院,进程创建/终止过程,Create()原语1、申请Pid,空白PCB2、为新进程的程序和数据及用户栈分配必要的内存空间所需内存大小问题3、初始化进程控制块自身/父进程标识符处理机状态/调度信息4、将新进程插入到就绪进程队列,Terminate()原语1、读取进程状态,若其正处于执行状态,应立即中止执行并设置调度标志为真2、终止子孙进程3、资源归还4、释放PCB,58,2020年5月3日星期日,北京交通大学计算机学院,2.2进程控制,2.2.1进程控制块2.2.2进程图2.2.3进程的创建与终止2.2.4进程的阻塞与唤醒2.2.5进程的挂起与激活2.2.6UNIX进程描述与控制,59,2020年5月3日星期日,北京交通大学计算机学院,引起进程阻塞/唤醒的事件,请求系统服务但不能立即满足启动某种操作且必须在该操作完成之后才能继续执行新数据尚未到达相互合作进程的一方需首先获得另一进程数据才能继续无新工作可做特定功能系统进程当完成任务且暂无任务,系统服务满足操作完成数据到达新任务出现,60,2020年5月3日星期日,北京交通大学计算机学院,进程阻塞/唤醒过程,Block()原语1、先立即停止执行,把进程控制块中的现行状态由“执行”改为阻塞,并将它插入到对应的阻塞队列中2、转调度程序进行重新调度,将处理机分配给另一就绪进程,并进行切换,Wakeup()原语首先把被阻塞进程从等待该事件的阻塞进程队列中移出,将其PCB中的现行状态由阻塞改为就绪,然后再将该进程插入到就绪队列中,?,原语配对!,61,2020年5月3日星期日,北京交通大学计算机学院,2.2进程控制,2.2.1进程控制块2.2.2进程图2.2.3进程的创建与终止2.2.4进程的阻塞与唤醒2.2.5进程的挂起与激活2.2.6UNIX进程描述与控制,62,2020年5月3日星期日,北京交通大学计算机学院,进程挂起/激活过程,Suspend()原语1、检查被挂进程现行状态并修改和插队2、复制PCB到指定区域3、若被挂进程正在执行则转向调度程序重新调度,Activate()原语1、检查进程现行状态并修改和插队2、若有新进程进入就绪队列且采用了抢占式调度策略,则检查和决定是否重新调度,?,?,63,2020年5月3日星期日,北京交通大学计算机学院,UNIX进程控制块PCB,进程表,本进程区表,内存,CODE,DATA,STACK,系统区表,进程U区,64,2020年5月3日星期日,北京交通大学计算机学院,UNIX进程状态转换图,65,2020年5月3日星期日,北京交通大学计算机学院,进程映像,进程是进程映像的执行过程,进程映像则是正在运行进程实体用户级上下文用户程序(正文区、数据区)、用户栈区、共享存储区寄存器上下文PC、PSW、栈指针、通用寄存器系统级上下文进程表项、U区、本进程区表、系统区表项、页表核心栈、若干层寄存器上下文,66,2020年5月3日星期日,北京交通大学计算机学院,进程控制,fork系统调用(“克隆”)创建子进程,父子进程代码共享。子进程复制父进程当前的所有其他上下文信息然后都从同一地方开始运行0号(对换)进程=1号(始祖)进程以1号进程为根创建其他进程,形成进程树。exec系统调用(“变异”)改变进程原有代码(更新用户级上下文)没有新的进程产生exit系统调用实现进程自我终止,67,2020年5月3日星期日,北京交通大学计算机学院,2.2进程控制,2.2.1进程控制块2.2.2进程图2.2.3进程的创建与终止2.2.4进程的阻塞与唤醒2.2.5进程的挂起与激活2.2.6UNIX进程描述与控制,68,2020年5月3日星期日,北京交通大学计算机学院,进程调度,引起进程调度的原因时钟中断核心态执行返回放弃处理机,69,2020年5月3日星期日,北京交通大学计算机学院,作业题,2.5试根据你自己的理解,采用类C语言设计和描述操作系统关于进程控制块的数据结构、组织方式及管理机制。在此基础上,给出进程的创建、终止、阻塞、唤醒、挂起与激活等函数原型及函数代码。注意,对于过于复杂的功能或你无法解决的细节可采用指定功能的函数模块如处理机调度scheduler()来替代。,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!