2020/2/23山东农业大学计算机系1第2章进程管理山东农业大学计算机系2020/2/23山东农业大学计算机系2知识体系框架图2020/2/23山东农业大学计算机系32020/2/23山东农业大学计算机系42.1进程与线程在多道程序设计的环境下,为了描述程序在计算机系统内的执行情况,必须引人新的概念--进程。1.进程的定义:可并发执行的程序在一个数据集合上的一次执行过程,是系统进行资源分配和调度的一个独立单位。2020/2/23山东农业大学计算机系5进程的组成操作系统表示、管理进程的PCB表以及:•执行的程序及处理的数据;•一片存放程序和数据的空间;•一个栈区(一个用户栈,一个核心栈);•进程使用的其它系统资源。2020/2/23山东农业大学计算机系6练习题•“程序状态字寄存器内容”属于进程控制块的()A、标识信息B、控制信息C、现场信息D、调度信息C程序和数据的地址进程同步和通信机制资源清单链接指针进程优先级进程调度所需其他信息事件进程状态2020/2/23山东农业大学计算机系7进程上下文(processcontext)–是进程执行活动全过程的静态描述。–进程的物理实体与支持进程运行的物理环境统称为进程上下文PCB+程序系统环境:地址空间,系统栈,打开文件表,…上下文切换(contextswitch)–由一个进程的上下文转到另外一个进程的上下文系统开销(systemoverhead)–运行操作系统程序完成系统管理工作所花费的时间和空间进程上下文2020/2/23山东农业大学计算机系8进程上下文2020/2/23山东农业大学计算机系9核心态和用户态用户态时不可直接访问受保护的OS代码;核心态时可执行全部OS代码.(处理机运行时的两种状态)2020/2/23山东农业大学计算机系10•进程核心栈:处理机状态信息保存区。保存进程核心态运行现场信息:–通用寄存器。这是指用户程序可以使用的数据、地址寄存器。–控制和状态寄存器。如程序计数器(PC);处理机状态字(PS)•用户栈:保存在用户态执行时函数调用的参数、局部变量和其它数据结构。用户栈与核心栈2020/2/23山东农业大学计算机系11用户栈与核心栈•一个进程的核心栈和用户栈是分开的;•当一个进程在用户态下执行时,它的核心栈为空。•进程执行过程:用户态系统调用中断核心态•当进程转换至核心态时,开始使用核心栈。2020/2/23山东农业大学计算机系12执行阻塞就绪时间片完I/O请求进程调度I/O完成进程的三种基本状态以及各状态之间的转换关系进程的基本状态与转换2020/2/23山东农业大学计算机系13•任一进程任一时刻有()A.一种状态B.两种状态C.三种状态D.四种状态A练习题2020/2/23山东农业大学计算机系14A.从运行状态到阻塞状态;B.从运行状态到就绪状态;C.从就绪状态到运行状态;D.从阻塞状态到就绪状态。A练习题进程自身决定()。2020/2/23山东农业大学计算机系15A.进程获得CPU运行是通过调度得到的;B.优先级是进程调度的重要依据,一旦确定就不能改变;C.在单CPU的系统中,任意时刻都有一个进程处于运行状态;D.进程申请CPU得不到满足时,其状态变为阻塞。A练习题以下关于进程的描述中,正确的是:2020/2/23山东农业大学计算机系16•答:–进程运行完成而终止。–进程因等待而进入阻塞状态。–发现有比现行进程更高优先权进程。–进程用完了规定的时间片。–系统出现异常强行进入进程调度练习题进程调度是内核的进程控制原语之一,该原语在什么情况下被启动?2020/2/23山东农业大学计算机系172010年考研试题之一26、下列选项中,降低进程优先级的合理时机是()。A、进程的时间片用完B、进程刚完成I/O,进入就绪队列C、进程长期处于就绪队列中D、进程从就绪状态转为运行态2020/2/23山东农业大学计算机系18例、某系统的进程状态变迁如图所示(设该系统的进程调度方式为可剥夺方式):执行因I/O阻塞低优先就绪首次选择100ms高优先就绪其次选择500ms21345创建2020/2/23山东农业大学计算机系19①说明进程发生变迁1、3、5的原因;②当发生一个变迁时可能引起另一个变迁的发生,则这两个变迁称为因果变迁。下述因果变迁是否会发生,如果有可能的话,会在什么情况下发生?(a)3→5(b)3→2(c)2→1(d)4→1(e)4→5③根据状态变迁图说明该系统的调度策略和调度效果。请回答2020/2/23山东农业大学计算机系20分析•本题主要考查对进程状态变迁的理解。•图中将传统的3种进程状态改成了4种,其实就是将就绪按优先级分成了两级。•但对于进程而言,其最基本的状态还是3个:运行、阻塞、就绪,只是在调度时,引入了优先级抢占方式。2020/2/23山东农业大学计算机系21解答系统中当前运行着的进程因中止、结束或等待某个I/O事件而退出运行,并且此时高优先就绪队列中没有等待进程,发生变迁1;当运行着的进程发出I/O请求,需要等待I/O事件完成才能继续进行,发生变迁3;当有高优先级进程进入就绪队列,并且运行着的进程是低优先级进程时,高优先级进程会抢占CPU,发生变迁5.①变迁1、3、5的原因:2020/2/23山东农业大学计算机系22②下述因果变迁的发生及情况:(a)3→5是因果变迁;(b)3→2不是;(c)2→1是;(d)4→1不是;(e)4→5是。③此系统采用根据进程优先级分别设置高优先就绪队列和低优先就绪队列:•高优先进程运行100ms后就降为低优先就绪队列,以使短进程优先完成;•对低优先就绪队列中的进程采用时间片轮转法(时间片程度为500ms),确保每个进程都有运行机会;•同时,对于进行了I/O操作的进程赋予一个高优先级,保证对外界事件可以尽快响应。2020/2/23山东农业大学计算机系23不同调度算法的进程状态转换图2020/2/23山东农业大学计算机系24例题:某系统采用可抢占处理机的静态优先数调度算法,请问何时会发生抢占处理机的现象?•答:当一个新创建的进程或一个被唤醒进程的优先数比正在运行进程的优先数高时,可能发生抢占处理机现象。2020/2/23山东农业大学计算机系25进程的状态与转换NewRunningExitReadyBlocked被调度时间片完事件发生等待事件结束进入就绪队列2020/2/23山东农业大学计算机系26练习题2020/2/23山东农业大学计算机系27练习题•判断:进程是基于多道程序技术而提出来的。其最基本的特性是动态性和并发性;进程的执行也即在各种基本状态之间多次转换的过程。错误。进程在新、死状态上只经过一次!2020/2/23山东农业大学计算机系281.活动就绪静止就绪2.活动阻塞静止阻塞3.静止就绪活动就绪4.静止阻塞活动阻塞引入挂起状态2020/2/23山东农业大学计算机系29具有挂起操作的进程状态转换图创建唤醒活跃阻塞运行静止阻塞静止就绪活跃就绪调度唤醒活跃静止2020/2/23山东农业大学计算机系30试分析中断与进程状态转换之间的关系答:•进程状态转换是通过原语实现的、由内核控制的;•如果一个进程的状态发生了改变,则在新旧状态之间一定发生了处理机状态由目态到管态的转换;•而中断是处理机状态由目态转换到管态的必要条件;•所以中断也是进程状态转换的必要条件。2020/2/23山东农业大学计算机系31进程控制•原语(primitive):由若干条指令构成的“原子操作(atomicoperation)”过程,作为一个整体而不可分割--要么全都完成,要么全都不做。•内核控制下,由原语实现!•原语是一种特殊的系统调用。2020/2/23山东农业大学计算机系32B练习题•操作系统中有一组常称为特殊系统调用的程序,它不能被系统中断,在操作系统中称为()。A.初始化程序B.原语C.子程序D.控制模块2020/2/23山东农业大学计算机系33•创建过程:(1)申请空白PCB(2)为新进程分配资源(3)初始化PCB(4)将新进程插入就绪队列1.操作系统发现要求创建新进程的事件后,调用进程创建原语创建新进程。进程的创建进程创建的实质:生成一个PCB2020/2/23山东农业大学计算机系341用户登录:在分时系统中,用户在终端键入登录命令后,若是合法用户,系统建立一个进程,并插入就绪队列。2作业调度:批处理系统中,作业调度程序调度到某个作业以后,就把这个作业装入内存,并分配必要的资源,创建进程,插入就绪队列。3提供服务:运行中的用户向系统提出请求后,系统专门建立一个进程为用户服务。(打印请求)4应用请求:应用进程的需要,由它自己创建一个新进程,使新进程以并发运行方式完成特定任务。(输入数据并将处理结果输出到表格上)由操作系统核心(系统程序模块)创建由父进程创建引起创建进程的事件2020/2/23山东农业大学计算机系352010年考研试题之一24、下列选项中,导制创进新进程的操作是()I用户登陆成功II设备分配III启动程序执行A、仅I和IIB、仅II和IIIC、仅I和IIID、I、II、III2020/2/23山东农业大学计算机系36进程的终止•引起进程终止的事件•用户退出•运行完毕•因出错而停止•用户请求进程终止的实质:撤销一个PCB2020/2/23山东农业大学计算机系37•父进程终止,子进程可以不必随之撤销,对吗?错!练习题6种•进程控制原语主要有哪几种?2020/2/23山东农业大学计算机系38练习题•填空:为了实现进程由等待状态转换成就绪状态的状态变化,操作系统应提供_______原语。唤醒原语2020/2/23山东农业大学计算机系39进程的特征–动态性–并发性–结构性–独立性–异步性程序段数据段进程控制块PCB独立运行独立分配资源独立接受调度的基本单位最基本的特征2020/2/23山东农业大学计算机系40进程和程序•进程是动态的,程序是静态的。•进程是暂时的,程序可长久保存。•进程和程序的组成不同。•进程与程序的对应关系。指令数据部分操作系统内核数据(例如进程控制块)进程程序一个程序可以对应多个进程,一个进程也可以对应多个程序。2020/2/23山东农业大学计算机系41A练习题•进程与程序之间有密切联系,但又是不同的概念。二者的一个本质区别是()。A.程序是静态概念,进程是动态概念B.程序是动态概念,进程是静态概念C.程序保存在文件中,进程存放在内存中D.程序顺序执行,进程并发执行2020/2/23山东农业大学计算机系42进程切换与CPU模式切换•进程切换是让处于运行态的进程中断运行,让出处理器,这时要做一次进程上下文切换、即保存老进程状态而装入被保护了的新进程的状态,以便新进程运行。•模式切换是当系统调用(中断)发生时,暂时中断正在执行的用户进程,把进程从用户状态切换到内核状态,去执行操作系统例行程序以获得服务。2020/2/23山东农业大学计算机系43模式切换:进程在用户态运行用户程序,在自陷、系统调用和中断时转换到核心态运行操作系统内核程序.进程切换:指正在运行的进程因为自身等待事件或有更迫切需要运行的进程就绪而放弃处理机,处理机转去运行其他进程.模式切换与进程切换2020/2/23山东农业大学计算机系44模式切换与进程切换的区别•模式切换–不引起进程状态变化–也不一定引起进程的切换–从核心态返回时可以通过逆向设置返回用户态继续执行被中断的进程•进程切换–进程调度的本质–在核心态下发生–引起进程状态的变迁–进程上下文的切换2020/2/23山东农业大学计算机系45例题:若在T1时刻用户进程P1运行,T2时刻用户进程P2运行,且P1≠P2,则在时刻T1和时刻T2期间之内一定发生过中断。这种说法对吗?为什么?答:正确。★如果在时刻T1进程P1在运行,在时刻T2进程P2在运行,且P1≠P2,则说明在T1和T2之间发生了进程切换。★即在T1和T2之间执行了处理机调度程序,而处理机调度程序是操作系统低层中的一个模块,运行于管态,说明在T1与T2时刻之间处理机状态曾由目态转换到管态。★由于中断是系统