操作系统hyz os2013进程管理_第1页
操作系统hyz os2013进程管理_第2页
操作系统hyz os2013进程管理_第3页
操作系统hyz os2013进程管理_第4页
操作系统hyz os2013进程管理_第5页
已阅读5页,还剩72页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、12022年3月5日星期六北京交通大学计算机学院操作系统(操作系统(A)北京交通大学计算机学院何永忠 副教授第二章:进程管理22022年3月5日星期六北京交通大学计算机学院回顾与展望n操作系统是管理资源者n具有有效性和方便性n多道和分时是实现上述要求的基本方法n后续的教学任务:如何实现操作系统?有哪些难点?采用什么技术方法?32022年3月5日星期六北京交通大学计算机学院学习要求n进程管理是全书的重点也是难点n如何理解n本次课的要求n难点:实现操作系统的第一个挑战?为什么要引入进程?进程到底是什么?n重点:并发性,进程状态转移n了解:进程控制42022年3月5日星期六北京交通大学计算机学院第二

2、章第二章 进程管理进程管理2.1 进程的基本概念2.2 进程控制2.3 进程同步2.4 经典进程同步问题2.5 管程2.6 进程通信2.7 线程52022年3月5日星期六北京交通大学计算机学院第一个挑战n单道程序n操作系统只需要将作业调入内存,并转入作业入口开始执行后,计算机系统就可以交给该作业,除了被动响应程序的服务请求外,就无事可做了。n多道程序n多道和分时系统的最重要共性:并发并发n并发是提高效率、方便性的最核心手段并发是提高效率、方便性的最核心手段n多个程序在内存并发时,操作系统就必须进行主动的干预,复杂性大大增加。62022年3月5日星期六北京交通大学计算机学院顺序、并行、并发执行7

3、2022年3月5日星期六北京交通大学计算机学院并发并发n定义:两个或多个程序在同一时间间隔同一时间间隔内运行。n并行执行:同一时刻执行两个或者多个n顺序执行:独占系统依次执行n并行和顺序是并发执行的特殊情况82022年3月5日星期六北京交通大学计算机学院n下面这些关于并发的说法对不对?n宏观上并行,微观上交替执行n先执行的不一定先结束n同一时刻只有一个程序执行n同一时间段有多个程序执行并发并发92022年3月5日星期六北京交通大学计算机学院n多个程序共享CPUn如何保证一个程序暂停后下一次还能从上次断点继续执行?n换一种说法:OS把一个CPU正确的虚拟化为多个CPU必须做哪些工作?第一个挑战第

4、一个挑战CPU1CPU2CPU3CPU1CPU2Time 102022年3月5日星期六北京交通大学计算机学院CPU的虚拟化n每个虚拟CPU需要保存哪些信息?nPC,SP, 其他寄存器等n切换CPU时的操作n先保存CPUi的信息n在加载CPUj的信息n切换的时机n程序主动放弃CPU、时钟中断等112022年3月5日星期六北京交通大学计算机学院 程序并发执行可能导致程序并发执行可能导致意想不到的后果!意想不到的后果!第二个挑战122022年3月5日星期六北京交通大学计算机学院并发执行约束:前趋图q=(P1,P2),(P1,P3),(P1,P4),(P2,P5),(P3,P5),(P4,P6),(P

5、5,P7),(P6,P7)qPiPj称Pi是Pj的直接前趋,Pj是Pi的直接后继P1P2P3P4P5P6P7132022年3月5日星期六北京交通大学计算机学院前趋图中必须不存在循环q图例中存在前趋关系S2S3和S3 S2,显然,这种前趋关系是无法满足的。S1S2S3142022年3月5日星期六北京交通大学计算机学院单道程序顺序执行q程序的顺序执行构成程序的若干个程序段之间组成程序段的多条语句之间IiCiPiS1: a:=x+y;S2: b:=a-5;S3: c:=b+1;152022年3月5日星期六北京交通大学计算机学院单道程序顺序执行时的特征q顺序性处理机严格按照程序指令的规定顺序执行q封闭

6、性封闭环境下运行,程序独占全机资源只有当前运行程序才能改变资源状态程序执行结果不受外界因素的影响q可再现性只要程序执行时的环境和初始条件相同,程序重复执行结果相同162022年3月5日星期六北京交通大学计算机学院单道程序顺序执行时的特性与程序员对编程的认知完全相同,为程序实现和错误调试,带来极大方便172022年3月5日星期六北京交通大学计算机学院程序并发执行例1q同一程序内部语句间并发执行及其前驱关系S1: a:=x+2 S2: b:=y+4S3: c:=a+b S4: d:=c+6S1S3S4S2不遵守?不遵守?182022年3月5日星期六北京交通大学计算机学院程序并发执行例2q同一程序内

7、不同部分以及程序间并发执行q第i个程序:IiCi PiIiIi+1 CiCi+1 PiPi+1I1I2I3I4C1C2C3C4P1P2P3P4不遵守?不遵守?192022年3月5日星期六北京交通大学计算机学院程序并发执行举例q程序间并发,程序内语句顺序执行q共享变量N,初值为0q程序AqA1: N=1;q程序BB1: Print(N); B2: N=0;202022年3月5日星期六北京交通大学计算机学院程序并发执行A1: N=1B1: Print(N)B2: N=0A1: N=1B1: Print(N)B2: N=0A1: N=1B1: Print(N)B2: N=0212022年3月5日星期

8、六北京交通大学计算机学院程序并发执行的特征与问题q间断性“执行暂停执行执行”的活动规律q失去封闭性系统资源共享及资源状态改变的多样性,致使程序运行失去封闭性,程序运行必然会受到其它程序的影响q不可再现性并发执行的程序,计算结果与其执行速度及时间有关程序程序B B执行情况与单道顺序执行的区别?执行情况与单道顺序执行的区别?222022年3月5日星期六北京交通大学计算机学院解决方法:进程的引入q需求:q需要记录新的数据控制并发程序执行q需要控制并发程序执行的先后关系q现状:q程序的概念已不能完整、有效地描述和控制并发程序在内存中的运行232022年3月5日星期六北京交通大学计算机学院进程的定义q进

9、程控制块:进程控制块:存放了进程标识符、进程运行的当前状态、程序和数据的地址以及关于该程序运行时的CPU环境信息q进程实体进程实体: :由程序段、数据段及进程控制块三部分构成q进程进程q进程实体的运行q可并发程序的执行242022年3月5日星期六北京交通大学计算机学院进程q进程就成为一个可活动的、能改变其他客体的、有生命的主动实体q像不像“人”?q进程实体是进程的“身体”?q进程成为操作系统一个独立的管理对象q进程=主体=主动发起q数据、硬件设备=客体=被动接收252022年3月5日星期六北京交通大学计算机学院q进程作为主体意义q操作系统把“资源”分配给“享有权利、负有义务、承担责任的主体”(

10、进程)q把CPU分配给进程的过程就是“调度”q进程是操作系统中资源分配资源分配和调度调度的一个独立单位进程262022年3月5日星期六北京交通大学计算机学院进程的特征与程序的区别与联系q结构特征程序段、数据段及进程控制块q动态性生命周期及“执行” 本质q并发性共存于内存、宏观同时运行q独立性调度、资源分配、运行q异步性推进相互独立、速度不可预知272022年3月5日星期六北京交通大学计算机学院进程状态的引入n并发进程的执行模式:“执行-暂停-执行”,暂停时可能是正在I/O操作,可能是上次的时间片用完等情况。n调度时操作系统如何获知哪些进程可以被调度执行?哪些暂时还不行呢?282022年3月5日

11、星期六北京交通大学计算机学院进程的基本状态及状态转换292022年3月5日星期六北京交通大学计算机学院课堂练习与讨论n将进程状态填入合适的地方。n各个状态如何转移,转移的事件是什么?302022年3月5日星期六北京交通大学计算机学院回顾n并发:一段时间内同时执行n引入进程的两大原因n共享共享CPU:如何虚拟出多个CPUn共享资源:共享资源:失去封闭性、可再现性n进程是可并发程序的执行,是计算机中具有生命的主体。n进程的三个基本状态n就绪、执行、等待312022年3月5日星期六北京交通大学计算机学院n进程的作用n资源分配给谁拥有?n用户?数据?程序?进程!进程!n调度谁(分配CPU给谁)执行?n

12、用户?数据?程序?进程!回顾322022年3月5日星期六北京交通大学计算机学院回顾:进程和程序n进程实体包括程序代码,数据段,PCBn进程是动态的,程序是静态的。n对应关系n一个程序,可以同时对应多个进程,每个进程的代码段完全相同,但是各自有不同的数据和运行步调。n一个程序,可以有多个相互合作的子程序组成,每个子程序可以分别创建一个对应进程。332022年3月5日星期六北京交通大学计算机学院本节内容n了解:挂起状态n了解:进程控制n了解:进程控制块中的信息构成n重点:挂起与阻塞的区别n重点:进程控制块的作业n重点:原语342022年3月5日星期六北京交通大学计算机学院引入挂起状态的可能原因q终

13、端用户的请求程序运行期间发现可疑问题暂停进程q父进程的请求考察、修改或协调子进程q操作系统的需要运行中资源使用情况的检查和记账q负载调节的需要负荷调节和保证实时系统正常运行qI/O请求与挂起请求的区别q主动I/O 被动挂起qI/O时间不定挂起时间较长352022年3月5日星期六北京交通大学计算机学院具有挂起状态的进程状态图362022年3月5日星期六北京交通大学计算机学院作业题作业题q2.1 比较程序的顺序执行和并发执行。q2.2 比较程序和进程。q2.3 试对进程的状态及状态转换进行总结,注意状态转换的物理含义及转化条件。q2.4 试举例说明引起进程创建、撤消、阻塞或被唤醒的主要事件分别有哪

14、些?372022年3月5日星期六北京交通大学计算机学院第二章第二章 进程管理进程管理2.1 进程的基本概念2.2 进程控制2.3 进程同步2.4 经典进程同步问题2.5 管程2.6 进程通信2.7 线程382022年3月5日星期六北京交通大学计算机学院2.2 进程控制2.2.1 进程控制块2.2.2 进程图2.2.3 进程的创建与终止2.2.4 进程的阻塞与唤醒2.2.5 进程的挂起与激活2.2.6 UNIX进程描述与控制392022年3月5日星期六北京交通大学计算机学院进程控制块q进程实体的一部分,拥有描述进程情况及控制进程运行所需的全部信息的记录性数据结构q使一个在多道程序环境下不能独立运

15、行的程序,成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程q操作系统控制和管理并发执行进程的依据q进程存在的惟一标志q常驻内存并存放于操作系统专门开辟的PCB区进程的身份证进程的身份证和档案和档案402022年3月5日星期六北京交通大学计算机学院进程控制块中的信息q名字:进程标识符名字:进程标识符内/外部、父/子进程、用户标识符q切换状态记录:处理器状态信息切换状态记录:处理器状态信息通用、PC、PSW、用户栈指针寄存器q进程调度信息进程调度信息进程状态、进程优先级、事件及其它q其他进程控制信息其他进程控制信息程序和数据地址、进程同步通信机制资源清单、链接指针412022年3月5日

16、星期六北京交通大学计算机学院进程控制块的组织方式1链接方式PCB1PCB2PCB3PCB4PCB5PCB6PCB7PCB8.空闲队列指针空闲队列指针执行指针执行指针就绪队列指针就绪队列指针阻塞队列指针阻塞队列指针675108422022年3月5日星期六北京交通大学计算机学院进程控制块的组织方式2索引方式PCB1PCB2PCB3PCB4PCB5PCB6PCB7PCB8.执行指针执行指针就绪表指针就绪表指针阻塞表指针阻塞表指针就绪索引表就绪索引表阻塞索引表阻塞索引表方式方式1和和2哪个快?哪个快?哪个节约空间?哪个节约空间?432022年3月5日星期六北京交通大学计算机学院Linux2.2.26内

17、核struct task_struct1/10442022年3月5日星期六北京交通大学计算机学院Linux2.2.26内核struct task_struct2/10452022年3月5日星期六北京交通大学计算机学院Linux2.2.26内核struct task_struct3/10462022年3月5日星期六北京交通大学计算机学院Linux2.2.26内核struct task_struct4/10472022年3月5日星期六北京交通大学计算机学院Linux2.2.26内核struct task_struct5/10482022年3月5日星期六北京交通大学计算机学院Linux2.2.26内

18、核struct task_struct6/10492022年3月5日星期六北京交通大学计算机学院Linux2.2.26内核struct task_struct7/10502022年3月5日星期六北京交通大学计算机学院Linux2.2.26内核struct task_struct8/10512022年3月5日星期六北京交通大学计算机学院Linux2.2.26内核struct task_struct9/10522022年3月5日星期六北京交通大学计算机学院Linux2.2.26内核struct task_struct10/10532022年3月5日星期六北京交通大学计算机学院2.2 进程控制2.2

19、.1 进程控制块2.2.2 进程图2.2.3 进程的创建与终止2.2.4 进程的阻塞与唤醒2.2.5 进程的挂起与激活2.2.6 UNIX进程描述与控制542022年3月5日星期六北京交通大学计算机学院进程图(进程树)q描述进程描述进程家族关系的有向树的有向树结点/有向边父/子进程祖父进程/祖先ABCDEHLMIJFGK有什么用有什么用?552022年3月5日星期六北京交通大学计算机学院进程图(进程树)q引入进程树的作用引入进程树的作用:方便管理n子进程可以继承父进程的资源,撤销时归还资源:方便了资源的分配与回收。n撤销父进程时,可同时自动撤销所有子进程。n举例ncmdnotepadABCDE

20、HLMIJFGK562022年3月5日星期六北京交通大学计算机学院2.2 进程控制2.2.1 进程控制块2.2.2 进程图2.2.3 进程的创建与终止2.2.4 进程的阻塞与唤醒2.2.5 进程的挂起与激活2.2.6 UNIX进程描述与控制572022年3月5日星期六北京交通大学计算机学院进程的控制n进程的从诞生到消亡的整个生命周期都是在操作系统控制下进行的。n进程诞生创建函数create;n运行结束终止函数terminate;n请求I/O 阻塞函数block;nI/O完成唤醒函数wakeup;n用户请求挂起挂起函数suspend;n用户请求激活激活函数activate582022年3月5日星

21、期六北京交通大学计算机学院进程的控制 create;terminate;block;wakeup;suspend;activate应用程序系统调用接口中断向量表系统调用服务程序内核函数内核函数592022年3月5日星期六北京交通大学计算机学院进程控制的实现方法n原语n运行过程不可中断的一种特殊函数n具有类似事务的原子性,可不分割执行,可不分割执行,不可并发交错执行不可并发交错执行n进程控制的相关函数必须用原语实现。为什么为什么?提示:不用原语?提示:不用原语并发执行会导致什么问题。并发执行会导致什么问题。602022年3月5日星期六北京交通大学计算机学院用户与这些函数有何关系?n它们是系统调用

22、吗?n哪些用户操作或者命令会使用它们?n透明、隐式调用n例如:return (terminate)n例如:scanf (readblock),.n不透明、显示调用n例子:CreateProcess(),Exit()int main()int main()int x=1;return x;int x=1;return x;612022年3月5日星期六北京交通大学计算机学院引起创建/终止进程的事件q用户登录用户登录分时系统中,验证为合法的终端用户登录q作业调度作业调度批处理系统中作业调度程序调度到某作业q提供服务提供服务运行中的用户程序提出某种请求q应用请求应用请求基于应用进程的需要由其自身创建新

23、进程q正常结束正常结束批处理系统中Halt,分时系统中LogsOffq异常结束异常结束越界错误、保护错特权指令错非法指令错运行超时、等待超时算术运算错、I/O故障q外界干预外界干预操作员或操作系统干预父进程请求/终止622022年3月5日星期六北京交通大学计算机学院Windows中引起创建进程的事件n系统启动n用户登陆n用户请求n应用程序请求632022年3月5日星期六北京交通大学计算机学院创建进程的操作步骤n操作对象:进程实体(PCB、代码、数据)PCB1PCB2PCB3PCB4PCB5PCB6PCB7PCB8.空闲队列指针空闲队列指针执行指针执行指针就绪队列指针就绪队列指针阻塞队列指针阻塞

24、队列指针675108642022年3月5日星期六北京交通大学计算机学院进程创建/终止过程Create()Create()原语原语1 1、申请、申请Pid,Pid,空白空白PCBPCB2 2、为新进程的程序和、为新进程的程序和数据及用户栈分配必数据及用户栈分配必要的内存空间要的内存空间所需内存大小问题3 3、初始化进程控制块、初始化进程控制块自身/父进程标识符处理机状态/调度信息4 4、将新进程插入到就、将新进程插入到就绪进程队列绪进程队列Terminate()Terminate()原语原语1 1、读取进程状态,若其、读取进程状态,若其正处于执行状态,应立正处于执行状态,应立即中止执行并设置调度

25、即中止执行并设置调度标志为真标志为真2 2、终止子孙进程、终止子孙进程3 3、资源归还、资源归还4 4、释放、释放PCBPCB652022年3月5日星期六北京交通大学计算机学院2.2 进程控制2.2.1 进程控制块2.2.2 进程图2.2.3 进程的创建与终止2.2.4 进程的阻塞与唤醒2.2.5 进程的挂起与激活2.2.6 UNIX进程描述与控制662022年3月5日星期六北京交通大学计算机学院引起进程阻塞/唤醒的事件q请求系统服务请求系统服务但不能立即满足q启动某种操作启动某种操作且必须在该操作完成之后才能继续执行q新数据尚未到达新数据尚未到达相互合作进程的一方需首先获得另一进程数据才能继

26、续q无新工作可做无新工作可做特定功能系统进程当完成任务且暂无任务q系统服务满足系统服务满足q操作完成操作完成q数据到达数据到达q新任务出现新任务出现672022年3月5日星期六北京交通大学计算机学院进程阻塞/唤醒过程Block()Block()原语原语1 1、先立即停止执行,、先立即停止执行,把进程控制块中的现把进程控制块中的现行状态由行状态由“执行执行”改改为阻塞,并将它插入为阻塞,并将它插入到对应的阻塞队列中到对应的阻塞队列中2 2、转调度程序进行重、转调度程序进行重新调度,将处理机分新调度,将处理机分配给另一就绪进程,配给另一就绪进程,并进行并进行切换切换Wakeup()Wakeup()

27、原语原语首先把被阻塞进程从等首先把被阻塞进程从等待该事件的阻塞进程待该事件的阻塞进程队列中移出,将其队列中移出,将其PCBPCB中的现行状态由阻塞中的现行状态由阻塞改为就绪,然后再将改为就绪,然后再将该进程插入到就绪队该进程插入到就绪队列中列中?原语配对原语配对!682022年3月5日星期六北京交通大学计算机学院2.2 进程控制2.2.1 进程控制块2.2.2 进程图2.2.3 进程的创建与终止2.2.4 进程的阻塞与唤醒2.2.5 进程的挂起与激活2.2.6 UNIX进程描述与控制692022年3月5日星期六北京交通大学计算机学院进程挂起/激活原因q终端用户的请求程序运行期间发现可疑问题暂停

28、进程q父进程的请求考察修改或协调子进程q操作系统的需要运行中资源使用情况的检查和记账q负载调节的需要负荷调节和保证实时系统正常运行q用户处理请求完成用户处理请求完成q父进程请求完成父进程请求完成q操作系统需要完成操作系统需要完成q负载调节需要完成负载调节需要完成702022年3月5日星期六北京交通大学计算机学院进程挂起/激活过程Suspend()Suspend()原语原语1 1、检查被挂进程现行、检查被挂进程现行状态并修改和插队状态并修改和插队2 2、复制、复制PCBPCB到指定区域到指定区域3 3、若被挂进程正在执、若被挂进程正在执行则转向调度程序重行则转向调度程序重新调度新调度Activate()Activate()原语原语1 1、检查进程现行状态并、检查进程现行状态并修改和插队修改和插队2 2、若有新进程进入就绪、若有新进程进入就绪队列且采用了抢占式队列且采用了抢占式调度策略,则检查和调度策略,则检查和决定是否重新调度决定是否重新调度?712022年

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论