操作系统习题集------进程管理
计算机操作系统进程管理练习题(1)

一、选择题1.在进程管理中,当时,进程从阻塞状态变为就绪状态。
A.进程被进程调度程序选中B.等待某一事件C.等待的事件发生D.时间片用完2.分配到必要的资源并获得处理机时的进程状态是。
A.就绪状态 B.执行状态 C.阻塞状态 D.撤消状态3.P、V操作是。
A.两条低级进程通信原语B.两组不同的机器指令C.两条系统调用命令D.两条高级进程通信原语4.设系统中有n(n>2)个进程,且当前不在执行进程调度程序,试考虑下述4种情况,不可能发生的情况是。
A.没有运行进程,有2个就绪进程,n个进程处于等待状态。
B.有1个运行进程,没有就绪进程,n-1个进程处于等待状态。
C.有1个运行进程,有1个就绪进程,n-2个进程处理等待状态。
D.有1个运行进程,n-1个就绪进程,没有进程处于等待状态。
5.若P、V操作的信号量S初值为2,当前值为-1,则表示有等待进程。
A. 0个B. 1个C. 2个D. 3个6.进程的三个基本状态在一定条件下可以相互转化,进程由就绪状态变为运行状态的条件是。
A.时间片用完B.等待某事件发生C.等待的某事件已发生D.被进程调度程序选中7.进程的三个基本状态在一定条件下可以相互转化,进程由运行状态变为阻塞状态的条件是。
A.时间片用完B.等待某事件发生C.等待的某事件已发生D.被进程调度程序选中8.下列的进程状态变化中,变化是不可能发生的。
A.运行→就绪B.就绪→运行C.等待→运行D.等待→就绪9.一个运行的进程用完了分配给它的时间片后,它的状态变为。
A.就绪B.等待C.运行D.由用户自己确定10.用V操作唤醒一个等待进程时,被唤醒进程的状态变为。
A.等待B.就绪C.运行D.完成11.操作系统通过对进程进行管理。
A. JCBB. PCBC. DCTD. CHCT 12.用P、V操作可以解决互斥问题。
A. 一切B. 某些C. 正确D. 错误13.一个进程被唤醒意味着。
A. 该进程重新占有了CPUB. 它的优先权变为最大C. 其PCB移至等待队列队首D. 进程变为就绪状态14.多道程序环境下,操作系统分配资源以为基本单位。
操作系统习题集------进程管理

习题集- 2 - 进程管理1. 在优先级调度中,___________ 类进程可能被“饿死”,即长时间得不到调度。
A.短进程 B .长进程 C .低优先级进程 D .大内存进程解:C。
优先级调度算法(PRI)的基本思想是:内核为每个进程赋予一个优先级,进程按照优先级的大小顺序在就绪队列中排队,内核将CPU分配给就绪队列头部的第一个进程一一优先级最大的进程。
因此,进程的优先级越低,在就绪队列中的排队位置就越靠近队列尾,获得运行之前的等待时间就越长。
低优先级的进程必须等待所有高优先级进程运行结束后才会被调度运行。
如果不断有高优先级的进程加入就绪队列,那么低优先级进程就会一直等待下去。
这就是所谓的“饿死”现象。
2. 在下面的系统调用中,____________ 不会导致进程阻塞。
A.读/ 写文件 B .获得进程 PID C .申请内存 D .发送消息解:B 。
当正在执行的进程需要使用某种资源或等待某个事件时,如果资源已被其他进程占用或事件尚未出现,该进程不能获得所需的资源而无法继续运行,于是,进程将被阻塞。
进程在阻塞状态中等待资源被释放,或等待事件的发生。
所以,进程在执行系统调用时,如果需要使用某种资源,就可能导致进程阻塞。
“读 /写文件”需要使用设备和文件缓冲区;“申请内存”需要分配内存资源;“发送消息”需要使用消息缓冲区。
3. 下面关于临界区的叙述中,正确的是_____________A.临界区可以允许规定数目的多个进程同时执行B.临界区只包含一个程序段C.临界区是必须互斥地执行的程序段D.临界区的执行不能被中断解:C。
临界段(临界区)的概念包括两个部分:①临界资源:必须互斥访问的资源。
例如,需要独占使用的硬件资源,多个进程共享的变量、结构、队列、栈、文件等软件资源。
②临界区:访问临界资源的、必须互斥地执行的程序段。
即,当一个进程在某个临界段中执行时,其他进程不能进入相同临界资源的任何临界段。
4. 资源顺序分配法破坏了死锁发生的_____________ 必要条件。
操作系统练习题 第2章进程管理

第二章进程管理练习题(一)单项选择题1.多道程序设计系统中,让多个计算问题同时装入计算机系统的主存储器( )。
A.并发执行B.顺序执行 C.并行执行D.同时执行2. 引入多道程序设计技术后,处理器的利用率( )。
A.无改善B.极大地提高 C.降低了D.无变化,仅使程序执行方便3.计算机系统采用多道程序设计技术后,()。
A.缩短了每个程序的执行时间B.系统效率随并行工作道数成比例增长C.提高了系统效率D.使用设备时不会发生冲突4.进程是( )。
A.一个系统软件B.与程序概念等效C.存放在内存中的程序D.执行中的程序5.进程的( )和并发性是两个很重要的属性。
A.动态性B.静态性C.易用性D.顺序性6.已经获得除( )以外所有运行所需资源的进程处于就绪状态。
A.主存储器B.打印机C.C PU D.磁盘空间7.在一个单处理器系统中,处于运行态的进程( )。
A.可以有多个B.不能被打断C.只有一个D.不能请求系统调用8.对于一个单处理器系统来说,允许若干进程同时执行,轮流占用处理器.称它们为()的。
A. 顺序执行B. 同时执行C. 并行执行D. 并发执行9.操作系统根据( )控制和管理进程,它是进程存在的标志。
A.程序状态字B.进程控制块C.中断寄存器D.中断装置10.若干个等待占有CPU并运行的进程按一定次序链接起来的队列为( )。
A.运行队列B.后备队列C.等待队列D.就绪队列11.临界区是指( )。
A. 并发进程中用于实现进程互斥的程序段B.并发进程中用于实现进程同步的程序段C.并发进程中用户实现进程通信的程序段D.并发进程中与共享变量有关的程序段12.对于记录型信号量,在执行一次P操作时,信号量的值应( )。
A.不变B.加1 C.减1D.减指定数值13.在执行signal操作时,当信号量的值( )时,应释放一个等待该信号量的进程。
A.0 B.<0 C.>=0 D.<=014.wait、signal操作必须在屏蔽中断下执行,这种不可变中断的过程称为( )。
操作系统(进程管理)习题与答案1

一、单选题1、关于进程控制块的描述,如下存在问题的选项是()。
A.操作系统控制和管理并发执行进程的依据B.进程存在的惟一标志,离散存放于内存空间或对应程序的文件目录项中C.进程实体的一部分,是拥有描述进程情况及控制进程运行所需的全部信息的记录性数据结构D.使一个在多道程序环境下不能独立运行的程序,成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程正确答案:B2、进程标识符和进程控制块的分配可能发生在进程的()阶段。
A.阻塞B.挂起C.创建D.终止正确答案:C3、当一个进程被()时,可能会发生处理器的调度。
①终止;②挂起;③唤醒;④阻塞A.①②④B.①③④C.①②③④D.①④正确答案:C4、对于系统服务进程而言,如果当前没有任务,便会引发自身的()事件。
A.进程阻塞B.进程唤醒C.进程终止D.进程挂起正确答案:A5、引起进程重新调度的原因不包括()。
A.进程放弃处理器B.进程从核心态返回用户态C.进程执行系统调用和陷入内核态D.时钟中断正确答案:C6、关于进程同步机制基本准则:当无进程处于某临界资源所对应的临界区时,可允许一个请求进入(该临界资源所对应的)临界区的进程立即进入自己的临界区,这称之为()。
A.忙则等待B.有限等待C.空闲让进D.让权等待正确答案:C7、关于进程同步机制基本准则:当已有进程进入自己的对应于某临界资源的临界区时,所有企图进入该临界资源所对应临界区的进程必须等待,这称之为()。
A.循环等待B.忙则等待C.有限等待D.让权等待正确答案:B8、关于进程同步机制基本准则:对要求访问临界资源的进程,应保证该进程能在有限时间内进入自己的临界区,这称之为()。
A.忙则等待B.循环等待C.有限等待D.让权等待正确答案:C9、进程同步机制应遵循让权等待准则,故而当一个进程不能进入自己的临界区时,其应当释放()。
A.处理器B.I/O设备C.内存空间D.外存空间正确答案:A10、利用硬件指令能有效地实现进程互斥,但它却不能满足()的准则,造成了处理器时间的浪费,而且也很难将它用于解决较复杂的进程同步问题。
计算机操作系统(习题集)第二章 答案

第二章进程管理一、单项选择题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 ),根据它而感知进程的存在。
操作系统习题集之进程管理

操作系统习题集之进程和处理机管理来源:北大的MSE:有关计算机的一些辅导资料日期:2010-12-5第7章进程及处理机管理学习重点(1)操作系统“核心”功能和特点(2)程序的顺序执行与并发执行(3)进程的定义,进程的五个基本特征,进程控制块,程序与进程的对比,进程与线程(4)进程的描述;进程的基本状态及转換(就绪、执行、等待)(5)进程调度算法(先来先服务、RR轮转法、多级反馈轮转法和优先数法)(6)进程通信:同步与互斥、临界区、原语(加锁/开锁原语、信号量及P-V操作)、消息缓冲(7)什么是死锁?产生死锁的四个必要条件(互斥使用、保持和等待、非剥夺性、循环等待和处理)教学要求:(1)牢固掌握进程的概念。
(2)熟练掌握操作系统核心功能、核心形式。
(3)掌握顺序执行与并发执行的比较。
(4)熟练掌握进程的五个基本特征,掌握进程与程序的主要区别。
理解进程与线程的关系。
(5)掌握进程的基本状态:执行态、就绪态、等待态。
在什么条件下发生状态转换?(6)理解进程的一般组成,应深入理解进程控制块的作用。
每个进程有惟一的进程控制块。
(7)理解常用的进程调度算法。
(8)掌握进程同步与互斥的比较,简单理解为同步是伙伴,互斥是竞争。
(9)理解信号量概念,P、V操作执行的动作。
(10)掌握死锁的概念、死锁的必要条件、解决死锁的基本方法。
习题1、什么是进程?答:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。
它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。
(在Windows NT等采用微内核结构的现代操作系统中,进程的功能发生了变化:它只是资源分配的单位,而不再是调度运行的单位,其调度运行的基本单位是线程。
)2、进程的互斥和同步有什么异同点?答:同步与互斥特点比较见教材127页表6-4。
同步互斥进程-进程进程-资源-进程时间次序上受到某种限制竞争到某一物理资源时不允许其他进程工作相互清楚对方的存在及其作用,交换信息不一定清楚其他进程情况往往指有几个进程共同完成一个任务往往指多个任务多个进程间通讯制约,故更广泛举例:生产与消费之间,发送与接收之间,作者与读者之间,供者与用者之间。
操作系统习题第二章习题(进程管理)

一、单项选择题1.在进程管理中,当C 时,进程从阻塞状态变为就绪状态。
A. 进程被进程调度程序选中 B.等待某一事件C. 等待的事件发生 D.时间片用完2.分配到必要的资源并获得处理机时的进程状态是B 。
A. 就绪状态 B.执行状态C.阻塞状态 C. 撤消状态3.P、V操作是 A 。
A. 两条低级进程通信原语 B.两组不同的机器指令C. 两条系统调用命令 D.两条高级进程通信原语4.对进程的管理和控制使用 B 。
A.指令 B.原语C.信号量 D.信箱通信5.进程的并发执行是指若干个进程 D 。
A. 同时执行 B.在执行的时间上是重叠的C.在执行的时间上是不可重叠的 D.共享系统资源6. 若P、V操作的信号量s初值为2,当前值为-1,则表示有 B等待进程。
A.0个 B.1个 C.2个 D.3个7. 程序的顺序执行通常在① A 的工作环境中,具有②C 特征;程序的并发执行在③ B 的工作环境中,具有④ D 特征。
A. 单道程序 B.多道程序C. 程序的可再现性 D.资源共享8.进程的三个基本状态在一定条件下可以相互转化,进程由就绪状态变为运行状态的条件是① D ;由运行状态变为阻塞状态的条件是② C 。
A. 时间片用完 B.等待某事件发生C. 等待的某事件己发生 D.被进程调度程序选中9.下列的进程状态变化中, B 变化是不可能发生的。
A. 运行一就绪 B.运行一等待C,等待一运行 D,等待一就绪10.一个运行的进程用完了分配给它的时间片后,它的状态变为 A。
A. 就绪 B.等待C. 运行 D.由用户自己确定11.用P、V操作管理临界区时,信号量的初值应定义为 C 。
A.-1 B.0 C.1 D.任意值12.用V操作唤醒一个等待进程时,被唤醒进程的状态变为 B 。
A. 等待 B,就绪 C运行 D.完成13.进程间的同步是指进程间在逻辑上的相互 B 关系。
A. 联接 B.制约 C. 继续 D.调用14. D 是一种只能进行P操作和V操作的特殊变量。
操作系统 练习题 进程管理

第二章进程管理●程序顺序执行与并发执行比较●多道程序设计概念及其优点1.多道程序设计:是在一台计算机上同时运行两个或更多个程序。
2.多道程序设计的特点:多个程序共享系统资源、多个程序并发执行3.多道程序设计的优点:提高资源利用率、增加系统吞吐量●什么是进程,进程与程序的区别和关系1.进程的引入:由于多道程序的特点,程序具有了并行、制约和动态的特征,就使得原来程序的概念已难以刻划和反映系统中的情况了。
2.进程:程序在并发环境下的执行过程。
3.进程与程序的主要区别:1)程序是永存的,进程是暂时的2)程序是静态的观念,进程是动态的观念3)进程由三部分组成程序数据进程控制块(描述进程活动情况的数据结构)4)进程和程序不是一一对应的一个程序可对应多个进程即多个进程可执行同一程序一个进程可以执行一个或几个程序4.程序与进程的类比5.进程特征:动态性、并发性、调度性、异步性、结构性●进程的基本状态及其转换1.进程基本状态:1)运行态(Running):进程正在占用CPU;2)就绪态(Ready):进程具备运行条件,但尚未占用CPU;3)阻塞态(Blocked):进程由于等待某一事件不能享用CPU。
2.进程状态转换:●进程是由哪些部分组成, 进程控制块的作用1.进程的组成:由程序、数据集合和PCB三部分组成。
2.进程控制块的作用:进程控制块是进程组成中最关键的部分。
1)每个进程有唯一的PCB。
2)操作系统根据PCB对进程实施控制和管理。
3)进程的动态、并发等特征是利用PCB表现出来的。
4)PCB是进程存在的唯一标志。
●PCB组织方式线性队列、链接表、索引表●UNIX进程管理命令:●UNIX进程管理命令:1.ps--显示进程状态功能:检查系统中当前存在的进程状态。
例如$ ps 显示与控制中断相关进程的基本信息2.sleep--使进程睡眠功能:使进程暂停执行一段时间,其参数单位是秒。
例如$ sleep 60 将等待60秒后,才重新回到$提示符3.&--后台命令符功能:命令行末尾加上&字符,此命令进程将在后台执行。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
习题集 - 2 - 进程管理1. 在优先级调度中,__________类进程可能被“饿死”,即长时间得不到调度。
A.短进程 B.长进程 C.低优先级进程 D.大内存进程解: C。
优先级调度算法(PRI)的基本思想是:内核为每个进程赋予一个优先级,进程按照优先级的大小顺序在就绪队列中排队,内核将CPU分配给就绪队列头部的第一个进程——优先级最大的进程。
因此,进程的优先级越低,在就绪队列中的排队位置就越靠近队列尾,获得运行之前的等待时间就越长。
低优先级的进程必须等待所有高优先级进程运行结束后才会被调度运行。
如果不断有高优先级的进程加入就绪队列,那么低优先级进程就会一直等待下去。
这就是所谓的“饿死”现象。
2. 在下面的系统调用中,__________不会导致进程阻塞。
A.读/写文件 B.获得进程PID C.申请内存 D.发送消息解: B。
当正在执行的进程需要使用某种资源或等待某个事件时,如果资源已被其他进程占用或事件尚未出现,该进程不能获得所需的资源而无法继续运行,于是,进程将被阻塞。
进程在阻塞状态中等待资源被释放,或等待事件的发生。
所以,进程在执行系统调用时,如果需要使用某种资源,就可能导致进程阻塞。
“读/写文件”需要使用设备和文件缓冲区;“申请内存”需要分配内存资源;“发送消息”需要使用消息缓冲区。
3. 下面关于临界区的叙述中,正确的是__________A.临界区可以允许规定数目的多个进程同时执行B.临界区只包含一个程序段C.临界区是必须互斥地执行的程序段D.临界区的执行不能被中断解: C。
临界段(临界区)的概念包括两个部分:①临界资源:必须互斥访问的资源。
例如,需要独占使用的硬件资源,多个进程共享的变量、结构、队列、栈、文件等软件资源。
②临界区:访问临界资源的、必须互斥地执行的程序段。
即,当一个进程在某个临界段中执行时,其他进程不能进入相同临界资源的任何临界段。
4. 资源顺序分配法破坏了死锁发生的__________必要条件。
A.互斥占用 B.占有等待 C.非剥夺 D.循环等待解: D。
资源顺序分配方法是:给系统中的每类资源赋予一个自然数的序号,限制进程只能严格按照资源序号由小到大的顺序申请资源。
该方法可以避免“循环等待”的情况发生。
因为,若出现循环等待,则必会有进程在获得大序号资源后申请小序号资源。
5. 假设某操作系统采用RR调度策略,分配给A类进程的时间片为100 ms,分配给B类进程的时间片为400 ms,就绪进程队列的平均长度为5(包括正在运行的进程),其中A类进程有4个,B类进程有1个,所有进程的平均服务时间为2 s,问A类进程和B类进程的平均周转时间各为多少?(不考虑IO情况)解析:时间片轮转调度(RR)是轮流地调度就绪队列中的每个进程,进程每次占用CPU的时间长度限制为时间片的大小。
当采用固定的时间片大小时,每个进程按照固定周期被循环地执行。
所以,进程的执行速度是由该进程的时间片大小在一个循环周期中所占的比例决定的,比例越高,进程的相对执行速度就越快。
解:因为就绪进程队列的平均长度为5,单个RR调度循环周期的时间为4×100+1×400=800(ms)A类进程需要20个时间片的执行时间,B类进程需要5个时间片的执行时间(1 s=1 000 ms)。
A类进程的平均周转时间为20×0.8=16(s)B类进程的平均周转时间为5×0.8=4(s)6. 某多道程序设计系统中配有一台处理器CPU和两台输入/输出设备IO1、IO2,现有优先级由高到低的3个进程P1、P2、P3同时存在,它们使用资源的先后顺序和占用时间分别是:进程P1:IO2(30 ms),CPU(10 ms),IO1(30 ms),CPU(10 ms),IO2(10 ms)。
进程P2:IO1(20 ms),CPU(20 ms),IO1(40 ms)。
进程P3:CPU(30 ms),IO2(20 ms)。
若进程调度采用“可抢占的最高优先级”调度算法,且忽略调度等所需的时间,请回答下列问题:(1) 进程P1、P2、P3从开始到完成所用的时间分别是多少?(要求用坐标画出进程P1、P2、P3的工作过程,其中横坐标表示时间,纵坐标表示CPU和IO设备。
)(2) 这3个进程从开始到全部完成时CPU的利用率为多少?IO1、IO2的利用率为多少?解析:在“可抢占的最高优先级”调度中,任何时刻内核都将处理机分配给当前最高优先级的就绪进程。
也就是说,只有当高优先级进程主动放弃CPU时,低优先级进程才有机会运行,并且,一旦高优先级进程需要使用CPU时,内核就会剥夺低优先级进程的CPU,分配给它使用。
在本题中,由于进程P1和P2在开始执行时先需要进行IO,所以最低优先级的进程P3获得了CPU。
但是,P3运行了20 ms后就被P2抢占了CPU,因为P2刚好完成了IO,并且P2的优先级大于P3。
同样的原因,P2运行了10 ms后,就被P1抢占了CPU。
P1在CPU上运行10 ms之后再次需要进行IO 而放弃CPU,于是,P2、P1获得继续运行的机会。
以此方式,P1、P2和P3相继完成自己的运行过程。
解:根据“可抢占的最高优先级”调度算法,画出进程P1、P2、P3的工作过程(见图29)。
图2.9进程P1、P2、P3进程P1、P2、P3从开始到完成所用的时间分别是90 ms、110 ms、80 ms。
这3个进程从开始到全部完成时的时间为110(ms),在此期间内:CPU的利用率=(30+20+10+10)/110=63.6%IO1的利用率=(20+30+40)/110=81.8%IO2的利用率=(30+20+10)/110=54.5%7. 论述以下解决双进程临界区问题的软件算法是错误的。
ProcessP0:do {flag[0]=true;①while(flag[1]);③临界区flag[0]=false;}while(1);ProcessP1:do {flag[1]=true;②while(flag[0]);④临界区flag[1]=false;}while(1);解析: 在算法中,两个进程P1和P2各自拥有自己的标志牌flag[0]和flag[1]。
当进程需要进入临界区时,举起标志牌(设置值为true)。
然后观察对方是否举起标志牌,是则等待并继续观察(while语句),直到对方放下标志牌(设置值为false)。
这时,进程才进入临界区。
进程退出临界区时,放下标志牌(设置值为false)。
解:通过使用标志牌flag[0]和flag[1],能够保证满足“互斥”条件。
但是,当两个进程按照①②③④的顺序执行程序时,它们各自举起了标志牌,同时都因为观察到对方也举起了标志牌而等待在while语句中。
由于两个进程都不会放下自己的标志牌,因此都无法进入临界区,不能满足“有限等待”的条件。
所以,上述解决双进程临界区问题的算法是错误的。
8. 以下解决双进程访问共享变量count的程序是否存在错误?试用信号量实现。
Share:count=0;Int: flag[2];cobeginProcess P0:do {flag[0]=true;①while(flag[1]);③count=count+1;flag[0]=false;}while(1);Process P1:do {flag[1]=true;②while(flag[0]);④count=count+1;flag[1]=false;}while(1);coend解:在上述程序中,访问共享变量的语句count=count+1构成临界区。
两个进程P0和P1各自拥有自己的标志牌flag[0]和flag[1]。
当进程需要进入临界区时,举起标志牌(设置值为true)。
然后观察对方是否举起标志牌,是则等待并继续观察(while语句),直到对方放下标志牌(设置值为false)。
这时,进程才进入临界区。
进程退出临界区时,放下标志牌(设置值为false)。
通过使用标志牌flag[0]和flag[1],能够保证满足“单一进入”的条件。
但是,当两个进程按照①、②、③、④的顺序执行程序时,它们各自举起了标志牌,同时都因为观察到对方也举起了标志牌而等待在while语句中。
由于两个进程都不会放下自己的标志牌,因此都无法进入临界区,不能满足“有限等待”的条件。
所以,上述程序是错误的。
设置信号量S实现对共享变量count的互斥访问。
Share:count=0;struct semaphore S=1;cobeginProcess P0:do {P(S);count=count+1;V(S);}while(1);Process P1:do {P(S);count=count+1;V(S);}while(1);coend9. 假定一个阅览室最多可容纳100人,读者进入和离开阅览室时都必须在阅览室门口的一个登记表上进行登记,而且每次只允许一人进行登记操作。
用信号量实现该过程。
解:设置信号量S:控制进入阅览室的人数。
初值=100。
设置信号量mutex:控制登记表的互斥使用。
初值=1。
struct semaphore s=100,mutex=1;。