进程及其实现.ppt
《进程及其实现.ppt》由会员分享,可在线阅读,更多相关《进程及其实现.ppt(136页珍藏版)》请在三一文库上搜索。
1、2.3 进程及其实现,2.3.1 进程的定义和属性 2.3.2 进程的状态和转换 2.3.3 进程的描述 2.3.4 进程切换与模式切换 2.3.5 进程的控制 2.3.6 实例研究:UNIX SVR4进程管理 2.3.7 实例研究:Linux进程管理,2.3.1 进程的定义和性质(1),进程是一个可并发执行的具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和保护的基本单位 。,进程的定义和性质(2),进程是操作系统中最基本、重要的概念。是多道程序系统出现后,为了刻画系统内部出现的动态情况,描述系统内部各道程序的活动规律引进的一个概念,所有多道程序设计操作系统都建立在
2、进程的基础上。,进程的定义和性质(3),操作系统引入进程的概念 从理论角度看,是对正在运行的程序过程的抽象; 从实现角度看,是一种数据结构,目的在于清晰地刻划动态系统的内在规律,有效管理和调度进入计算机系统主存储器运行的程序。,进程的属性,结构性: 共享性: 动态性: 独立性: 制约性: 并发性:,操作系统为什么要引入进程概念?,原因1-刻画系统的动态性,发挥系统的并发性,提高资源利用率。,原因2-它能解决系统的“共享性”,正确描述程序的执行状态。,“可再用” 程序 “可再入” 程序 “可再入”程序具有的性质,“可再入” 程序举例(1),编译程序P编译源程序甲,从A点开始工作,执行到B点时需将
3、信息记到磁盘上,且程序P在B点等待磁盘传输。 为提高系统效率,利用编译程序的“可再入”性,让编译程序P再为源程序乙进行编译,仍从A点开始工作。,“可再入” 程序举例(2),“可再入” 程序举例(3),现在怎样来描述编译程序P的状态呢? 称它为在B点等待磁盘传输状态,还是称它为正在从A点开始执行的状态? 把编译程序P,与服务对象联系起来,P为甲服务就说构成进程P甲,P为乙服务则构成进程P乙。,“可再入” 程序举例(4),两个进程虽共享程序P,但它们可同时执行且彼此按各自的速度独立执行。可见程序与计算(程序的执行)不再一一对应, 进程是一个既能用来共享资源,又能描述程序并发执行过程的一个基本单位。
4、,2.3.2 进程的状态和转换 三态模型(1),一个进程从创建而产生至撤销而消亡的整个生命周期,可用一组状态加以刻划,,按进程在执行过程中的状况至少定义三种不同的进程状态:,三态模型(2) 三种不同的进程状态,运行态(running): 就绪态(ready): 等待态(blocked):,三态模型(3) 进程三态模型及其状态转换,三态模型(4) 引起进程状态转换的具体原因,运行态等待态:等待使用资源或某事件发生 ; 等待态就绪态:资源得到满足或事件发生 ; 运行态就绪态:运行时间片到;出现有更高优先权进程。 就绪态运行态:CPU空闲时选择一个就绪进程。,五态模型(1),进程五态模型及其转换,五
5、态模型(2) 新建态,新建态对应进程刚被创建的状态。为一个新进程创建必要的管理信息,它并没有被提交执行,而是在等待操作系统完成创建进程的必要操作。,五态模型(3) 终止态,进程的终止,首先,等待操作系统进行善后,然后,退出主存。 进入终止态的进程不再执行,但依然临时保留在系统中等待善后。一旦其他进程完成了对终止态进程的信息抽取之后,系统将删除该进程。,五态模型(4) 进程状态转换的具体原因(1),NULL新建态:创建一个子进程。 新建态就绪态:系统完成了进程创建操作,且当前系统的性能和内存的容量均允许。,五态模型(5) 进程状态转换的具体原因(2),运行态终止态:一个进程到达自然结束点,或出现
6、了无法克服的错误,或被操作系统所终结,或被其他有终止权的进程所终结。,五态模型(6) 进程状态转换的具体原因(3),终止态NULL:完成善后操作。 就绪态终止态:某些操作系统允许父进程终结子进程。 等待态终止态:某些操作系统允许父进程终结子进程。,进程的挂起(1),为什么要有“挂起”状态? 由于进程的不断创建,系统资源已不能满足进程运行的要求,就必须把某些进程挂起(suspend),对换到磁盘镜像区中,暂时不参与进程调度,起到平滑系统操作负荷的目的。,进程的挂起(2),(1)系统中的进程均处于等待状态,需要把一些阻塞进程对换出去,腾出足够内存装入就绪进程运行。 (2)进程竞争资源,导致系统资源
7、不足,负荷过重,需要挂起部分进程以调整系统负荷,保证系统的实时性或让系统正常运行。,进程的挂起(3),(3)定期执行的进程(如审计、监控、记账程序)对换出去,以减轻系统负荷。 (4)用户要求挂起自己的进程,以便进行某些调试、检查和改正。,进程的挂起(4),(5)父进程要求挂起后代进程,以进行某些检查和改正。 (6)操作系统需要挂起某些进程,检查运行中资源使用情况,以改善系统性能;或当系统出现故障或某些功能受到破坏时,需要挂起某些进程以排除故障。,具有挂起功能的进程状态及其转换,具有挂起进程功能的进程状态,进程增加了两个新状态: 挂起就绪态(ready suspend)表明进程具备运行条件但目前
8、在二级存储器中,当它被对换到主存才能被调度执行。 挂起等待态(blocked suspend) 表明进程正在等待某一个事件且在二级存储器中。,具有挂起进程状态转换的具体原因(1),等待态挂起等待态:当前不存在就绪进程,至少一个等待态进程将被对换出去成为挂起等待态; 挂起等待态挂起就绪态:引起进程等待的事件发生之后,相应的挂起等待态进程将转换为挂起就绪态。,具有挂起进程状态转换的具体原因(2),挂起就绪态就绪态:内存中没有就绪态进程,或挂起就绪态进程具有比就绪态进程更高的优先级,将把挂起就绪态进程转换成就绪态。 就绪态挂起就绪态:系统根据当前资源状况和性能要求,决定把就绪态进程对换出去成为挂起就
9、绪态。,挂起进程具有如下特征(1),该进程不能立即被执行。 挂起进程可能会等待事件,但所等待事件是独立于挂起条件的,事件结束并不能导致进程具备执行条件。,挂起进程具有如下特征(2),进程进入挂起状态是由于操作系统、父进程或进程本身阻止它的运行。 结束进程挂起状态的命令只能通过操作系统或父进程发出。,2.3.3 进程的描述,操作系统的控制结构(1) 操作系统核心控制结构是进程结构,资源管理的数据结构将围绕进程结构展开。 操作系统的控制表分为四类, 进程控制表,存储控制表,I/O控制表和文件控制表。,操作系统的控制结构(2),进程控制表管理进程及其相关信息。 存储控制表管理一级(主)存储器和二级(
10、虚拟)存储器,内容包括:主存储器的分配信息,二级存储器的分配信息,存储保护和分区共享信息,虚拟存储器管理信息,操作系统的控制结构(3),I/O控制表管理系统的I/O设备和通道,包括:I/O设备和通道是否可用,I/O设备和通道分配信息,I/O操作的状态和进展,I/O操作传输数据所在主存区。 文件控制表管理文件,包括:被打开文件的信息,文件在主存储器和二级存储器中的位置信息,被打开文件的状态和其他属性信息。,操作系统控制表的通用结构,进程映像,操作系统中把进程物理实体和支持进程运行的环境合称为进程上下文(context)。 当系统调度新进程占有处理器时,新老进程随之发生上下文切换。进程的运行被认为
11、是在上下文中执行。,进程上下文组成,用户级上下文:由用户程序块、用户数据块和用户堆栈组成的进程地址空间。 系统级上下文:包括进程的标识信息、现场信息和控制信息,进程环境块,及系统堆栈等组成的进程地址空间。 寄存器上下文:由PSW寄存器和各类控制寄存器、地址寄存器、通用寄存器组成。,进程有四个要素组成,进程程序块 进程数据块 系统堆栈 用户堆栈,用户进程在虚拟内存中的组织,进程控制块(1),进程控制块P C B ,是操作系统用于记录和刻划进程状态及有关信息的数据结构。也是操作系统掌握进程的唯一资料结构,它包括了进程执行时的情况,以及进程让出处理器后所处的状态、断点等信息。,进程控制块(2) 进程
12、控制块包含三类信息,标识信息 现场信息 控制信息,进程控制块(3) 标识信息,用于唯一地标识一个进程,分由用户使用的外部标识符和被系统使用的内部标识号。 常用的标识信息有进程标识符、父进程的标识符、用户进程名、用户组名等。,进程控制块(4) 现场信息,保留进程运行时存放在处理器现场中的各种信息,进程让出处理器时必须把处理器现场信息保存到PCB中,当该进程重新恢复运行时也应恢复处理器现场。 现场信息包括通用寄存器内容、控制寄存器内容、用户堆栈指针、系统堆栈指针等。,进程控制块(5) 控制信息(1),1)进程调度相关信息,如进程状态、等待事件和等待原因、进程优先级、队列指引元等; 2) 进程组成信
13、息,如正文段指针、数据段指针; 3)进程间通信相关信息,如消息队列指针、信号量等互斥和同步机制;,进程控制块(6) 控制信息(2),4)进程在二级存储器内的地址信息; 5)CPU资源的占用和使用信息,如时间片余量、进程己占用时间、进程己执行时间总和,记帐信息;,进程控制块(7) 控制信息(3),6)进程特权信息,如在内存访问和处理器状态方面的特权。 7) 资源清单,包括进程所需全部资源、已经分得资源,如主存资源、I/O设备、打开文件表等。,进程管理(1),处于同一状态的所有PCB链接在一起的数据结构称为进程队列(Process Queues)。 同一状态进程的PCB既可按先来先到的原则排成队列
14、;也可按优先数或其它原则排成队列。,进程管理(2) 链接进程控制块的方法,单向链接 双向链接,进程管理(3) 队列标志,系统为每个队列设置一个队列标志: 单向链接时, 队列标志指引元指向队列中第一个进程的队列指引元的位置; 双向链接时, 队列标志的后向指引元指向队列中第一个进程的后向队列指引元的位置; 队列标志的前向指引元指向队列中最后一个进程的前向队列指引元的位置,进程管理(4) 进程控制块的链接,进程管理(5) 队列管理,入队 出队 队列管理模块,队列管理和状态转换示意图,前(后)向指引元的内容规定,情况1:它是队列之首。此时,前向指引元为0,后向指引元指出它的下一个进程的后向指引元位置。
15、 情况2:它是队列之尾。此时,后向指引元为0,它的前向指引元指出它的上一个进程的前向指引元位置。 情况3:它的前后均有进程。此时,前(后)向指引元指出它的上(下)一个进程的前(后)向指引元位置。,进程的出队举例,假设进程Q在某个队列中,它的前面是进程P,后面是进程R。 进程Q出队过程:把Q的前向指引元的内容送到R的前向指引元中,把Q的后向指引元的内容送到P的后向指引元中。于是P的后向指引元指向R,而R的前向指引元指向P,Q就从队列中退出。,表格法组织PCB,表格法组织PCB。所有进程的PCB都组织在一个线性表中,进程调度时需要查找整个PCB表; 也可以把相同状态进程的PCB组织在一个线性表中,
16、系统有多个线性表,这样可缩短查表时间。,2.3.4 进程切换与CPU模式切换,进程上下文切换(1) 进程切换是让处于运行态的进程中断运行,让出处理器,这时要做一次进程上下文切换、即保存老进程状态而装入被保护了的新进程的状态,以便新进程运行。,进程上下文切换(2) 进程切换的步骤(1),保存被中断进程的处理器现场信息。 修改被中断进程的进程控制块的有关信息,如进程状态等。 把被中断进程的进程控制块加入有关队列。 选择下一个占有处理器运行的进程。,进程上下文切换(3) 进程切换的步骤(2),修改被选中进程的进程控制块的有关信息。 根据被选中进程设置操作系统用到的地址转换和存储保护信息。 根据被选中
17、进程恢复处理器现场。,进程上下文切换(4) 调度和切换时机问题(1), 请求调度的事件发生后,就会运行低级调度程序,低级调度程序选中新的就绪进程后,就会进行上下文切换。实际上,由于种种原因,并不一定能一气呵成。,进程上下文切换(5) 调度和切换时机问题(2), 例1,运行内核中断处理例程期间,发生了更高优先级的I/O中断的情况; 例2,若正在运行操作系统内核临界区程序,如果时钟中断导致请求低级调度的事件发生的情况; 在各种各样的原子操作,如原语操作、现场保护和恢复等过程中,发生了请求调度的事件的情况。,进程上下文切换(6) 调度和切换时机问题(3), 通常的做法是,由内核置上请求调度标志,延迟
18、到上述工作完成后再进行调度和进程上下文切换, Linux进程调度标志位need-resched, Windows2000/XP延迟过程调用DPC/dispatch软件中断。,CPU模式切换(1),当中断发生时,暂时中断正在执行的用户进程,把进程从用户状态切换到内核状态,去执行操作系统例行程序以获得服务,这就是一次模式切换, 内核在被中断了的进程的上下文中对这个中断事件作处理,即使该中断可能不是此进程引起的。,CPU模式切换(2),被中断进程可以是正在用户态下执行的,也可以是正在核心态下执行的,内核都要保留足够信息以便在后来能恢复被中断了的进程执行。,CPU模式切换(3) 模式切换的步骤,保存被
19、中断进程的处理器现场信息。 根据中断号置程序计数器。 把用户状态切换到内核状态,以便执行中断处理程序。,CPU模式切换与进程上下文切换,模式切换不同于进程切换,它并不引起进程状态变化,也不一定引起进程的切换,在完成了中断调用之后,完全可以再通过一次逆向的模式切换来继续执行用户进程。,UNIX进程上下文切换和模式切换(1),两类进程:系统进程和用户进程,系统进程在核心态下执行操作系统代码,用户进程在用户态下执行用户程序。 用户进程因中断和系统调用进入内核态,系统进程开始执行,两个进程使用同一个PCB,实质上是一个进程。但所执行的程序不同,映射到不同物理地址空间、使用不同堆栈。,UNIX中进程上下
20、文切换和模式切换(2),2.3.5 进程的控制,原语(1) 处理器管理的一个主要工作是对进程的控制,包括:创建进程、阻塞进程、唤醒进程、挂起进程、激活进程、终止进程和撤销进程等。 这些控制和管理功能是由操作系统中的原语来实现的。,原语(2),原语(Primitive)是在管态下执行、完成系统特定功能的过程。 原语和机器指令类似,其特点是执行过程中不允许被中断,是一个不可分割的基本单位,原语的执行是顺序的而不可能是并发的。,原语(3),一种原语的实现方法是以系统调用方式提供原语接口,且采用屏蔽中断的方式来实现原语功能,以保证原语操作不被打断的特性。,进程的创建(1),进程创建来源于以下事件: 提
21、交一个批处理作业。 在终端上交互式的登录。 操作系统创建一个服务进程。 存在的进程孵化(spawn)新的进程。,进程的创建(2),生成进程称父进程(Parent Process) ,被生成进程称子进程(Child Process) 、即一个父进程可以创建子进程,从而形成树形结构。,进程的创建过程(1), 在进程表中增加一项,并从PCB池中取一个空白PCB。 为新进程的进程映像分配地址空间。传递环境变量,构造共享地址空间。 为新进程分配资源,除内存空间外,还有其他各种资源。,进程的创建过程(2), 查找辅存,找到进程正文段并装到正文区。 初始化进程控制块,为新进程分配进程标识符,初始化PSW。
22、加入就绪进程队列,或直接将进程投入运行。 通知操作系统的某些模块,如记账程序、性能监控程序。,进程的创建过程(3),Linux fork( ) 创建子进程但父子进程不共享内容 Linux clone( ) 允许定义父子进程共享的内容 Linux中认为线程就是共享上下文的进程,进程的创建过程(4),操作系统最多进程数的限制。 UNIX(早期)最多创建几十个进程。 Solaris可在启动时根据内存容量自动调整创建数。,进程的创建过程(5),Linux2.4中,最多进程数是运行时可调参数,缺省设置为:size-of-memory-in-the-system/kernel-stack-size/2。
23、假如机器有512MB内存,缺省可创建进程的上限为:51210241024/8192/2=32768。,2 进程的阻塞和唤醒(1),进程阻塞的步骤如下: 停止进程执行,保存现场信息到PSW 。 修改PCB的有关内容,如进程状态由运行改为等待等。 把修改状态后的PCB加入相应等待进程队列。,进程的阻塞和唤醒(2),进程唤醒的步骤如下: 从相应等待进程队列中取出PCB。 修改PCB有关信息,如进程状态等。 把修改后PCB加入有关就绪进程队列。,3 进程的撤销(1),进程撤销的主要原因(1): 进程正常运行结束。 进程执行了非法指令。 进程在常态下执行了特权指令。 进程运行时间超越了分给的最大时间段。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 进程 及其 实现
链接地址:https://www.31doc.com/p-2578689.html