当前位置:文档之家› 第二章_进程管理习题修改汇总

第二章_进程管理习题修改汇总

一、选择题1.在进程管理中,当 C 时,进程从阻塞状态变为就绪状态。

A.进程被进程调度程序选中B.等待某一事件C.等待的事件发生D.时间片用完2.分配到必要的资源并获得处理机时的进程状态是 B 。

A.就绪状态B.执行状态C.阻塞状态D.撤消状态3.进程的三个基本状态在一定条件下可以相互转化,进程由就绪状态变为运行状态的条件是 D 。

A.时间片用完B.等待某事件发生C.等待的某事件已发生D.被进程调度程序选中4.进程的三个基本状态在一定条件下可以相互转化,进程由运行状态变为阻塞状态的条件是 B 。

A.时间片用完B.等待某事件发生C.等待的某事件已发生D.被进程调度程序选中5.下列的进程状态变化中, C 变化是不可能发生的。

A.运行→就绪B.就绪→运行C.等待→运行D.等待→就绪6.一个运行的进程用完了分配给它的时间片后,它的状态变为A 。

A.就绪B.等待C.运行D.由用户自己确定7.操作系统通过 B 对进程进行管理。

A. JCBB. PCBC. DCTD. CHCT 8.一个进程被唤醒意味着 D 。

A. 该进程重新占有了CPUB. 它的优先权变为最大C. 其PCB移至等待队列队首D. 进程变为就绪状态9.多道程序环境下,操作系统分配资源以 C 为基本单位。

A. 程序B. 指令C. 进程D. 作业10. 从下面的叙述中选出一条正确的叙述:(1)操作系统的一个重要概念是进程,不同的进程所执行的代码也不同。

(2)操作系统通过PCB来控制和管理进程,用户进程可从PCB 中读出与本身运行状态相关的信息。

(3)当进程由执行状态变为就绪状态时,CPU现场信息必须被保存在PCB中。

(4)当进程申请CPU得不到满足时,它将处于阻塞状态。

(5)进程是可与其他程序并发执行的程序在一个数据集合上的运行过程,所以程序段是进程存在的唯一标志。

11. 从下面的叙述中选出4条正确的叙述:(1)一个进程的状态发生变化总会引起其它一些进程的状态发生变化。

(2)进程被挂起(suspend)后,状态变为阻塞状态。

(3)信号量的初值不能为负数。

(4)线程是CPU调度的基本单位,但不是资源分配的基本单位。

(5)在进程对应的代码中使用wait、signal操作后,可以防止系统发生死锁。

(6)管程每次只允许一个进程进入。

(7)wait、signal操作可以解决一切互斥问题。

(8)程序的顺序执行具有不可再现性。

二、是非题1.进程是动态的概念2.进程执行需要处理机3.进程是有生命期的4.进程是指令的集合5.操作系统的一重要概念是进程,因此不同进程所执行的代码也一定不同7.操作系统用PCB管理进程,用户进程可以从PCB中读出与本身运行状况有关的信息8.进程同步是指某些进程之间在逻辑上的相互制约关系9.在一个只有单个CPU的计算机中,进程不能并行操作。

一个进程在利用CPU运行,另一个进程可以同时进行I/O操作,它们是并行的。

10.线程可以分为内核级(Kernel Thread)和用户级(User Thread)两种,操作系统不可以直接调度用户级的线程。

三、填空题1.信号量的物理意义是当信号量值大于零时表示可用资源的数目;当信号量值小于零时,其绝对值为因请求该资源而被阻塞的进程数目。

2.临界资源的概念是一次仅允许一个进程访问的资源,而临界区是指进程中访问临界资源的那段程序代码。

3.进程在运行过程中有三种基本状态,它们是就绪、执行、阻塞。

4.进程主要由程序段、数据段、 PCB 三部分内容组成,其中 PCB 是进程存在的唯一标志。

而程序段部分也可以为其他进程共享。

5.系统中各进程之间逻辑上的相互制约关系称为进程同步。

6.若一个进程已进入临界区,其他欲进入临界区的进程必须等待。

7.将进程的 PCB 链接在一起就形成了进程队列。

8.用P、V操作管理临界区时,任何一个进程在进入临界区之前应调用 P 操作,退出临界区时应调用 V 操作。

9.在多道程序系统中,进程之间存在着的不同制约关系可以划分为两类:互斥与同步。

互斥指进程间具有的一定逻辑关系;同步是指进程间在使用共享资源方面的约束关系。

10.程序顺序执行时有顺序性、封闭性和可再现性的特点。

11.有m个进程共享同一临界资源,若使用信号量机制实现对临界资源的互斥访问,则信号量值的变化范围是 1至-(m-1)。

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

13、在单用户单任务环境下,用户独占全机,此时机内资源的状态,只能由运行程序的操作加以改变,此时的程序执行具有封闭性性和可再现性性特征。

14、并发进程之间的相互制约,是由于它们的共享资源和相互合作而产生的,因而导致程序在并发执行时具有间断性或异步性特征。

15、程序并发执行与顺序执行时相比产生了一些新特征,分别是间断性、失去封闭性和不可再现性。

16、引入进程的目的是使程序能正确地并发执行,以提高资源利用率和系统吞吐量,而引入线程的目的是减少并发执行的开销,提高程序执行的并发程度。

17、进程由程序段、数据段和 PCB 组成,其中 PCB 是进程存在的唯一标志。

18、进程最基本的特征是动态性和并发性,除此之外,它还有独立特征、异步性和结构特征。

19、由于进程的实质是程序的一次执行,故进程有动态性的基本特征,该特征还表现在进程由创建而产生,由调度而执行,由撤销而消亡,即进程具有一定的生命期。

20、引入进程带来的好处是提高资源利用率和增加系统吞吐量。

21、当前正在执行的进程由于时间片用完而暂停执行时,该进程应转变为就绪状态;若因发生某种事件而不能继续执行时,应转为阻塞状态;若应终端用户的请求而暂停执行时,它应转为静止就绪状态。

22、用户为阻止进程继续运行,应利用挂起原语,若进程正在执行,应转为静止就绪状态;以后,若用户要恢复其运行,应利用激活原语,此时进程应转为活动就绪状态。

23、系统中共有5个用户进程,且当前CPU在用户态下执行,则最多可有 4 个用户进程处于就绪状态,最多可有 4 个用户进程处于阻塞状态;若当前在核心态下执行,则最多可有 5 个用户进程处于就绪状态,最多可有 5 个用户进程处于阻塞状态。

24、同步机制应遵循的准则:空闲让进、忙则等待、有限等待和让权等待。

25、在记录型信号量机制中,S.value>0时的值表示可用的临界资源数量;每次wait操作意味着申请一个临界资源,因此应将S.value 减1 ,当S.value <0 时,进程应阻塞。

四、解析题1.进程的定义是什么?它最少有哪几种状态?【解】进程是一个具有一定功能的程序关于某个数据集合的一次运行活动。

一个进程最少有就绪、执行和阻塞三种状态。

就绪状态是指进程已获得了除处理机以外的所有资源,一旦获得处理机就可以立即执行。

执行状态是指进程获得必要的资源并正在处理机上执行。

阻塞状态是指进程由于发生某事件而暂时无法执行下去,此时即使把处理机分配给该进程,它也无法运行。

2.进程与线程的主要区别是什么?[解]1>线程是进程的一个组成部分2>进程的多线程都在进程地址空间活动3>资源是分给进程的4>处理机的调度基本单位是线程5>线程的执行需要同步3.什么是进程的互斥与同步?同步和互斥这两个概念有什么联系和区别?解:(1)同步:两个事件的发生有着某种时序上的关系,进程间的同步关系是指系统中往往有几个进程共同完成一个任务;(2)互斥是进程间的另外一种关系。

由于各进程要共享资源。

而有些资源往往要求排他性地使用;(3)互斥是一种特殊的同步关系。

4. 桌上有一空盘,允许存放一只水果。

爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。

规定当盘空时一次只能放一只水果供吃者取用,请用P、V原语实现爸爸、儿子、女儿三个并发进程的同步。

解:设置3个信号量S、SO、SA信号量S表示盘子是否为空,其初值为1;信号量SO表示盘中是否有桔子,其初值为0;信号量SA表示盘中是否有苹果,其初值为0。

同步描述:int S=1;int SA=0;int SO=0;main(){father();son();daughter();}father(){while(1){p(S);//盘子是否空将水果放入盘中;if(放入的是桔子)v(SO);//变形else v(SA) //很少有学生如此做!而这却是本题的关键}}son(){while(1){p(SO);//盘子中有无桔子从盘中取出桔子;v(S);吃桔子;}}daughter(){while(1){p(SA);//盘子中有无苹果从盘中取出苹果;v(S);吃苹果;}}5. 请用信号量实现对某数据库的读者-写者互斥。

要求:(1)读者与写者之间互斥,写者与写者之间互斥。

(2)读者之间不互斥。

解:本题是读者-写者问题。

在本题中,允许读进程同时读数据库,但写进程正在写数据库时不允许其他进程读该数据库,也不允许其他进程写该数据库。

为了解决读、写进程之间的同步,应该设置2个信号量和一个共享变量:读互斥信号量rmutex,用于使读进程互斥地访问共享变量count,其初值为1;写互斥信号量wmutex,用于实现写进程与读进程的互斥及写进程与写进程的互斥,其初值为1;共享变量count,用于记录当前正在读数据库的读进程数目,初值为0。

其工作过程描述如下:Semaphore rmutex=1;Semaphore wmutex=1;Int count=0;Main(){CobeginReader();Writer();Coend}Reader(){While(true){P(rmutex);If(count==0) p(wmutex);Count ++;V(rmutex);读数据库;P(rmutex);Count --;If (count==0) v(wmutex);V(rmutex);}}Writer(){While(true){P(wmutex);写数据库;V(wmutex);}}注意:正确理解信号量rmutex的意义是理解读者-写者问题的关键。

Rmutex是一个互斥信号量,用于使读进程互斥地访问共享变量count。

信号量rmutex并不表示读进程的数目,表示读进程数目的是共享变量count。

当一个读进程要读数据库时,应将读进程计数count增加1;如果此前(count加1以前)数据库中无读进程,还应对写互斥信号量wmutex做p操作,这样,若数据库中无写进程则通过p操作阻止后续写进程写,若数据库中有写进程,则通过p操作让读进程等待。

同理,当一个读进程完成读数据库操作时,应将读进程计数count减少1;如果此时(count减1以后)数据库中已无读进程,还应对写互斥信号量wmutex做v操作,以允许写进程写。

相关主题