您好,欢迎访问三七文档
第3章进程管理3.1进程的概念3.2进程的描述3.3进程状态及其转换3.4进程控制3.5进程互斥3.6进程同步3.7进程通信3.8死锁问题3.9线程讲授课时:12.03.1进程的概念3.1.1程序的并发执行1、程序2、程序的顺序执行特点:顺序性封闭性可再现性3.1进程的概念3、多道程序系统中程序执行环境的变化独立性随机性资源共享性3.1进程的概念4、程序的并发执行前驱图程序并发执行的特征间断性失去封闭性不可再现性3.1进程的概念例如,有两个循环程序A和B,它们共享一个变量N。程序A每执行一次时。都要做N:=N+1操作;程序B每执行一次时,都要执行Print(N)操作,然后再将N置成“0”。程序A和B以不同的速度运行。(1)N:=N+1在Print(N)和N:=0之前,此时得到的N值分别为n+1,n+1,0。(2)N:=N+1在Print(N)和N:=0之后,此时得到的N值分别为n,0,1。(3)N:=N+1在Print(N)和N:=0之间,此时得到的N值分别为n,n+1,0。进程是操作系统中最基本、最重要的概念。引入进程的目的一是刻画系统的动态性。同静态的程序相比较,进程具有动态性和暂时性,从创建到消亡,进程处于不断的动态变化之中。由此可见,操作系统中引入进程概念能较好地刻画系统内部的“动态性”。3.1进程的概念引入进程的目的二是解决共享性。“可再入”程序:它是纯代码,能被多个程序同时调用的程序,在执行中自身不被改变。可再入程序在系统中可形成多个执行实体,同时共享系统资源。此时,程序的概念就不能很确切地描述共享性。3.1进程的概念进程的较典型的定义进程是程序的一次执行;进程是一个程序及其数据在处理机上顺序执行时所发生的活动;进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立过程;3.1进程的概念进程的定义定义:进程是具有独立功能的程序(段)在某个数据集合上的一次运行活动,是系统进行资源分配和调度的独立单位。从进程的定义可以看出,进程与程序是有区别的,它具有本身的特征。3.1进程的概念进程的属性(1)动态性:进程是一次执行过程,有生命周期。并发性:多个进程可并发执行。结构性:进程包括程序块、数据块、进程控制块等多个部分。独立性:资源分配和系统调度的独立单位。3.1进程的概念进程的属性(2)共享性:多个进程共享同一程序。交互性:多个进程之间可能有制约关系。异步性:每个进程都以各自的、不可预知的速度向前推进。3.1进程的概念进程与程序的关系进程是动态的,程序是静态的;进程是由程序和数据等多个部分组成的;多个进程可以对应一个程序;进程有生命周期,是短暂的;而程序是相对长久的;进程具有并发性,而程序没有。3.1进程的概念进程的基本状态在进程的生命期内,一个进程至少具有三种基本状态,它们是:执行状态、等待状态和就绪状态。运行态running:进程占有处理器正在运行。就绪态ready:具备运行条件,但由于无CPU暂时不能运行的状态。等待态wait:阻塞(blocked)态、睡眠(sleep)态,因等待某种事件的发生而暂时不能运行的状态。3.3进程状态及其转换进程的基本状态通常,一个进程创建后将处于就绪状态。每个进程在执行过程中,任一时刻当且仅当处于上述三种状态之一。同时,在一个进程执行过程中,它的状态将会发生改变。3.3进程状态及其转换进程状态转换进程的状态反映进程执行过程的变化。这些状态随着进程的执行和外界条件发生变化和转换。事实上,进程的状态转换是一个非常复杂的过程。3.3进程状态及其转换3.3进程状态及其转换运行态就绪态等待态所等待事件已发生等待某事件的发生选中落选进程三种状态及其转换示意图进程状态转换引起进程状态转换的可能原因如下:运行态→等待态:等待使用资源或某事件发生,如等待外设传输。等待态→就绪态:相应等待事件己经发生,如外设传输结束。(等待结束)运行态→就绪态:时间片到或出现了更高优先权进程。(落选)就绪态→运行态:进程被调度程序选中。3.3进程状态及其转换3.3进程状态及其转换进程的七种状态模型就绪状态(Ready):进程在内存且可立即进入运行状态阻塞状态(Blocked):进程在内存并等待某事件的出现阻塞挂起状态(Blocked,suspend):进程在外存并等待某事件的出现就绪挂起状态(Ready,suspend):进程在外存,但只要进入内存,即可运行3.3进程状态及其转换激活挂起事件发生事件发生等待事件挂起调度超时释放激活挂起进程七种状态及其转换示意图3.3进程状态及其转换进程的七种状态模型挂起:当内存不足时,会发生临时将等待进程或就绪进程从内存转移到外存,以便满足新进程或高优先权进程的内存申请要求。激活:当无就绪进程、空闲内存足够多或挂起就绪进程优先权高时即将挂起的就绪进程或等待进程重新装入内存,状态发生转变。进程的静态描述从CPU调度出发,对进程实体的描述称为进程的静态描述(逻辑描述)。进程的静态描述由三部分组成:进程控制块PCB,程序段和数据集。3.2进程的描述3.2进程的描述进程控制块的作用进程控制块的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其他进程冰法执行的进程。或者说,OS是根据PCB来对并发执行的进行进行控制和管理的。进程控制块PCB系统利用PCB来控制和管理进程,PCB是系统感知进程存在的唯一标志。进程与PCB是一一对应的。一般,PCB中包含三类信息:描述信息、控制信息和现场信息。3.2进程的描述进程控制块PCB描述信息用于唯一地标识一个进程。•进程标识符(processID),唯一,通常是一个整数;•进程名,通常基于可执行文件名(不唯一);•用户标识符(userID):所属用户;•进程家族关系;3.2进程的描述进程控制块PCB控制信息用于管理和调度一个进程。•进程当前状态state和进程优先级priority;•代码执行入口地址和程序的外存地址;•运行统计信息:执行时间、页面调度;•进程的队列指针;•进程的消息队列指针:同步信号;•资源列表:所需资源、打开文件列表等;3.2进程的描述进程控制块PCB现场信息保留进程运行时存放在CPU中的关键信息,当进程中断时即把现场信息保存到进程控制块中,而当该进程重新恢复运行时恢复处理器现场。内容通常包括:•寄存器内容:通用、程序计数器PC、状态PSW,栈指针等;•指向赋予该进程的段/页表的指针;3.2进程的描述3.2进程的描述进程控制块的组织方式1、链接方式3.2进程的描述进程控制块的组织方式2、索引方式3.2进程的描述进程上下文上文、正文、下文进程上下文切换引入线程的概念进程空间与大小进程的内存映像(ProcessImage)进程在操作系统中的具体物理实现,即在内存中的描述称为进程映像。进程是以进程映像的形式运行在系统中的。进程映像主要包括PCB、程序块、数据块和堆栈4个要素。3.2进程的描述3.2进程的描述在虚存中的进程映像进程的内存映像(ProcessImage)操作系统中把进程物理实体(进程映像)和支持进程运行的环境合称为进程上下文(processcontext),包括三个组成部分:•用户级上下文(user-levelcontext):由用户进程的程序块、用户数据块(含共享数据块)和用户堆栈组成的进程地址空间。•系统级上下文(system-levelcontext):包括进程的标识信息、现场信息和控制信息,进程环境块,以及系统堆栈等组成的进程地址空间。3.2进程的描述进程的内存映像(ProcessImage)在操作系统中,进程上下文包括三个组成部分:•寄存器上下文(registercontext):由程序状态字寄存器、各类控制寄存器、地址寄存器、通用寄存器、用户栈指针等组成。3.2进程的描述课堂小结进程的概念及其特征进程的PCB进程的映像(上下文)进程状态及其转换处理器管理的一个主要工作是对进程的控制。所谓进程控制,就是系统使用一些具有特定功能的程序段来创建、撤销进程以及完成进程各状态的转换,从而达到多进程高效率并发执行和协调、实现资源共享的目的。3.4进程控制3.4进程控制进程控制包括:创建进程、阻塞进程、唤醒进程、挂起进程、激活进程、终止进程和撤销进程等。这些控制和管理功能是由操作系统中的原语来实现的。原语(Primitive)是在管态下执行、完成系统特定功能的过程。原语和机器指令类似,其特点是执行过程中不允许被中断,是一个不可分割的基本单位。因此,原语的执行是顺序的而不可能是并发的。3.4进程控制进程创建当操作系统为一个程序构造一个进程控制块并分配地址空间之后,就创建了一个进程。需要创建进程的情况如下:提交一个批处理作业或在终端上提交一个交互式作业时,由系统程序模块为每个作业创建相应新进程。发生系统调用时,系统创建一个服务进程。父进程创建新的子进程,形成具有父子关系的进程家族树。3.4进程控制引起创建进程的事件:什么情况下系统需要创建新进程(1)用户登录:用户登录时,系统为用户创建了一个根进程,最大的进程(2)作业调度(3)提供服务:调用某个系统程序,系统进程给用户使用(4)应用请求:某一个系统内部的程序进程创建进程创建的基本步骤如下:1.在主进程表中增加一项,并从PCB池中申请一个空白PCB。2.为新进程的进程映像分配地址空间。3.为新进程分配除内存外的其他各种资源。4.找到辅存中的进程正文段并装入到进程地址空间的正文区。5.初始化进程控制块(如状态),分配标识符。6.把进程插入就绪队列(根据优先级),等待进程调度。3.4进程控制进程撤消以下几种情况导致进程被撤消:(1)该进程已完成所要求的功能而正常终止。在任何计算机系统中,都应该有一个用于表示进程已经运行完成的指示。例如,在批处理系统中,通常在程序的最后安排一条Holt指令或终止的系统调用。当程序运行到Holt指令时,将产生一个中断,去通知OS本进程已经完成。在分时系统中,用户可以利用Logsoff去表示进程运行完毕,此时同样可以产生一个中断,去通知OS进程已运行完毕。3.4进程控制2)异常结束①越界错误。这是指程序所访问的存储区,已越出该进程的区域;②保护错。进程试图去访问一个不允许访问的资源或文件,或者以不适当的方式进行访问,例如,进程试图去写一个只读文件;③非法指令。程序试图去执行一条不存在的指令。出现该错误的原因,可能是程序错误地转移到数据区,把数据当成了指令;④特权指令错。用户进程试图去执行一条只允许OS执行的指令;⑤运行超时。进程的执行时间超过了指定的最大值(如死循环);⑥等待超时。进程等待某事件的时间,超过了规定的最大值;⑦算术运算错。进程试图去执行一个被禁止的运算,例如,被0除;⑧I/O故障。这是指在I/O过程中发生了错误等。3)外界干预外界干预并非指在本进程运行中出现了异常事件,而是指进程应外界的请求而终止运行。①操作员或操作系统干预。由于某种原因,例如,发生了死锁,由操作员或操作系统终止该进程;②父进程请求。由于父进程具有终止自己的任何子孙进程的权利,因而当父进程提出请求时,系统将终止该进程;③父进程终止。当父进程终止时,OS也将他的所有子孙进程终止,也可以继续存在。2.进程的终止过程(1)根据被终止进程的标识符,从PCB集合中检索出该进程的PCB,从中读出该进程的状态。(2)若被终止进程正处于执行状态,应立即终止该进程的执行,并置调度标志为真,用于指示该进程被终止后应重新进行调度。(3)若该进程还有子孙进程,则应将其所有子孙进程予以终止,以防他们成为不可控的进程。(4)将被终止进程所拥有的全部资源,或者归还给其父进程,或者归还给系统。(5)将被终止进程(它的PCB)从所在队列(或链表)中移出,等待其他程序来搜集信息。进程的阻塞与唤醒进程的
本文标题:第3章 进程管理1
链接地址:https://www.777doc.com/doc-3150670 .html