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

一、单项选择题1.一个进程是( )。
A.由协处理器执行的一个程序B.一个独立的程序+数据集C.PCB 结构与程序和数据的组合D.一个独立的程序2.下列关于线程的叙述中,正确的是( )。
A.线程包含 CPU 现场,可以独立执行程序B.每一个线程有自己独立的地址空间C.进程只能包含一个线程D.线程之间的通信必须使用系统调用函数3.进程之间交换数据不能通过( )途径进行。
A.共享文件C.访问进程地址空间B.消息传递D.访问共享存储区4.进程和程序的根本区别是( )。
A.静态和动态特点B.是不是被调入到内存在C.是不是具有就绪.运行和等待三种状态D.是不是占有处理器5.下面的叙述中,正确的是( )。
A.进程获得处理器运行时通过调度得到的B.优先级是进程调度的重要依据,一旦确定不能改动C.在单处理器系统中,任何时刻都惟独一个进程处于运行状态D.进程申请处理器而得不到满足时其状态变为阻塞状态 6.若某一进程拥有 100 个线程,这些线程都属于用户级线程,则在系统调度执行时间上占用的时间片是( )。
A.1 B .100 C.1/100 D.07.进程 Pl .P2 和 P3 单独执行时间分别为 10min.15 min 和 20min,其中处理器占用时间分别为 2min.3 min 和 12min。
如果采用多道程序设计技术使其并发,加之系统开消 5min ,那末并发使得计算机系统的效率提高了( )。
A.1 B.38% C.74% D.51%8.操作系统是根据( )来对并发执行的进程进行控制和管理的。
A.进程的基本状态 B.进程控制块C.多道程序设计 D.进程的优先权 9.在任何时刻,一个进程的状态变化( )引起另一个进程的状态变化。
A.必然 B.一定不 C.不一定 D.不可能 10.在单处理器系统中,如果同时存在 10 个进程,则处于就绪队列中的进程最多有()个。
A.1 B .8 C.9 D.1011.一个进程释放了一台打印机后,有可能改变( )的状态。
计算机操作系统(习题集)第二章 答案

第二章进程管理一、单项选择题1、在单一处理机上执行程序,多道程序的执行是在(B)进行的。
A.同一时刻B. 同一时间间隔内C.某一固定时刻D. 某一固定时间间隔内2、引入多道程序技术后,处理机的利用率( C)。
A.降低了B. 有所改善C.大大提高D. 没有变化,只是程序的执行方便了3、顺序程序和并发程序的执行相比,( C)。
A.基本相同 C.并发程序执行总体上执行时间快B. 有点不同 D.顺序程序执行总体上执行时间快4、单一处理机上,将执行时间有重叠的几个程序称为(C )。
A.顺序程序B. 多道程序C.并发程序D. 并行程序5、进程和程序的本质区别是(D )。
A.存储在内存和外存 B.顺序和非顺序执行机器指令C.分时使用和独占使用计算机资源D.动态和静态特征6、进程就是程序在并发环境中的执行过程,它是系统进行资源分配和调度的一个基本单位。
进程具有[1A]、[2D]、调度性、异步性和结构性等基本特征。
进程是一次执行过程,具有生命期体现了进程的[1]特征。
进程由程序段、[3B]、[4C]组成,其中[4]是进程在系统中存在的唯一标识。
供选择的答案:[1][2] :A、动态性 B、静态性 C、共行性 D、并发性 E、可执行性 F、易用性[3] :A、过程 B、数据 C、进程标识符 D、函数[4] :A、FCB B、FIFO C、PCB D、JCB7、进程执行时的间断性,决定了进程可能具有多种状态。
进程的基本状态有三种,在分时系统中,当一个进程拥有的时间片到时,则该进程即由[1D]进入[2A]。
如果出现因某种原因使得处理机空闲时,则需要从就绪队列中选择一进程,并将处理机分配给它,此时该进程进入[3D],这个过程是由[4C]来完成。
供选择的答案:[1][2][3] :A、就绪状态 B、静止状态 C、阻塞状态 D、运行状态[4] :A、进程控制程序B、资源分配程序C、进程调度程序 D、处理机分配程序8、为了描述进程的动态变化过程,采用了一个与进程相联系的(C ),根据它而感知进程的存在。
第二章 进程管理习题和答案

第二章进程管理习题和答案第二章进程管理习题和答案--一、填空1.进程是一个程序对某个数据集的一次执行过程。
进程从结构上讲,包括程序、数据和PCB。
2.过程是一个动态的概念,程序是一个静态的概念。
3.操作系统中,可以并行工作的基本单位是进程,它是由程序、数据集和pcb类型4.工艺存在的唯一标志是PCB的存在。
当系统创建一个流程时,系统会建立一个一个pcb,当进程被撤销时系统就将其收回。
5.进程有三种基本状态,即运行状态、就绪状态、阻塞状态。
当进程由(1)变换当(2)或(3)时,会立即导致重新安排。
6.在操作系统中,不能被中断的操作称为原语。
7.并发进程之间的基本关系是同步或互斥。
其中互斥是指进程之间的一种间接关系8.关键资源是指一段时间内只允许一个进程使用的资源,关键区域是指访问该进程中关键资源的程序代码。
9.P,V操作原语对信号量进行操作。
10.信号量的物理意义是:当信号量的值大于零时,表示可用资源的数量;当信号量值小于零时,其绝对值为等待使用信号量所代表资源的进程的数量。
11.有n个进程共享同一个临界区,若使用信号量机制实现对临界资源的互斥访Q、信号量值的变化范围为1~-(n-1)。
12.如果系统中有n个进程,等待(阻塞)队列中的最大进程数可以是个n。
13.如果信号量的当前值为-5,则表示系统中在该信号量上有5个等待进程。
14.某程序运行时经常需打印中间结果。
计算时,该进程处于用户态,打印时处在系统状态下,打印结束时流程处于用户状态。
(指系统状态)15在操作系统中引入线程的主要目的是减少程序执行的并发性。
16.如果一个程序可以由多个进程同时共享和执行,那么它应该用纯代码编写,即该程序是可重人码程序,这种程序的特点是:在它执行过程中自身不可修改。
17.中断优先级是由硬件规定的,若要调整中断的响应次序可通过系统调用。
18.进程初建时处于就绪态,运行时因为时钟中断而处于就绪态,因等待事件或资源而处于阻塞态。
第2章 进程管理课后习题解答

第题中,如果修改问题中的同步算法,要求 对写进程优先,即一旦写进程到达,后续的读者进程必须等待, 而无论是否有读者进程在读文件。写出相应进程的程序段。 semaphore fmutex=1, rmutex=1, wmutex=1;que=1;
int rcount=0, wcount=0; void main() { parbegin(reader, writer); }
12
void reader { while(1) { wait(que); wait(rmutex); if(0==readcount) wait(fmutex); readcount++; signal(rmutex); signal(que); …. begin to read wait(rmutex); readcount--; if(readcount==0) signal (fmutex); signal(rmutex); } }
读者—写者问题(读优先) 读者 写者问题(读优先) 写者问题 semaphore rmutex=1,wmutex=1; int readcount=0; = void main() { parbegin(reader,writer); }
读者进程: 读者进程: void reader() { while(1) { wait(rmutex); if (readcount==0) wait(wmutex); readcount++; signal(rmutex); … 读操作 wait(rmutex); readcount--; if (readcount==0) signal(wmutex); signal(rmutex); } }
18
chopstick[ ={1 semaphore chopstick[5]={1,1,1,1,1}; viod main() { parbegin(P0(),P1(),P2(),P3(),P4()); parbegin(P0(),P1(),P2(),P3(),P4()); } Pi() /*i=0,1,2,3,4*/ { while(1) { wait(chopstick[i]); [ ] wait(chopstick[(i+1)%5]); [ ] eating; … signal(chopstick[i]); [ ] signal(chopstick[(i+1) %5]); [ ] thinking; } }
电大操作系统 第2章教材习题解答

第2章进程管理“练习与思考”解答1.基本概念和术语进程、进程互斥、进程同步、临界资源、临界区、死锁进程是程序在并发环境中的执行过程。
进程互斥:各个进程彼此不知道对方的存在,逻辑上没有关系,由于竞争同一资源(如打印机、文件等)而发生相互制约。
进程同步:各个进程不知对方的名字,但通过对某些对象(如I/O缓冲区)的共同存取来协同完成一项任务。
临界资源:一次仅允许一个进程使用的资源。
临界区:在每个进程中访问临界资源的那段程序。
死锁是指在一个进程集合中的每个进程都在等待仅由该集合中的另一个进程才能引发的事件而无限期地僵持下去的局面。
2.基本原理和技术(1)在操作系统中为什么要引入进程概念?它与程序的区别和联系是什么?在操作系统中,由于多道程序并发执行时共享系统资源,共同决定这些资源的状态,因此系统中各程序在执行过程中就出现了相互制约的新关系,程序的执行出现“走走停停”的新状态。
这些都是在程序的动态过程中发生的。
用程序这个静态概念已不能如实反映程序并发执行过程中的这些特征。
为此,人们引入“进程”这一概念来描述程序动态执行过程的性质。
进程与程序的主要区别是:·进程是动态的;程序是静态的。
·进程有独立性,能并发执行;程序不能并发执行。
·二者无一一对应关系。
·进程异步运行,会相互制约;程序不具备此特征。
但进程与程序又有密切的联系:进程不能脱离具体程序而虚设,程序规定了相应进程所要完成的动作。
(2)进程的基本状态有哪几种?通常在操作系统中,进程至少要有三种基本状态。
这三种基本状态是:运行态、就绪态和阻塞态(或等待态)。
(3)用如图3-23所示的进程状态转换图能够说明有关处理机管理的大量内容。
试回答:①什么事件引起每次显著的状态变迁?②下述状态变迁因果关系能否发生?为什么?(A)2→1 (B)3→2 (C)4→1图3-23 进程状态转换图①就绪→运行:CPU空闲,就绪态进程被调度程序选中。
第二章_进程管理习题修改

一、选择题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. CHCT8.一个进程被唤醒意味着 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)一个进程的状态发生变化总会引起其它一些进程的状态发生变化。
02第二章进程管理习题解答.ppt

18、同步机制应遵循哪些基本准则?为什么?
答:用来实现互斥的同步机制必须遵循下述四条 准则:
(1)空闲让进。临界资源空闲时,应允许一 个请求进入临界区的进程立即进入自己的临界区, 以便有效地利用资源。
(2)忙则等待。当临界资源正被访问时,其 他要求进入临界区的进程必须等待,以保证对临 界资源的互斥使用。
•
C0nsume item in nextc;
• Until false;
• End.
•
• 答:修改过的程序如下面带有斜体的命令所示。
• Producer:
• Begin
• Repeat
•…
•
Produce an item in nextp;
•
wait(empty);
•
wait(mutex);
• Buffer(in):=nextp;
• In:=(in+1)mod N
• Siqnal(mutex);
• signal(full);
• Until false;
• End.
• consumer:
• Begin
• Repeat
• waห้องสมุดไป่ตู้t(full);
• wait(mutex);
• Nextc:=buffer(0ut);
• out:=(out+1)mod N;
第二章进程管理习题解答
5、在操作系统中为什么要引入进程概念?它会产生什么样 的影响? 答:在操作系统中引入进程概念,是为了实现多个程序的 并发执行。传统的程序不能与其他程序并发执行,只有在 为之创建进程后,才能与其他程序(进程)并发执行。这 是因为并发执行的程序(即进程)是“停停走走”地执行, 只有在为它创建进程后,在它停下时,方能将其现场信息 保存在它的PCB中,待下次被调度执行时,再从PCB中 恢复CPU现场而继续执行,而传统的程序却无法满足上 述要求。 建立进程所带来的好处是使多个程序能并发执行,这极大 地提高了资源利用率和系统吞吐量。但管理进程也需付出 一定的代价,包括进程控制块及协调各运行的机构所占用 的内存空间开销,以及为进行进程间的切换、同步及通信 等所付出的时间开销。
操作系统__第二章_进程管理_习题答案

操作系统__第二章_进程管理_习题答案第二章进程管理2. 试画出下面4条语句的前趋图:S1S1: a:=x+y;S4S3S2: b:=z+1;S2S3: c:=a-b; S4: w:=c+1; 3. 为什么程序并发执行会产生间断性特征?程序在并发执行时,由于它们共享系统资源,以及为完成同一项任务而相互合作,致使在这些并发执行的进程之间,形成了相互制约的关系,从而也就使得进程在执行期间出现间断性。
4. 程序并发执行时为什么会失去封闭性和可再现性?因为程序并发执行时,是多个程序共享系统中的各种资源,因而这些资源的状态是由多个程序来改变,致使程序的运行失去了封闭性。
而程序一旦失去了封闭性也会导致其再失去可再现性。
5. 在操作系统中为什么要引入进程概念?它会产生什么样的影响?为了使程序在多道程序环境下能并发执行,并能对并发执行的程序加以控制和描述,从而在操作系统中引入了进程概念。
影响: 使程序的并发执行得以实行。
6. 试从动态性,并发性和独立性上比较进程和程序?a. 动态性是进程最基本的特性,可表现为由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤销而消亡,因而进程由一定的生命期;而程序只是一组有序指令的集合,是静态实体。
b. 并发性是进程的重要特征,同时也是OS的重要特征。
引入进程的目的正是为了使其程序能和其它建立了进程的程序并发执行,而程序本身是不能并发执行的。
c. 独立性是指进程实体是一个能独立运行的基本单位,同时也是系统中独立获得资源和独立调度的基本单位。
而对于未建立任何进程的程序,都不能作为一个独立的单位来运行。
7. 试说明PCB的作用?为什么说PCB是进程存在的唯一标志?a. PCB是进程实体的一部分,是操作系统中最重要的记录型数据结构。
PCB中记录了操作系统所需的用于描述进程情况及控制进程运行所需的全部信息。
因而它的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能和其它进程并发执行的进程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、选择题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. CHCT8.一个进程被唤醒意味着 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、在记录型信号量机制中,>0时的值表示可用的临界资源数量;每次wait操作意味着申请一个临界资源,因此应将减1 ,当<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);请用信号量实现对某数据库的读者-写者互斥。
要求:(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操作,以允许写进程写。
6. 就绪队列中有10个进程,系统将时间片设为200ms,CPU进行进程切换要花费10ms,试问系统开销所占的比率约为多少解:因就绪队列中有10个进程,它们以时间片轮转的方式使用CPU,时间片长度为200ms。
当一个时间片用完时,调度进程将当前运行进程设置为就绪状态并放入就绪队列尾,再从就绪队列首选择进程投入运行,这一过程(进程切换)要花费时间10ms。