第第33章章进程进程进程的概念进程的概念,,状态状态,,描述描述进程的调度进程的调度进程操作进程操作进程间通信进程间通信2OperatingSystems,BJUT3.13.1进程概念进程概念程序顺序执行程序顺序执行严格按先后次序逐个执行语句严格按先后次序逐个执行语句//程序段程序段程序顺序执行的特征程序顺序执行的特征顺序性顺序性只有前一个操作结束只有前一个操作结束,,才能执行后续操作才能执行后续操作封闭性封闭性程序运行时独占全机资源程序运行时独占全机资源可再现性可再现性与执行速度无关与执行速度无关3OperatingSystems,BJUT程序的并发执行程序的并发执行程序的并发执行程序的并发执行多道程序系统多道程序系统::多道程序的并发执行多道程序的并发执行某道程序的可以包含若干个能够并发执行的程序段某道程序的可以包含若干个能够并发执行的程序段好处好处充分利用系统资源充分利用系统资源提高系统处理能力提高系统处理能力程序并发执行的特征程序并发执行的特征间断性间断性共享资源共享资源,,相互合作相互合作ÆÆ相互制约相互制约ÆÆ执行执行--暂停暂停--执行执行失去封闭性失去封闭性一个程序的执行受到其他程序的影响一个程序的执行受到其他程序的影响不可再现性不可再现性4OperatingSystems,BJUT进程的概念进程的概念进程的各种定义进程的各种定义((进程进程process/process/任务任务task)task)进程是程序的进程是程序的一次执行一次执行进程是可以和别的计算进程是可以和别的计算并发执行并发执行的计算的计算进程可定义为一个进程可定义为一个数据结构数据结构及能在其上及能在其上进行操作进行操作的一个程序的一个程序进程是一个程序及其进程是一个程序及其数据数据在处理机上顺序在处理机上顺序执行执行时时所发生的活动所发生的活动进程是程序在一个进程是程序在一个数据集合数据集合上的上的运行运行过程过程,,是系是系统进行统进行资源分配资源分配和和调度调度的一个独立单位的一个独立单位可并发执行可并发执行的程序在一个的程序在一个数据集合数据集合上的上的运行过程运行过程AprogramAprograminexecutioninexecution.Aprocessiscontrolled.Aprocessiscontrolledandscheduledbytheoperatingsystem.andscheduledbytheoperatingsystem.课本课本7272页页3.1.13.1.15OperatingSystems,BJUT进程的特征进程的特征(1)(1)((注意与程序的对比注意与程序的对比))动态性动态性最基本的特性最基本的特性有一定的生命期有一定的生命期::创建创建,,执行执行,,暂停暂停,,消亡消亡并发性并发性多个进程实体多个进程实体,,同存于内存中同存于内存中,,能在能在一段一段时间内同时运行时间内同时运行独立性独立性进程实体是一个能进程实体是一个能独立运行独立运行的基本单位的基本单位,,同时也同时也是系统中是系统中独立获得资源独立获得资源和和独立调度独立调度的基本单位的基本单位6OperatingSystems,BJUT进程的特征进程的特征(2)(2)异步性异步性进程按各自独立的、不可预知的速度向前推进进程按各自独立的、不可预知的速度向前推进,,即即进程按异步方式运行进程按异步方式运行结构特征结构特征进程实体进程实体是由是由正文段正文段//程序段程序段、、数据段数据段、、堆栈段堆栈段及及进程控制块进程控制块等部分组成等部分组成ÆÆ进程映像进程映像非对应性非对应性一个程序被多个进程共用一个程序被多个进程共用例如编辑器、编译器等例如编辑器、编译器等可再入程序可再入程序//可重入代码可重入代码//纯代码纯代码::代码不能修改自身代码不能修改自身,,一份代码副本一份代码副本,,各自配备数据区各自配备数据区ÆÆ提高主存利用率提高主存利用率一个进程用到多个程序一个进程用到多个程序7OperatingSystems,BJUT33个进程个进程并发执并发执行的图行的图示示(1)(1)8OperatingSystems,BJUT33个进程并发执行的图示个进程并发执行的图示(2)(2)9OperatingSystems,BJUT33个进程个进程并发执并发执行的图行的图示示(3)(3)10OperatingSystems,BJUT进程状态进程状态进程在执行过程中会改变状态进程在执行过程中会改变状态((课本课本7373页页))运行运行就绪就绪等待等待(waiting)/(waiting)/阻塞阻塞(blocked)/(blocked)/睡眠睡眠(sleeping)(sleeping)11OperatingSystems,BJUT进程状态转换的条件和原因进程状态转换的条件和原因新建新建ÆÆ就绪就绪就绪就绪ÆÆ运行运行运行运行ÆÆ阻塞阻塞运行运行ÆÆ就绪就绪运行运行ÆÆ终止终止阻塞阻塞ÆÆ就绪就绪12OperatingSystems,BJUT进程控制块进程控制块进程的映像进程的映像(processimage)(processimage)正文段正文段//程序段程序段数据段数据段堆堆栈栈进程控制块进程控制块进程控制块进程控制块processcontrolblock,PCBprocesscontrolblock,PCB进程各种属性的集合进程各种属性的集合13OperatingSystems,BJUT进程控制块的基本内容进程控制块的基本内容进程状态进程状态程序计数器程序计数器CPUCPU寄存器寄存器CPUCPU调度信息调度信息内存管理信息内存管理信息计帐信息计帐信息CPUCPU使用时间使用时间用时限制用时限制帐户号帐户号作业号作业号//进程号进程号I/OI/O状态信息状态信息14OperatingSystems,BJUT进程的切换进程的切换15OperatingSystems,BJUTPCBPCB的作用的作用PCBPCB是进程存在的唯一标志是进程存在的唯一标志OSOS中最重要的数据结构中最重要的数据结构OSOS通过通过PCBPCB控制和管理并发执行的进程控制和管理并发执行的进程涉及调度、资源分配、中断处理涉及调度、资源分配、中断处理进程控制块的集合定义了进程控制块的集合定义了OSOS的状态的状态16OperatingSystems,BJUT3.23.2进程调度进程调度作业队列作业队列::系统中的全部进程系统中的全部进程就绪队列就绪队列::在主存中在主存中等待运行的全部进程等待运行的全部进程设备队列设备队列等待特定等待特定I/OI/O设备的进程列表设备的进程列表每个设备有自己的设备队列每个设备有自己的设备队列17OperatingSystems,BJUT就绪队列和各就绪队列和各I/OI/O设备队列设备队列18OperatingSystems,BJUT进程调度的进程调度的队列图队列图表示表示进程在各种队列之间迁移进程在各种队列之间迁移19OperatingSystems,BJUT调度程序调度程序(schedulers)(1)(schedulers)(1)长期调度长期调度程序程序//作业调度作业调度程序程序批处理系统批处理系统::新提交作业新提交作业ÆÆ后备队列后备队列((在磁盘上在磁盘上))长期调度程序长期调度程序在在后备队列后备队列中选择作业中选择作业作业装入主存作业装入主存创建进程创建进程放入就绪队列放入就绪队列控制主存中进程的数量控制主存中进程的数量多道程序度多道程序度““搭配搭配””选择作业选择作业ÆÆ资源平衡利用资源平衡利用,,提高性能提高性能I/OI/O为主的为主的(I/O(I/O--bound)bound)CPUCPU为主的为主的(CPU(CPU--bound)bound)20OperatingSystems,BJUT调度程序调度程序(2)(2)短期调度程序短期调度程序//CPUCPU调度程序调度程序从从就绪队列就绪队列中选择进程中选择进程,,分配分配CPUCPU执行频率很高执行频率很高中期调度程序中期调度程序交换交换,,进程的挂起状态进程的挂起状态21OperatingSystems,BJUT交换交换与进程的与进程的挂起状态挂起状态引入引入交换交换的原因的原因没有使用虚存的系统没有使用虚存的系统,,每个进程每个进程完全完全进入主存进入主存I/OI/O速度比计算速度慢很多速度比计算速度慢很多ÆÆ主存中的多个进程可主存中的多个进程可能全部阻塞等能全部阻塞等I/OI/O其他作业因没有主存空间不能投入运行其他作业因没有主存空间不能投入运行CPUCPU时间浪费时间浪费交换交换(Swapping)(Swapping)把主存中某个进程的部分或全部移到磁盘把主存中某个进程的部分或全部移到磁盘挂起状态挂起状态(suspend)(suspend)挂起队列挂起队列(suspendqueue)(suspendqueue)调入挂起进程调入挂起进程//接纳新进程接纳新进程ÎÎ主存主存交换是交换是I/OI/O操作操作!!22OperatingSystems,BJUT有挂起状态的转换图有挂起状态的转换图23OperatingSystems,BJUT各种调度的队列图各种调度的队列图24OperatingSystems,BJUT上下文切换上下文切换上下文切换上下文切换(contextswitch)(contextswitch)CPUCPU从一个进程切换到另一进程从一个进程切换到另一进程保存原来进程的状态保存原来进程的状态装入新进程上次保存的状态装入新进程上次保存的状态进程的上下文包括进程的上下文包括CPUCPU各寄存器的值各寄存器的值进程的状态进程的状态存储器管理信息存储器管理信息进程的上下文在哪里进程的上下文在哪里??上下文切换时间上下文切换时间::系统开销系统开销(overhead)(overhead)提高上下文切换速度的硬件支持提高上下文切换速度的硬件支持25OperatingSystems,BJUT3.33.3进程操作进程操作进程创建进程创建进程终止进程终止阻塞阻塞与与唤醒唤醒26OperatingSystems,BJUT进程创建进程创建导致进程创建的原因导致进程创建的原因新的批作业新的批作业交互登录交互登录OSOS为提供服务而创建为提供服务而创建由已有进程创建由已有进程创建创建进程的步骤创建进程的步骤申请空白申请空白PCB,PCB,指定唯一的进程标识号指定唯一的进程标识号(PID)(PID)为新进程分配资源为新进程分配资源初始化初始化PCBPCB把新进程插入就绪队列把新进程插入就绪队列父进程父进程,,子进程子进程,,进程树进程树27OperatingSystems,BJUT进程树举例进程树举例28OperatingSystems,BJUT例例:UNIX:UNIX中的进程创建中的进程创建29OperatingSystems,BJUT父子进程的关系父子进程的关系资源方面资源方面子进程直接从子进程直接从OSOS获得获得子进程从父进程获得子进程从父进程获得执行方面执行方面父进程等待父进程等待,,直到子进程终止直到子进程终止父进程和子进程并发执行父进程和子进程并发执行30OperatingSystems,BJUT进程终止进程终止导致进程终止的事件导致进程终止的事件正常结束正常结