操作系统练习册03.docx

上传人:b****8 文档编号:27626674 上传时间:2023-07-03 格式:DOCX 页数:25 大小:33.92KB
下载 相关 举报
操作系统练习册03.docx_第1页
第1页 / 共25页
操作系统练习册03.docx_第2页
第2页 / 共25页
操作系统练习册03.docx_第3页
第3页 / 共25页
操作系统练习册03.docx_第4页
第4页 / 共25页
操作系统练习册03.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

操作系统练习册03.docx

《操作系统练习册03.docx》由会员分享,可在线阅读,更多相关《操作系统练习册03.docx(25页珍藏版)》请在冰豆网上搜索。

操作系统练习册03.docx

操作系统练习册03

第3章进程与进程管理

本章主要讲述进程和线程的基本概念,具体包括进程的引入、进程的控制、进程的调度和线程等内容。

重点提示:

●进程和线程的基本概念

●进程的基本状态及转换

●进程的控制

●进程的调度

3-1重点难点指导

3-1-1进程的引入

图1-3-1四条语句的前趋图

1.前趋图

前趋图是一个有向无环图。

图中的每个结点用于表示一条语句、一个程序段或进程;结点间的有向边表示在两个结点之间存在的偏序或前趋关系。

应当注意:

前趋图中一定不存在环。

图1-3-1为一个四条语句的前趋图。

2.程序顺序执行

程序的顺序执行是指若干个程序或程序段之间必须按照某种先后次序逐个执行,仅当前一项操作执行完成后,才能执行后继操作。

程序顺序执行时具有以下特征:

(1)顺序性;

(2)封闭性;(3)确定性;(4)可再现性。

3.程序并发执行

程序的并发执行是指两个或者两个以上的程序或程序段可在同一时间间隔内同时执行。

程序的并发执行卓有成效地提高了系统的吞吐量,也产生了一些与顺序执行时不同的新特征:

(1)间断性;

(2)失去封闭性;

(3)不可再现性;

(4)资源共享;

(5)程序和计算不再一一对应。

3-1-2进程的基本概念

1.进程的定义与特征

(1)进程的定义

进程是具有独立功能的可并发执行的程序在一个数据集合上的运行过程,是系统进行资源分配和调度的独立单位。

或者说,“进程”是进程实体的运行过程。

(2)进程的特征

①动态性。

进程是程序的一次执行过程,因此,动态性是进程最基本的特性。

动态性还表现为:

“它由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤销而消亡”。

②并发性。

这是指多个进程实体同存于内存中,能在一段时间内同时运行。

并发性是进程的重要特征。

③独立性。

这是指进程实体是能独立运行的基本单位,同时也是系统中独立获得资源和独立调度的基本单位。

④异步性。

这是指进程按各自独立的、不可预知的速度向前推进。

⑤结构特征。

从结构上看,进程实体是由程序段、数据段及进程控制块三部分组成,有人把这三部分统称为“进程映像”。

2.进程的基本状态及其转换

(1)进程的三种基本状态

进程有以下三种基本状态:

①就绪状态。

当进程已分配到除CPU以外所有必要的资源后,只要能再获得处理机便可立即执行,这时的状态称为就绪状态。

②执行状态。

进程已获得处理机,程序正在执行。

③阻塞状态。

进程因发生某种等待事件(如I/O请求、申请缓冲空间等)而暂停执行时的状态,亦即进程的执行受到阻塞,故称这种状态为阻塞状态,有时也称为“等待”状态或“睡眠”状态。

(2)进程状态的转换

图1-3-2进程的基本状态及其转换

进程在运行期间不断地从一个状态转换到另一个状态,进程的各种调度状态依据一定的条件而发生变化,它可以多次处于就绪状态和执行状态,也可多次处于阻塞状态,但可能排在不同的阻塞队列中。

进程的三种基本状态及其转换如图1-3-2所示。

在不少操作系统中,进程只有上述三种基本状态,但在另一些操作系统中,基于某种需要又增加了一些新的进程状态,其中最重要的是挂起状态。

3.进程控制块PCB

进程控制块是进程实体的一部分,是操作系统中最重要的数据结构。

PCB中记录了操作系统所需的、用于描述进程情况及控制进程运行所需的全部信息。

操作系统是根据进程控制块PCB来对并发执行的进程进行控制和管理的。

所以说,PCB是进程存在的唯一标志。

因为PCB经常被系统访问,尤其是被运行频率很高的进程调度及分派程序访问,故PCB常驻内存。

在进程控制块中,用于描述和控制进程运行的信息主要包括下述四个方面:

(1)进程标识符信息。

进程标识符用于唯一地标识一个进程。

一个进程通常有外部标识符、内部标识符两种标识符。

(2)处理机状态信息。

用于进程切换时保存和恢复CPU现场,主要是由处理机各种寄存器中的内容所组成。

(3)进程调度信息。

存放与进程调度和进程对换有关的信息,主要包括进程状态、优先级、等待CPU的时间总和、进程已执行的时间总和和进程阻塞原因等信息。

(4)进程控制信息。

进程控制信息包括程序和数据的地址、进程同步和通信机制以及资源清单和链接指针等。

在一个系统中,通常可拥有数十个、数百个乃至数千个PCB。

为能对它们进行有效的管理,应该用适当的方式将它们组织起来。

目前常用的组织方式有链接方式和索引方式两种。

3-1-3进程控制

进程控制的主要任务是创建和撤销进程以及实现进程的状态转换。

进程控制一般由操作系统的内核来实现。

1.进程的创建

导致一个进程创建另一个进程的典型事件有分时系统中的用户登录、批处理系统中的作业调度、系统提供服务及应用进程本身的应用请求等。

一旦操作系统发现了要求创建新进程的事件后,便调用进程创建原语create(),按下述步骤创建一个新进程:

①申请空白PCB;

②为新进程分配资源;

③初始化进程控制块;

④将新进程插入就绪队列中。

2.进程的终止

当进程完成任务或者遇到异常情况和外界干预需要结束时,应通过调用进程终止原语destroy(),来终止进程。

终止进程的实质是回收PCB。

具体回收过程是:

①根据被终止进程的标识符从PCB集合中检索出该进程的PCB,从中读出该进程的状态。

②若被终止进程正处于执行状态,应立即终止该进程的执行并设置调度标志为真,指示该进程被终止后应重新进行调度,选择一新进程,把处理机分配给它。

③若该进程还有子孙进程,还应将其所有子孙进程予以终止,以防它们成为不可控的。

④将该进程所拥有的全部资源,归还其父进程或者系统。

⑤将被终止进程的PCB从所在队列中移出,等待其他程序来搜集信息。

3.进程的阻塞与唤醒

当正在执行的进程需要等待某种事件的发生或本身无新工作可做时,应调用阻塞原语block()将该进程从执行状态转换为阻塞状态。

具体操作过程是:

立即停止执行,把进程控制块中的现行状态由“执行”改为“阻塞”,并把它插入到相应的阻塞队列中。

然后,转调度程序进行重新调度。

当阻塞进程所等待的事件发生时,应调用唤醒原语wakeup()将该进程从阻塞状态转换为就绪状态。

具体的操作过程是:

把被阻塞进程从阻塞队列中移出,将其PCB中的现行状态由阻塞改为就绪,然后再将该进程插入到就绪队列中。

3-1-4进程调度

1.调度的基本概念

一个作业从提交开始直到完成,往往要经历下述三级调度:

(1)高级调度

高级调度又称为作业调度,它决定将哪些在外存上处于后备状态的作业调入主机内存,准备执行。

(2)低级调度

低级调度又称为进程调度。

它决定就绪队列中哪个进程将获得处理机,并实际执行将处理机分配给该进程的操作。

进程调度可采用非剥夺和剥夺两种方式。

(3)中级调度

在某些系统中,特别是分时系统及具有虚拟存储器的系统中,可能增加一级中级调度。

其主要作用是在内存和外存对换区之间进行进程对换,以解决内存紧张的问题。

2.进程调度算法

(1)先进先出(FIFO)算法

该算法总是把处理机分配给最先进入就绪队列的进程,即就绪队列按进入的先后次序排队,调度时,选就绪队列中的队首进程投入执行。

一个进程一旦分得处理机,便一直执行下去,直到该进程完成或因发生某事件而阻塞时,才释放处理机。

FIFO调度算法易于实现,表面上也公平,但服务质量不佳,容易引起短作业用户的不满,因而FIFO算法很少作为进程调度的主要调度算法,常作为一种辅助调度算法。

(2)最短CPU运行期优先调度算法

该算法从就绪队列中选出“下一个CPU执行期”最短的进程,为之分配处理机使之执行。

虽然最短CPU执行期优先调度算法可获得较好的调度性能,但它所依赖的下一个CPU执行期却难以准确地知道,只能根据进程的执行历史来预测。

(3)最高响应比优先调度算法

这是一个非剥夺的调度算法。

按照此算法每个进程都有一个响应比,响应比不但是要求服务时间的函数,而且是该进程得到服务所花费等待时间的函数。

进程的响应比计算公式如下:

响应比=(等待时间+要求的服务时间)/要求的服务时间

(4)优先级调度算法

这是最常用的一种进程调度算法。

当发生进程调度时,将CPU分配给就绪队列中优先级最高的进程。

通常确定优先级的方法有两种:

静态优先级法和动态优先级法。

(5)时间片轮转调度算法

时间片轮转法通常用于分时系统,它轮流地调度系统中所有的就绪进程。

在实现时,它利用一个定时时钟,使之定时地发出中断。

时钟中断处理程序再设置新的时钟常量后,即转入进程调度程序,选择一个新的进程占用CPU。

时间片长短的确定遵循这样的原则:

既要保证系统中各个用户进程及时地得到响应,又不要由于时间片太短而增加调度的开销,降低系统的效率。

(6)前后台调度算法

这种算法用于批处理和分时相结合的系统中。

将分时用户作业放在前台,把批处理作业放在后台。

系统对前台作业按照时间片轮转法进行调度,仅当前台无作业时,才把处理机分配给后台作业的进程。

后台进程通常按先来先服务方式运行。

这样既能使分时用户进程得到及时响应,又能提高系统资源的利用率。

(7)多级反馈队列轮转算法

系统通常设置多个就绪队列,且进程在其生命周期内可能在多个队列中存在。

通常刚创建的进程和因请求I/O未用完时间片的进程排在最高优先级队列,在这个队列中运行2~3个时间片未完成的进程排列到下一个较低优先级队列中。

这样,系统可设置n个优先级队列。

系统在调度时,总是先调度优先级高的队列。

仅当该队列空时,才调度次高优先级队列。

依此类推,第n个队列进程被调度时,必须是前n-1个队列为空。

不论什么时候,只要较高优先级队列中有进程进入,立即转进程调度,及时调度优先级较高的队列中的进程。

3-1-5线程

1.线程的基本概念

自从在20世纪60年代提出进程的概念后,在操作系统中一直都是以进程作为能独立运行的基本单位。

直至20世纪80年代中期,人们又提出了比进程更小的能独立运行的基本单位——线程,试图用它来提高系统内程序并发执行的程度,从而可进一步提高系统的吞吐量。

在引入线程的操作系统中,线程是进程的一个实体,是被系统独立调度和分派的基本单位。

线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器、一组寄存器和栈),但它可与同属一个进程的其他线程共享进程所拥有的全部资源。

一个线程可以创建和撤销另一个线程,同一进程中的多个线程之间可以并发执行。

2.实现机制

对于通常的进程,不论是系统进程还是用户进程,在进行切换时都要依赖于内核中的进程调度。

因此,我们说,不论什么进程都是与内核有关的,是在内核支持下进行切换的。

对于线程来说,则可分为两类:

一类是内核支持线程,它们是依赖于内核的。

即无论是在用户进程中的线程,还是系统进程中的线程,它们的创建、撤销和切换都由内核来实现。

在内核中保留了一张线程控制块,内核根据该控制块而感知该线程的存在并对线程进行控制。

另一类是用户级线程。

它仅存在于用户级中,对于这种线程的创建、撤销和切换,都不利用系统调用来实现,因而这种线程与内核无关。

相应地,内核也并不知道有用户级线程的存在。

这两种线程各有优缺点,因此它们也各有其应用场所。

3-2典型例题解析

1.分配到必要的资源并获得处理机时的进程状态是________。

A.就绪状态B.执行状态C.阻塞状态D.新状态

【分析】进程有三种基本状态:

就绪状态、执行状态和阻塞状态。

当进程已分配到除CPU以外的所有必要的资源后,只要能再获得处理机便可立即执行,这时的状态称为就绪状态;处于就绪状态的进程如果获得了处理机,其状态转换为执行状态;进程因发生某种事件(如I/O请求、申请缓冲空间等)而暂停执行时的状态,亦即进程的执行受到阻塞,故称这种状态为阻塞状态;而新状态是指创建了进程但尚未把它插入到就绪队列前的状态。

【答案】B

2.挂起的进程被激活,应该使用________原语。

A.create()B.suspend()C.active()D.wakeup()

【分析】在不少系统中,进程除了三种基本状态外,又增加了一些新的状态,其中最重要的是挂起状态。

“挂起”的实质是使进程不能继续执行,即使挂起后的进程处于就绪状态,它也不能参加对CPU的竞争,进程的挂起调用suspend()原语。

因此,被挂起的进程处于静止状态,相反,没有挂起的进程则处于活动状态。

而且,处于静止状态的进程,只有通过“激活”动作,调用active()原语,才能转换成活动状态,调入内存。

【答案】C

3.任何时刻总是让具有最高优先级的进程占用处理机,此时采用的进程调度算法是________。

A.非抢占式的优先级调度算法B.时间片轮转调度算法

C.先来先服务调度算法D.抢占式的优先级调度算法

【分析】“让具有最高优先级的进程占用处理机”,我们可以知道,采用的进程调度算法是优先级调度算法,但是我们还要进一步分析是抢占式的还是非抢占式的。

“任何时刻总让”,通过这句话我们知道采用的是抢占式的。

【答案】D

4.能从一种状态转变为三种状态的进程状态是________。

A.就绪B.阻塞C.完成D.执行

【分析】进程的基本状态有三种:

就绪、执行和阻塞。

在有些书籍中,进程还有另外两种基本状态:

新状态和完成状态。

新状态是在创建了进程而尚未把它插入到就绪队列时的状态;完成状态是指进程正常或异常结束,但尚未将它撤销时的状态。

当进程处于执行状态时,可以转变为就绪、阻塞或者完成状态。

【答案】D

5.下列哪一个不会引起进程创建________。

A.用户登录B.作业调度C.设备分配D.应用请求

【分析】进程可以由系统或其他进程创建,导致创建一个进程的典型事件有以下四类:

用户登录、作业调度、提供服务和应用请求。

设备分配不会引起进程的创建。

【答案】C

6.程序并发执行并具有可再现性的条件是________。

【分析】程序在并发执行时,多个程序共享系统中的资源,这些资源的状态将由多个程序来改变,从而使程序的执行失去了封闭性,也失去了可再现性。

如果并发执行的程序要具有可再现性,则要么没有共享资源,要么不改变共享资源的状态。

【答案】程序间无共享资源或对共享资源仅有读操作

7.在一个单处理机系统中,若有5个用户进程,且假设当前时刻为用户态,则处于就绪状态的用户进程最多有________个,最少有________个。

【分析】因为是单处理机系统,所以一个时刻只有一个进程处于执行状态,能占据处理机运行。

所以,5个用户进程,处于就绪状态的进程最多有4个,最少时有0个就绪状态的进程,此时有两种情况:

①4个进程处于阻塞状态,1个处于执行状态;②5个进程都处于阻塞状态。

【答案】40

8.在引入线程的操作系统中,独立调度和分派的基本单位是________,资源分配的基本单位是________。

【分析】引入线程的目的是为了进一步提高系统的并发程度,有效地提高系统的性能。

在引入线程的操作系统中,线程是调度和分派的基本单位,而无论是否引入了线程,进程都是资源分配的基本单位。

【答案】线程进程

9.Kleinrock提出了一个基于动态修改优先级的抢占式优先级调度算法。

当进程等待CPU(并未运行)时,其优先级以速率a变化,当作业运行时其优先级以速率b变化。

当进程进入就绪队列时,其优先级为0。

给参数a、b赋以下不同的值可能得到不同的调度算法。

由a>b>0导出的调度算法是________,由a

【分析】对于先进先出算法,因为在就绪队列中的进程比在CPU上运行的进程的优先权提高得快,故进程切换时,先进入就绪队列的进程优先权就越高。

对于后进先出算法,因为在就绪队列中的进程比在CPU上运行的进程的优先权下降得快,故后进入就绪队列的进程比先进入的进程的优先权高。

【答案】先进先出算法后进先出算法

10.判断:

不同的进程所执行的程序代码一定不同。

【分析】在多道程序系统下,不同的进程执行的程序代码可能是相同的,例如,fork系统调用所产生的父子进程的代码段和数据段都是相同的。

【答案】错误

11.试比较进程与程序的异同。

【分析与解答】

进程和程序是紧密相关而又完全不同的两个概念。

(1)每个进程实体中包含了程序段、数据段这两个部分,因此说进程和程序是紧密相关的。

但从结构上看,进程实体中除了程序段和数据段外,还必须包含一个数据结构,即进程控制块PCB。

(2)进程是程序的一次执行过程,因此是动态的。

动态性还表现在进程由创建而产生、由调度而执行、由撤销而消亡,即它具有一定的生命周期。

而程序则只是一组指令的有序集合,并可永久地存放在某种介质上,其本身不具有动态的含义,因此是静态的。

(3)多个进程实体可同时存放在内存中并发执行,其实这正是引入进程的目的。

而程序的并发执行具有不可再现性,因此程序不能正确地并发执行。

(4)进程是一个能够独立运行,独立分配资源和独立接受调度的基本单位。

而因程序不具有PCB,所以它是不可能在多道程序环境下独立运行的。

(5)进程和程序不一一对应。

同一个程序的多次运行,将形成多个不同的进程;同一个程序的一次执行也可以产生多个进程;而一个进程也可以执行多个程序。

12.什么是进程控制块?

它有什么作用?

【分析与解答】

进程控制块PCB是一个记录进程属性信息的数据结构,是进程实体的一部分,是操作系统中最重要的数据结构。

当操作系统要调度某进程执行时,需要从该进程的PCB中查询其现行状态和优先级调度参数;在调度到某进程后,要根据其PCB中保存的处理机状态信息去设置和恢复进程运行的现场,并根据其PCB中的程序和数据的内存地址来找到其程序和数据;进程在执行过程中,当需要与其他进程通信时,也要访问其PCB;当进程因某种原因而暂停执行时,又需要将断点的现场信息保存在其PCB中。

系统在建立进程的同时就建立了该进程的PCB,在撤销一个进程同时也就撤销了其PCB。

由此可知,操作系统根据PCB来对并发执行的进程进行控制和管理,PCB是进程存在的唯一标志。

13.什么是原语?

【分析与解答】

原语是由若干条机器指令构成的一段程序,用以完成特定的功能。

这段程序在执行期间不可分割。

也就是说,原语的执行不能被中断,所以原语的操作具有原子性。

14.进程和线程的主要区别是什么?

【分析与解答】

从调度、并发性、系统开销、拥有资源等方面来比较线程和进程:

(1)调度。

在传统的操作系统中,独立调度、分派的基本单位是进程。

而在引入线程的操作系统中,则把线程作为调度和分派的基本单位。

(2)并发性。

在引入线程的操作系统中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间亦可并发执行,因而使操作系统具有更好的并发性,从而能更有效地使用系统资源和提高系统的吞吐量。

(3)拥有资源。

不论是传统的操作系统,还是设有线程的操作系统,进程都是拥有资源的基本单位,它可以拥有自己的资源。

一般地说,线程自己不拥有系统资源(也有一点必不可少的资源),但它可以访问其隶属进程的资源。

(4)系统开销。

由于在创建、撤销或切换进程时,系统都要为之分配或回收资源,保存CPU现场。

因此,操作系统所付出的开销将显著地大于在创建、撤销或切换线程时的开销。

15.有4个进程P1,P2,P3,P4,它们进入就绪队列的先后次序为P1、P2、P3、P4,它们的优先级和需要的处理机时间如表1-3-1所示。

假定这四个进程执行过程中不会发生等待事件,忽略进行调度等所花费的时间,从某个时刻开始进程调度,请回答下列问题:

①写出分别采用“先来先服务”调度算法选中进程执行的次序、计算出各进程在就绪队列中的等待时间以及平均等待时间;

②写出分别采用“非抢占式的优先级”(固定优先级)调度算法选中进程执行的次序、计算出各进程在就绪队列中的等待时间以及平均等待时间;

③写出分别采用“时间片轮转”(时间片大小为5)调度算法选中进程执行的次序、计算出各进程在就绪队列中的等待时间以及平均等待时间。

表1-3-1

进程

处理机时间

优先级

P1

8

3

P2

6

1

P3

22

5

P4

4

4

【分析】先来先服务算法是把处理机分配给最先进入就绪队列中的进程,并且一个进程一旦分得了处理机,便一直执行下去,直到该进程完成或因发生某事件而阻塞时,才释放处理机;非抢占式优先级调度算法将CPU分配给就绪队列中优先级最高的进程,就算进程在运行过程中,有更高优先级的进程进入,也要等待运行完毕或阻塞再释放处理机;时间片轮转算法中每个进程轮流运行一个时间片的时间,如果在一个时间片的时间内没有运行完毕,则进入就绪队列中,等待下一个时间片继续运行。

【答案】先来先服务算法选择进程的顺序依次为P1、P2、P3、P4。

进程P1等待时间为0;

进程P2等待时间为8;

进程P3等待时间为8+6=14;

进程P4等待时间为8+6+22=36。

平均等待时间为(0+8+14+36)/4=14.5

非抢占式的优先级算法选择进程的顺序依次为P3、P4、P1、P2。

进程P1等待时间为4+22=26;

进程P2等待时间为22+4+8=34;

进程P3等待时间为0;

进程P4等待时间为22。

平均等待时间为(26+34+0+22)/4=20.5

时间片轮转进程调度顺序为P1、P2、P3、P4、P1、P2、P3、P3、P3、P3。

进程P1等待两次,时间为0+(5+5+4)=14;

进程P2等待两次,时间为5+(5+4+3)=17;

进程P3等待两次,时间为(5+5)+(4+3+1)=18;

进程P4等待1次,时间为5+5+5=15。

平均等待时间为(14+17+18+15)/4=16

3-3练习题

一、单项选择题

1.下面对进程的描述中,错误的是________。

A.进程是动态的概念B.进程执行需要处理机

C.进程是有生命周期的D.进程是指令的集合

2.进程的组成部分中________是进程存在的唯一标志。

A.PCBB.数据集合C.共享程序D.非共享程序

3.进程从执行态到阻塞状态可能是由于________。

A.请求某种资源B.现运行进程时间片用完

C.释放某种资源D.进程调度程序的调度

4.进程从执行态到阻塞态不可能是由于现运行进程________。

A.出现缺页中断B.发生越界中断

C.申请磁带读/写D.释放某种资源

5.在进程管理中,当________时,进程从阻塞状态变为就绪状态。

A.进程被进程调度程序选中B.等待某一事件

C.等待的事件发生D.时间片用完

6.引入多道程序设计技术的目的在于________。

A.充分利用CPU,增加单位时间内的算题量

B.充分利用存储器

C.有利于代码共享,减少内、外存信息交换量

D.提高每一个算题的速度

7.分配给进程占用处理机的时间到而强迫进程让出处理机,或有更高优先级的进程要运行,迫使正在运行的进程让出处理机,则进程状态变化的情况为________。

A.执行态->就绪态B.执行态->阻塞态

C.就绪态->执行态D.阻塞态->就绪态

8.已经获得了除________以外的所有运行所需资源的进程处于就绪状态。

A.存储器B.打印机C.CPUD.磁盘空间

9.下列进程变化状态中,________变化是不可能发生的。

A.执行→就绪B.执行→阻塞C.阻塞→执行D.阻塞→就绪

10.时间片轮转调度算法经常用于________。

A.单用户操作系统

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1