您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 第2章 进程管理(上)
操作系统第二章进程管理1第二章进程管理进程同步进程的概念进程状态及其转换进程的描述进程控制线程进程互斥进程通信操作系统第二章进程管理2第二章进程管理§2.1进程的概念让多个作业同时装入一个计算机系统的主存储器中,并且同时处于运行状态,共享系统中的各种软、硬件资源,交替占用处理机运行。这种设计技术称“多道程序设计”,这种计算机系统称“多道程序系统”。一个程序通常由若干个程序段所组成,它们必须按照程序规定的先后次序来执行,只有在前一个操作结束之后才能开始后继操作,这就是程序的顺序执行。一、程序的顺序执行程序:是具有特定功能的一组指令(或一组语句)的集合,它指出了处理器执行操作的步骤。操作系统第二章进程管理3例如,在处理一个作业时,总是先输入用户的程序和数据,然后进行计算,最后将结果打印出来,它们分别由三个相对独立的程序段I1,C1,P1组成,这三个程序段的执行只能是一个一个地顺序执行,以保证前一个程序段操作的结果可被后一个操作所利用。程序段的执行顺序如下。作业1作业2操作系统第二章进程管理4程序顺序执行的特点:1)顺序性处理机的操作严格按照程序所规定的顺序执行,即每一操作必须在下一操作开始之前结束。2.封闭性程序是在封闭的环境下执行的。即程序运行时独占全机资源,资源的状态(除初始状态外)只有本程序才能改变。程序一旦开始运行,其执行结果不受外界因素的影响。3.可再现性只要程序执行时的环境和初始条件相同,当程序重复执行时,不论它是从头到尾不停顿地执行,还是“停停走走”地执行,都将获得相同的结果。操作系统第二章进程管理5程序段的并发执行的有向图(前趋图)下图给出了系统对一批作业进行处理时,输入操作、计算操作和打印操作各程序段执行的先后次序。二、程序的并发执行并发操作系统第二章进程管理6程序的并发执行:若干程序段同时在系统中运行,这些程序段的执行在时间上是重叠的,即:一个程序段的执行还没结束,另一个程序段的执行已经开始。可以用语句记号表示:cobeginS1;S2;….Sncoend从图上中可以看出:有的程序段的执行是有先后次序的。有的程序段的执行是可以重叠的。操作系统第二章进程管理7程序并发执行的特点1.失去了程序的封闭性和可再现性例如:某交通路口设置了一个自动计数系统,该系统由观察者和报告者共同组成。观察到一辆卡车将计数值累加1将计数值清“0”输出计数值交通路口自动计数系统操作系统第二章进程管理8integerN;N=0;cobeginProcedure观察者beginL1:观察到一辆卡车;N=N+1;gotoL1endProcedure报告者beginL2:printN;N=0;gotoL2endcoend由于观察者和报告者程序可以并发执行,它们并发执行时可能有如下两种情况:1)报告者执行时无卡车通过。2)报告者执行时有卡车通过。设某时刻N的当前值为m,可能出现的情况和结果:情况:(1)a(1)b(2)之前通过之后通过之中通过结果:m+1mm当前的N值:010操作系统第二章进程管理92.程序与它的执行过程不再一一对应3.并发程序之间的相互制约性当具有有一定的逻辑关系的各程序(或程序段)之间需要相互合作来完成同一任务时,它们之间具有直接的相互制约关系。并发程序(或程序段)之间由于共享资源而竞争同一资源时,致使并发程序(或程序段)之间形成了间接的相互制约关系。编译程序user1.cuser2.c操作系统第二章进程管理10例如:由于程序活动之间的相互依赖和相互制约,这就使得程序的活动与它的运行环境密切相关,并呈现:执行—暂停—执行”的活动规律。操作系统第二章进程管理11三、进程的定义在多道程序工作的环境下,各个程序是并发执行的,它们共享系统资源,共同决定这些资源的状态。在这种情况下,使用程序这个传统的静态的概念已经无法描述并发活动的特性、规律和变化。也就是说,用程序作为描述并发活动的执行过程以及管理共享资源的基本单位是不合适的。为此,人们引入了新的概念——进程,以便从变化的角度,动态地分析、研究并发程序的活动。进程是操作系统中的一个最基本、最重要的概念,但是迄今为止,对这一概念还没有形成一个非常确切的、统一的定义,通常是从不同的角度描述它的各个基本特征。操作系统第二章进程管理12定义:(1)进程是程序的一次执行,亦即进程是在指定内存区域中的一组指令序列的执行过程。(2)进程是可以和别的计算并发执行的计算。(3)进程可定义为一个数据结构和能在其上进行操作的一个程序。(4)进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。进程的定义:进程是一个具有独立功能的程序对某个数据集在处理机上的执行过程和分配资源的基本单位。操作系统第二章进程管理13进程与程序的区别:1)进程是一次运行的过程,属于一种动态的概念;而程序是指令的集合,是一个静态的概念。5)一个进程可以包含几个程序;一个程序也可以对应多个进程。当同一程序同时运行于若干个不同的数据集合上时,它将属于若干个不同的进程。3)进程是有生命期的;而程序是永久的。2)进程可以并发执行;而程序不能。4)进程是系统资源分配的基本单位,而程序则不行。编译程序user1.cuser2.c操作系统第二章进程管理14进程的特征:1)动态性。进程具有一定的生命期,是动态地产生、变化和消亡的。动态性是进程最本质的特征。2)并发性。进程之间的活动在时间上可以重叠。引入进程的目的正是为了使其程序能和其它程序并发执行,以提高系统资源利用率。3)独立性。进程是一个能独立运行的基本单位.同时也是系统分配资源和调度的独立单位。4)异步性。由于进程间的相互制约,使进程具有执行的间断性。即进程按各自独立的、不可预知的速度向前推进。5)结构特征。一个进程由三部分组成,即程序、数据和进程控制块。其中进程控制块是进程的一个运行情况的登记表。操作系统第二章进程管理15一、进程的基本状态在操作系统中,进程至少要有三种基本状态:运行状态,就绪状态和等待状态。1)就绪状态。进程等待分配处理机时所处的状态。进程已获得了除中央处理机以外的所有资源,具备了运行条件,只因处理机被其它进程占用而不能执行,一旦获得处理机,便可立即执行。§2.2进程的状态及其转换2)运行状态。当一个进程已获得必要的资源,并占有中央处理机执行时进程所处的状态。在单处理机系统中,任一时刻,处于运行状态的进程只能有一个。操作系统第二章进程管理163)等待状态(阻塞状态,封锁状态,睡眠状态)。正在执行的进程,由于发生某事件(如等待输入/输出完成)而暂时无法执行下去时,便放弃处理机,此时进程所处的状态。引起进程等待的事件有:请求I/O、申请缓冲区、等待信件(信号)等等。处于等待状态的进程本身不具备运行条件,即使分配给它处理机也不能运行。二、进程状态的转换及其转换的原因1)就绪-→运行:对就绪状态的进程,当进程调度程序按一种选定的策略从中选中一个就绪进程,为之分配了处理机后,该进程便由就绪状态变为执行状态;进程调度运行就绪等待进程的基本状态及其转换操作系统第二章进程管理172)运行-→等待:正在执行的进程因发生某等待事件而无法执行,则进程由执行状态变为等待状态,如:进程提出输入/输出请求而变成等待外部设备传输信息的状态,进程申请资源(主存空间或外部设备)得不到满足时变成等待资源状态,进程运行中出现了故障(程序出错或主存储器读写错等)变成等待干预状态等等;等待某事件发生而阻塞运行就绪等待进程调度进程的基本状态及其转换操作系统第二章进程管理183)等待-→就绪:处于等待状态的进程,在其等待的事件已经完成,如输入/输出完成,资源得到满足或错误处理完毕时,处于等待状态的进程并不马上转入执行状态,而是先转入就绪状态,然后再由系统进程调度程序在适当的时候将该进程转为执行状态;所等待的事件发生而唤醒运行就绪等待进程调度等待某事件发生而阻塞进程的基本状态及其转换操作系统第二章进程管理194)执行-→就绪:正在执行的进程,因时间片用完而被暂停执行,或在采用抢先式优先级调度算法的系统中,当有更高优先级的进程要运行而被迫让出处理机时,该进程便由执行状态转变为就绪状态。时间片到运行就绪等待进程调度等待某事件发生所等待的事件发生而阻塞而唤醒进程的基本状态及其转换任务开始任务结束操作系统第二章进程管理20时间片到运行就绪等待进程调度等待某事件发生而阻塞所等待的事件发生而唤醒进程状态的扩展及其转换三、进程状态的扩展及其转换外存内存就绪等待所等待的事件发生而唤醒换出换出换进换进创建终止许可挂起许可终止操作系统第二章进程管理21PCB1共享程序数据1PCB2数据2(c)§2.3进程的描述一、进程的组成进程通常由三部分组成:程序、数据和进程控制块PCB。程序数据PCB(a)PCB程序数据(b)操作系统第二章进程管理22二、进程控制块进程是动态的,为了记录进程的情况以及控制进程的运行,系统为每一个进程设置了一个数据结构——进程控制块(PCB)。系统根据PCB而感知进程的存在,通过PCB对进程进行管理,PCB是进程存在的惟一标志。当系统创建一个进程时,必须为它设置一个PCB,在进程的生命期内利用PCB对进程实施控制管理,进程运行结束后,系统要收回它的PCB,进程也随之消亡。1.进程控制块(PCB)及其作用:操作系统第二章进程管理232.进程控制块(PCB)的内容:1)描述信息进程标识,用户名,家族关系2)控制信息进程当前状态,进程优先级,程序开始地址,各种计时信息,通信信息3)资源管理信息占用内存大小,占用外设情况,指向文件系统的指针4)CPU现场保护区操作系统第二章进程管理243.进程的组织方式:在一个系统中,通常可拥有数十个、数百个乃至数千个PCB。为了能对它们加以有效的管理,应该用适当的方式将这些PCB组织起来。目前常用的组织方式有以下三种。PCB线性表示意图(1)线性表方式将系统中所有的PCB都组织在一张线性表中,将该表的首地址存放在内存的一个专用区域中。该方式实现简单、开销小,但每次查找时都需要扫描整张表,因此适合进程数目不多的系统。操作系统第二章进程管理25即把具有相同状态进程的PCB分别通过PCB中的链接字链接成一个队列。这样,可以形成就绪队列、若干个阻塞队列和空白队列等。(2)链表(进程队列)方式操作系统第二章进程管理26(2)链表(进程队列)方式PCB14PCB2PCB3PCB4PCB5PCB6PCB7PCB8PCB93087901执行指针就绪队列指针阻塞队列指针空闲队列指针…PCB链接队列示意图操作系统第二章进程管理27(3)索引表方式系统根据所有进程状态的不同,建立几张索引表,并把各索引表在内存的首地址记录在内存的一些专用单元中。执行指针就绪索引表PCB1PCB2PCB3PCB4PCB5PCB6PCB7阻塞索引表就绪表指针阻塞表指针按索引方式组织PCB操作系统第二章进程管理28§2.4进程控制1.支撑功能(1)中断处理。(2)时钟管理。(3)原语操作。2.资源管理功能(1)进程管理。(2)存储器管理。(3)设备管理。一、操作系统内核进程控制的职责是对系统中的全部进程实施有效的管理,它是处理机管理的一部分。操作系统第二章进程管理29原语:是机器指令的延伸,是由若干条机器指令构成的,用以完成操作系统特定功能的程序段。为保证原语操作的正确性,原语在执行期间是不可分割(被中断)的。进程控制原语:进程创建原语,进程撤消原语,进程阻塞原语,进程唤醒原语,进程挂起原语,进程激活原语。二、进程创建一个进程可以通过创建原语来产生一个新进程。创建进程称为父进程,被创建的进程称为子进程,子进程还可以通过创建原语创建自己的子进程,这样就形成一个进程家族树。操作系统第二章进程管理30进程树子进程可以继承父进程所拥有的资源,例如,继承父进程打开的文件、父进程所分配到的缓冲区等。当子进程被撤消时,应将从父进程那里获得的资源归还给父进程。此外,在撤消父进程时,也必须同时撤消其所有的子进程。操作系统第二章进程管理31创建原语的形式为:Create(name,Priority,start_ad
本文标题:第2章 进程管理(上)
链接地址:https://www.777doc.com/doc-3793205 .html