1、第三章第三章 进程与处理机管理进程与处理机管理3.13.1进程描述进程进程:是系统中占用处理机及争夺其它系统:是系统中占用处理机及争夺其它系统资源的实体。用户程序必须在进程中运行。资源的实体。用户程序必须在进程中运行。进程的引入:进程的引入:为了能在作业内某作业步等为了能在作业内某作业步等I/OI/O时时,另一逻另一逻辑上可并行作业步能使用辑上可并行作业步能使用CPUCPU。引入进程后引入进程后,逻辑上可并行的作业步可在不同进程中运逻辑上可并行的作业步可在不同进程中运行。处理机能在进程间切换。行。处理机能在进程间切换。原多道程序设计系统中的作业可看成是只原多道程序设计系统中的作业可看成是只有一
2、个进程的作业。有一个进程的作业。*并发与共享的问题并发与共享的问题:并行程序访问共享数据:并行程序访问共享数据问题举例问题举例:(:(countcount为共享变量为共享变量初值初值=300)=300)Program A:N=count N=N+100 count=N Program B:M=count M=M+200 count=M 如果按以下次序占处理机运行如果按以下次序占处理机运行:N=count,N=N+100;N=count,N=N+100;M=count,M=M+200,count=M;M=count,M=M+200,count=M;count=N.count=N.结果结果coun
3、t=400(count=400(应为应为600)*600)*1.进程定义进程进程:是一个有独立功能的程序关于某个数据是一个有独立功能的程序关于某个数据集合的一次运行活动。集合的一次运行活动。特点特点:动态性动态性:可动态创建可动态创建,结束结束,也可是精灵进程也可是精灵进程并发性并发性:可以被独立调度占用处理机运行可以被独立调度占用处理机运行独立性独立性:尽量把并发事务安排到不同的进程尽量把并发事务安排到不同的进程制约性制约性:因访问共享数据或进程间同步而产因访问共享数据或进程间同步而产生制约生制约.组成组成:操作系统表示操作系统表示/管理进程的管理进程的PCBPCB表以及表以及执行程序及处理
4、数据执行程序及处理数据;一片存放程序和数据的空间一片存放程序和数据的空间;一个栈区一个栈区(一个用户栈一个用户栈,一个核心栈一个核心栈););进程使用的其他系统资源进程使用的其他系统资源.*.*2.进程控制结构进程映像:进程执行程序进程执行程序,数据数据,栈。进程映栈。进程映像如何存放在内存取决于存储管理机制像如何存放在内存取决于存储管理机制.进程控制块PCB:系统管理控制进程运行用的系统管理控制进程运行用的信息集合(含核心栈)信息集合(含核心栈).*.*用户空间用户空间系统空间系统空间PCB含有以下三大类信息:进程标识信息进程标识信息。如本进程的标识;本进程。如本进程的标识;本进程的产生者标
5、识的产生者标识(父进程标识父进程标识);进程所属用;进程所属用户标识。户标识。处理机状态信息保存区处理机状态信息保存区(进程核心栈进程核心栈)。保。保存进程的运行现场信息:存进程的运行现场信息:1.1.通用寄存器通用寄存器。这是指用户程序可以使用的。这是指用户程序可以使用的数据、地址寄存器。数据、地址寄存器。2.2.控制和状态寄存器控制和状态寄存器。如程序计数器。如程序计数器(PC)(PC);处理机状态字处理机状态字(PS)*(PS)*进程控制信息进程控制信息1.1.调度和状态信息调度和状态信息,用于操作系统调度进,用于操作系统调度进程占用处理机。程占用处理机。2.2.进程间通讯信息进程间通讯
6、信息,为支持进程间的通讯,为支持进程间的通讯相关的各种标识,信号,信件等,这些相关的各种标识,信号,信件等,这些信息存在接收方的进程控制块中。信息存在接收方的进程控制块中。3.3.存储管理信息存储管理信息。包含有指向本进程映像。包含有指向本进程映像存储空间的数据结构。存储空间的数据结构。4.4.进程所用资源进程所用资源。说明由进程打开,使用。说明由进程打开,使用的系统资源,如打开的文件等。的系统资源,如打开的文件等。5.5.有关数据结构链接信息有关数据结构链接信息,进程可以链接,进程可以链接到一个进程队列中,或链接到相关的其到一个进程队列中,或链接到相关的其它进程它进程PCB.*PCB.*3.
7、2进程状态进程状态3.2.1.进程的创建与结束等系统调用一.进程创建处理过程大致为:1.1.接收进程运行初始值,初始优先级,接收进程运行初始值,初始优先级,初始执行程序名字,其它资源等参初始执行程序名字,其它资源等参数。数。2.2.请求分配进程描述块请求分配进程描述块PCBPCB空间,得到空间,得到一个内部数字进程标识。一个内部数字进程标识。3.3.用执行用执行“进程创建进程创建”进程传来的参进程传来的参数初始化数初始化PCBPCB表。表。4.4.产生描述进程空间的数据结构,用产生描述进程空间的数据结构,用初始执行文件初始化进程空间,建初始执行文件初始化进程空间,建立程序段,数据段、栈段等。立
8、程序段,数据段、栈段等。*5.5.用进程运行初始值设置处理机现场用进程运行初始值设置处理机现场保护区(如设置用户程序保护区(如设置用户程序mainmain()()入口执行的运行现场)。造一个进入口执行的运行现场)。造一个进程运行栈帧。程运行栈帧。6.6.置好父进程等关系域。置好父进程等关系域。7.7.将将PCBPCB表挂入就绪队列,等待时机被表挂入就绪队列,等待时机被调度运行。调度运行。*二.进程结束大致处理过程如下:1.1.将进程状态改到结束状态将进程状态改到结束状态2.2.关闭所有打开数据文件、设备关闭所有打开数据文件、设备3.3.释放对进程程序文件的使用释放对进程程序文件的使用4.4.进
9、行相关信息统计进行相关信息统计5.5.清理其相关进程的链接关系,如在清理其相关进程的链接关系,如在UNIXUNIX中,将该结束进程的所有子进程链到中,将该结束进程的所有子进程链到1 1号号进程,作为进程,作为1 1号进程的子进程,并通知父号进程的子进程,并通知父进程自己已结束。进程自己已结束。6.6.释放进程映像空间(对于虚存来说如:释放进程映像空间(对于虚存来说如:交换区,所占物理页,将页表所占空间返交换区,所占物理页,将页表所占空间返还系统)还系统)7.7.释放进程控制块释放进程控制块(PCB)(PCB)。8.8.调用进程调度与切换程序。调用进程调度与切换程序。*三、进程等待系统调用如如w
10、aitpid(pid,&statloc,opts)waitpid(pid,&statloc,opts)系统调用系统调用.进程发出此系统调用阻塞于内核等待进程发出此系统调用阻塞于内核等待pidpid所所指进程运行结束指进程运行结束.*.*3.2.2进程状态及变化运行状态运行状态(Running)(Running):当一个进程正在处理:当一个进程正在处理机上运行时。机上运行时。就绪状态就绪状态(Ready)(Ready):一个进程获得了除处理一个进程获得了除处理机之外的一切所需资源,一旦得到处理机即机之外的一切所需资源,一旦得到处理机即可运行可运行.阻塞状态又称等待状态阻塞状态又称等待状态(Blo
11、cked)(Blocked):一个进:一个进程正在等待某一事件而暂程正在等待某一事件而暂 停运行时,如等停运行时,如等待某资源成为可用,等待输入待某资源成为可用,等待输入 /输出完成。输出完成。创建状态创建状态(New)(New):一个进程正在被创建,还:一个进程正在被创建,还没到转到就绪状态之前的状态。没到转到就绪状态之前的状态。结束状态结束状态(Exit)(Exit):一个进程正在从系统中消:一个进程正在从系统中消失时的状态,这是因为进程结束或其它原因失时的状态,这是因为进程结束或其它原因流产所导致。流产所导致。*状态变化图NewNewRunningRunningExitExitReady
12、ReadyBlockedBlocked被调度被调度时间片完时间片完事件发生事件发生等待事件等待事件结束结束进入就绪队列进入就绪队列可能的状态变化如下:空空创建创建:一个新进程被产生用来执:一个新进程被产生用来执行一个程序,行一个程序,创建创建就绪就绪:当进程被创建完成,初:当进程被创建完成,初始化后,一切就绪准备运行时变到就始化后,一切就绪准备运行时变到就绪态。(为了限制系统资源不过份分绪态。(为了限制系统资源不过份分散,也可以限制从散,也可以限制从NewNew进入进入ReadyReady状态状态的进程数,这样做可以使系统内存,的进程数,这样做可以使系统内存,内核用户页表空间等系统资源集中给内
13、核用户页表空间等系统资源集中给有限的进程使用。因此可能进程进入有限的进程使用。因此可能进程进入创建状态但很长时间不能挂入就绪队创建状态但很长时间不能挂入就绪队列,等操作系统把它调入时才可以分列,等操作系统把它调入时才可以分配好所有资源,变为就绪状态。)配好所有资源,变为就绪状态。)*就绪就绪运行运行:处于就绪状态的进程被进程:处于就绪状态的进程被进程调度程序选中后,就分配到处理机上来运调度程序选中后,就分配到处理机上来运行行.运行运行结束结束:当进程指示它已经完成或者:当进程指示它已经完成或者因错流产,当前运行进程会由操作系统作因错流产,当前运行进程会由操作系统作结束处理。结束处理。运行运行就
14、绪就绪:在可剥夺的操作系统中,处:在可剥夺的操作系统中,处于运行状态的进程在其运行过程中,分给于运行状态的进程在其运行过程中,分给它的处理机时间片用完而让出处理机它的处理机时间片用完而让出处理机;或或当有更高优先级的进程就绪时,操作系统当有更高优先级的进程就绪时,操作系统调度程序可以将正运行进程从运行状态改调度程序可以将正运行进程从运行状态改变为就绪状态,让更高优先级进程运行变为就绪状态,让更高优先级进程运行.*.*运行运行阻塞阻塞:当进程请求某样东西且必须:当进程请求某样东西且必须等待时,例如,当进程请求操作系统服务,等待时,例如,当进程请求操作系统服务,而操作系统得不到所需的资源,或进程请
15、而操作系统得不到所需的资源,或进程请求一个输入求一个输入/输出操作,操作系统已启动外输出操作,操作系统已启动外设,但输入设,但输入/输出尚未完成,或进程要与其输出尚未完成,或进程要与其它进程通讯,要接收对方还未发出的信件它进程通讯,要接收对方还未发出的信件时进程都会被阻塞。时进程都会被阻塞。阻塞阻塞就绪就绪:当进程要等待事件到来时,:当进程要等待事件到来时,它从阻塞变到就绪。它从阻塞变到就绪。*接收进程接收进程就绪队列就绪队列1 1就绪队列就绪队列2 2.就绪队列就绪队列n n超时超时事件事件1 1发生发生事件事件2 2发生发生等事件等事件1 1等事件等事件2 2.处理机处理机终止进程终止进程
16、事件事件m m发生发生等事件等事件m m状态表示方法:3.2.3进程挂起进程在挂起(进程在挂起(Suspend)状态意味着进程没)状态意味着进程没有占用内存空间,处在挂起状态的进程映像有占用内存空间,处在挂起状态的进程映像在磁盘上。在磁盘上。NewNewReadyReadySuspendSuspendBlockedBlockedSuspendSuspendReadyReadyBlockedBlockedRunningRunningExitExit接收接收事件发生事件发生解挂解挂挂起挂起解挂解挂挂起挂起事件发生事件发生挂起挂起接收接收调度调度时间片完时间片完等事件等事件结束结束程序与进程的关系举
17、例(计算机系统与洗熨店对比):实用程序:洗衣程序洗衣程序(检查口袋检查口袋,调洗涤调洗涤,调烘干调烘干,调调熨烫熨烫,折叠折叠),),熨衣程序熨衣程序(检查口袋检查口袋,调熨烫调熨烫,折叠折叠)处理机:服务小姐服务小姐.共享外设资源:洗涤机洗涤机,烘干机烘干机,熨烫机熨烫机终端设备:顾客窗口顾客窗口系统调用:洗涤洗涤,烘干烘干,熨烫熨烫,业务登记业务登记(进程创建)进程创建)程序:洗涤洗涤,烘干烘干,熨烫函数熨烫函数(核心态运行核心态运行););洗衣程洗衣程序序;熨衣程序熨衣程序;接受窗口用户请求并产生进程执行接受窗口用户请求并产生进程执行请求程序请求程序(类比命令解释程序类比命令解释程序).).进程:为窗口建一个进程为窗口建一个进程,负责接受并分派用户请负责接受并分派用户请求求,为每个用户请求建一个进程负责处理请求为每个用户请求建一个进程负责处理请求(运运行洗衣行洗衣/熨衣程序熨衣程序).*).*主要内容总结主要内容总结进程描述进程描述进程定义进程定义进程控制结构进程控制结构进程状态进程状态进程的创建与结束进程的创建与结束进程状态变化模型进程状态变化模型进程挂起进程挂起






