1、操作系统练习册03第3章 进程与进程管理本章主要讲述进程和线程的基本概念,具体包括进程的引入、进程的控制、进程的调度和线程等内容。重点提示: 进程和线程的基本概念 进程的基本状态及转换 进程的控制 进程的调度3-1 重点难点指导3-1-1 进程的引入图1-3-1 四条语句的前趋图1前趋图前趋图是一个有向无环图。图中的每个结点用于表示一条语句、一个程序段或进程;结点间的有向边表示在两个结点之间存在的偏序或前趋关系。应当注意:前趋图中一定不存在环。图1-3-1为一个四条语句的前趋图。2程序顺序执行程序的顺序执行是指若干个程序或程序段之间必须按照某种先后次序逐个执行,仅当前一项操作执行完成后,才能执
2、行后继操作。程序顺序执行时具有以下特征:(1)顺序性; (2)封闭性; (3)确定性; (4)可再现性。3程序并发执行程序的并发执行是指两个或者两个以上的程序或程序段可在同一时间间隔内同时执行。程序的并发执行卓有成效地提高了系统的吞吐量,也产生了一些与顺序执行时不同的新特征:(1)间断性;(2)失去封闭性;(3)不可再现性;(4)资源共享;(5)程序和计算不再一一对应。3-1-2 进程的基本概念1进程的定义与特征(1)进程的定义进程是具有独立功能的可并发执行的程序在一个数据集合上的运行过程,是系统进行资源分配和调度的独立单位。或者说,“进程”是进程实体的运行过程。(2)进程的特征 动态性。进程
3、是程序的一次执行过程,因此,动态性是进程最基本的特性。动态性还表现为:“它由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤销而消亡”。 并发性。这是指多个进程实体同存于内存中,能在一段时间内同时运行。并发性是进程的重要特征。 独立性。这是指进程实体是能独立运行的基本单位,同时也是系统中独立获得资源和独立调度的基本单位。 异步性。这是指进程按各自独立的、不可预知的速度向前推进。 结构特征。从结构上看,进程实体是由程序段、数据段及进程控制块三部分组成,有人把这三部分统称为“进程映像”。2进程的基本状态及其转换(1)进程的三种基本状态进程有以下三种基本状态: 就绪状态。当进程已分配到除C
4、PU以外所有必要的资源后,只要能再获得处理机便可立即执行,这时的状态称为就绪状态。 执行状态。进程已获得处理机,程序正在执行。 阻塞状态。进程因发生某种等待事件(如I/O请求、申请缓冲空间等)而暂停执行时的状态,亦即进程的执行受到阻塞,故称这种状态为阻塞状态,有时也称为“等待”状态或“睡眠”状态。(2)进程状态的转换图1-3-2 进程的基本状态及其转换进程在运行期间不断地从一个状态转换到另一个状态,进程的各种调度状态依据一定的条件而发生变化,它可以多次处于就绪状态和执行状态,也可多次处于阻塞状态,但可能排在不同的阻塞队列中。进程的三种基本状态及其转换如图1-3-2所示。在不少操作系统中,进程只
5、有上述三种基本状态,但在另一些操作系统中,基于某种需要又增加了一些新的进程状态,其中最重要的是挂起状态。3进程控制块PCB进程控制块是进程实体的一部分,是操作系统中最重要的数据结构。PCB中记录了操作系统所需的、用于描述进程情况及控制进程运行所需的全部信息。操作系统是根据进程控制块PCB来对并发执行的进程进行控制和管理的。所以说,PCB是进程存在的唯一标志。因为PCB经常被系统访问,尤其是被运行频率很高的进程调度及分派程序访问,故PCB常驻内存。 在进程控制块中,用于描述和控制进程运行的信息主要包括下述四个方面:(1)进程标识符信息。进程标识符用于唯一地标识一个进程。一个进程通常有外部标识符、
6、内部标识符两种标识符。(2)处理机状态信息。用于进程切换时保存和恢复CPU现场,主要是由处理机各种寄存器中的内容所组成。(3)进程调度信息。存放与进程调度和进程对换有关的信息,主要包括进程状态、优先级、等待CPU的时间总和、进程已执行的时间总和和进程阻塞原因等信息。(4)进程控制信息。进程控制信息包括程序和数据的地址、进程同步和通信机制以及资源清单和链接指针等。在一个系统中,通常可拥有数十个、数百个乃至数千个PCB。为能对它们进行有效的管理,应该用适当的方式将它们组织起来。目前常用的组织方式有链接方式和索引方式两种。3-1-3 进程控制进程控制的主要任务是创建和撤销进程以及实现进程的状态转换。
7、进程控制一般由操作系统的内核来实现。1进程的创建 导致一个进程创建另一个进程的典型事件有分时系统中的用户登录、批处理系统中的作业调度、系统提供服务及应用进程本身的应用请求等。 一旦操作系统发现了要求创建新进程的事件后,便调用进程创建原语create(),按下述步骤创建一个新进程: 申请空白PCB; 为新进程分配资源; 初始化进程控制块; 将新进程插入就绪队列中。2进程的终止 当进程完成任务或者遇到异常情况和外界干预需要结束时,应通过调用进程终止原语destroy(),来终止进程。终止进程的实质是回收PCB。具体回收过程是: 根据被终止进程的标识符从PCB集合中检索出该进程的PCB,从中读出该进
8、程的状态。 若被终止进程正处于执行状态,应立即终止该进程的执行并设置调度标志为真,指示该进程被终止后应重新进行调度,选择一新进程,把处理机分配给它。 若该进程还有子孙进程,还应将其所有子孙进程予以终止,以防它们成为不可控的。 将该进程所拥有的全部资源,归还其父进程或者系统。 将被终止进程的PCB从所在队列中移出,等待其他程序来搜集信息。3进程的阻塞与唤醒 当正在执行的进程需要等待某种事件的发生或本身无新工作可做时,应调用阻塞原语block()将该进程从执行状态转换为阻塞状态。具体操作过程是:立即停止执行,把进程控制块中的现行状态由“执行”改为“阻塞”,并把它插入到相应的阻塞队列中。然后,转调度
9、程序进行重新调度。 当阻塞进程所等待的事件发生时,应调用唤醒原语wakeup()将该进程从阻塞状态转换为就绪状态。具体的操作过程是:把被阻塞进程从阻塞队列中移出,将其PCB中的现行状态由阻塞改为就绪,然后再将该进程插入到就绪队列中。3-1-4 进程调度1调度的基本概念一个作业从提交开始直到完成,往往要经历下述三级调度:(1)高级调度高级调度又称为作业调度,它决定将哪些在外存上处于后备状态的作业调入主机内存,准备执行。(2)低级调度低级调度又称为进程调度。它决定就绪队列中哪个进程将获得处理机,并实际执行将处理机分配给该进程的操作。进程调度可采用非剥夺和剥夺两种方式。(3)中级调度在某些系统中,特
10、别是分时系统及具有虚拟存储器的系统中,可能增加一级中级调度。其主要作用是在内存和外存对换区之间进行进程对换,以解决内存紧张的问题。 2进程调度算法(1)先进先出(FIFO)算法该算法总是把处理机分配给最先进入就绪队列的进程,即就绪队列按进入的先后次序排队,调度时,选就绪队列中的队首进程投入执行。一个进程一旦分得处理机,便一直执行下去,直到该进程完成或因发生某事件而阻塞时,才释放处理机。FIFO调度算法易于实现,表面上也公平,但服务质量不佳,容易引起短作业用户的不满,因而FIFO算法很少作为进程调度的主要调度算法,常作为一种辅助调度算法。(2)最短CPU运行期优先调度算法该算法从就绪队列中选出“
11、下一个CPU执行期”最短的进程,为之分配处理机使之执行。虽然最短CPU执行期优先调度算法可获得较好的调度性能,但它所依赖的下一个CPU执行期却难以准确地知道,只能根据进程的执行历史来预测。(3)最高响应比优先调度算法这是一个非剥夺的调度算法。按照此算法每个进程都有一个响应比,响应比不但是要求服务时间的函数,而且是该进程得到服务所花费等待时间的函数。进程的响应比计算公式如下:响应比=(等待时间+要求的服务时间)/要求的服务时间(4)优先级调度算法这是最常用的一种进程调度算法。当发生进程调度时,将CPU分配给就绪队列中优先级最高的进程。通常确定优先级的方法有两种:静态优先级法和动态优先级法。(5)
12、时间片轮转调度算法时间片轮转法通常用于分时系统,它轮流地调度系统中所有的就绪进程。在实现时,它利用一个定时时钟,使之定时地发出中断。时钟中断处理程序再设置新的时钟常量后,即转入进程调度程序,选择一个新的进程占用CPU。时间片长短的确定遵循这样的原则:既要保证系统中各个用户进程及时地得到响应,又不要由于时间片太短而增加调度的开销,降低系统的效率。(6)前后台调度算法这种算法用于批处理和分时相结合的系统中。将分时用户作业放在前台,把批处理作业放在后台。系统对前台作业按照时间片轮转法进行调度,仅当前台无作业时,才把处理机分配给后台作业的进程。后台进程通常按先来先服务方式运行。这样既能使分时用户进程得
13、到及时响应,又能提高系统资源的利用率。(7)多级反馈队列轮转算法系统通常设置多个就绪队列,且进程在其生命周期内可能在多个队列中存在。通常刚创建的进程和因请求I/O未用完时间片的进程排在最高优先级队列,在这个队列中运行23个时间片未完成的进程排列到下一个较低优先级队列中。这样,系统可设置n个优先级队列。系统在调度时,总是先调度优先级高的队列。仅当该队列空时,才调度次高优先级队列。依此类推,第n个队列进程被调度时,必须是前n-1个队列为空。不论什么时候,只要较高优先级队列中有进程进入,立即转进程调度,及时调度优先级较高的队列中的进程。3-1-5 线程1线程的基本概念自从在20世纪60年代提出进程的
14、概念后,在操作系统中一直都是以进程作为能独立运行的基本单位。直至20世纪80年代中期,人们又提出了比进程更小的能独立运行的基本单位线程,试图用它来提高系统内程序并发执行的程度,从而可进一步提高系统的吞吐量。在引入线程的操作系统中,线程是进程的一个实体,是被系统独立调度和分派的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器、一组寄存器和栈),但它可与同属一个进程的其他线程共享进程所拥有的全部资源。一个线程可以创建和撤销另一个线程,同一进程中的多个线程之间可以并发执行。2实现机制对于通常的进程,不论是系统进程还是用户进程,在进行切换时都要依赖于内核中的进程调
15、度。因此,我们说,不论什么进程都是与内核有关的,是在内核支持下进行切换的。对于线程来说,则可分为两类:一类是内核支持线程,它们是依赖于内核的。即无论是在用户进程中的线程,还是系统进程中的线程,它们的创建、撤销和切换都由内核来实现。在内核中保留了一张线程控制块,内核根据该控制块而感知该线程的存在并对线程进行控制。另一类是用户级线程。它仅存在于用户级中,对于这种线程的创建、撤销和切换,都不利用系统调用来实现,因而这种线程与内核无关。相应地,内核也并不知道有用户级线程的存在。这两种线程各有优缺点,因此它们也各有其应用场所。3-2 典型例题解析1分配到必要的资源并获得处理机时的进程状态是_。A就绪状态
16、 B执行状态 C阻塞状态 D新状态【分析】进程有三种基本状态:就绪状态、执行状态和阻塞状态。当进程已分配到除CPU以外的所有必要的资源后,只要能再获得处理机便可立即执行,这时的状态称为就绪状态;处于就绪状态的进程如果获得了处理机,其状态转换为执行状态;进程因发生某种事件(如I/O请求、申请缓冲空间等)而暂停执行时的状态,亦即进程的执行受到阻塞,故称这种状态为阻塞状态;而新状态是指创建了进程但尚未把它插入到就绪队列前的状态。【答案】B2挂起的进程被激活,应该使用_原语。Acreate () Bsuspend () Cactive () Dwakeup ()【分析】在不少系统中,进程除了三种基本状
17、态外,又增加了一些新的状态,其中最重要的是挂起状态。“挂起”的实质是使进程不能继续执行,即使挂起后的进程处于就绪状态,它也不能参加对CPU的竞争,进程的挂起调用suspend ()原语。因此,被挂起的进程处于静止状态,相反,没有挂起的进程则处于活动状态。而且,处于静止状态的进程,只有通过“激活”动作,调用active ()原语,才能转换成活动状态,调入内存。【答案】C3任何时刻总是让具有最高优先级的进程占用处理机,此时采用的进程调度算法是_。A非抢占式的优先级调度算法 B时间片轮转调度算法C先来先服务调度算法 D抢占式的优先级调度算法【分析】“让具有最高优先级的进程占用处理机”,我们可以知道,
18、采用的进程调度算法是优先级调度算法,但是我们还要进一步分析是抢占式的还是非抢占式的。“任何时刻总让”,通过这句话我们知道采用的是抢占式的。【答案】D4能从一种状态转变为三种状态的进程状态是_。A就绪 B阻塞 C完成 D执行【分析】进程的基本状态有三种:就绪、执行和阻塞。在有些书籍中,进程还有另外两种基本状态:新状态和完成状态。新状态是在创建了进程而尚未把它插入到就绪队列时的状态;完成状态是指进程正常或异常结束,但尚未将它撤销时的状态。当进程处于执行状态时,可以转变为就绪、阻塞或者完成状态。【答案】D5下列哪一个不会引起进程创建_。A用户登录 B作业调度 C设备分配 D应用请求【分析】进程可以由
19、系统或其他进程创建,导致创建一个进程的典型事件有以下四类:用户登录、作业调度、提供服务和应用请求。设备分配不会引起进程的创建。【答案】C6程序并发执行并具有可再现性的条件是_。【分析】程序在并发执行时,多个程序共享系统中的资源,这些资源的状态将由多个程序来改变,从而使程序的执行失去了封闭性,也失去了可再现性。如果并发执行的程序要具有可再现性,则要么没有共享资源,要么不改变共享资源的状态。【答案】程序间无共享资源或对共享资源仅有读操作7在一个单处理机系统中,若有5个用户进程,且假设当前时刻为用户态,则处于就绪状态的用户进程最多有_个,最少有_个。【分析】因为是单处理机系统,所以一个时刻只有一个进
20、程处于执行状态,能占据处理机运行。所以,5个用户进程,处于就绪状态的进程最多有4个,最少时有0个就绪状态的进程,此时有两种情况: 4个进程处于阻塞状态,1个处于执行状态; 5个进程都处于阻塞状态。【答案】4 08在引入线程的操作系统中,独立调度和分派的基本单位是_,资源分配的基本单位是_。【分析】引入线程的目的是为了进一步提高系统的并发程度,有效地提高系统的性能。在引入线程的操作系统中,线程是调度和分派的基本单位,而无论是否引入了线程,进程都是资源分配的基本单位。【答案】线程 进程9Kleinrock提出了一个基于动态修改优先级的抢占式优先级调度算法。当进程等待CPU(并未运行)时,其优先级以速率a变化,当作业运行时其优先级以速率b变化。当进程进入就绪队列时,其优先级为0。给参数a、b赋以下不同的值可能得到不同的调度算法。由ab0导出的调度算法是_,由ab就绪态 B执行态-阻塞态C就绪态-执行态 D阻塞态-就绪态8已经获得了除_以外的所有运行所需资源的进程处于就绪状态。A存储器 B打印机 CCPU D磁盘空间9下列进程变化状态中,_变化是不可能发生的。A执行就绪 B执行阻塞 C阻塞执行 D阻塞就绪10时间片轮转调度算法经常用于_。A单用户操作系统
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1