OS习题和答案汇总-给学生
1-3章习题(附答案)

OS 1-3章习题3.操作系统是一种(A),它负责为用户和用户程序完成所有(B)的工作,(C)不是操作系统关心的主要问题。
A:(1)应用软件;(2)系统软件;(3)通用软件;(4)软件包。
B:(1)与硬件无关并与应用无关;(2)与硬件相关而与应用无关;(3)与硬件无关而与应用相关;(4)与硬件相关并与应用相关。
C:(1)管理计算机裸机;(2)设计、提供用户程序与计算机硬件系统的接口;(3)管理计算机中的信息资源;(4)高级程序设计语言的编译。
4.在OS总采用多道程序设计技术,能有效地提高CPU、内存和I/O设备的(A)。
为实现多道程序设计需要有(B)。
A:(1)灵活性;(2)可靠性;(3)兼容性;(4)利用率。
B:(1)更大的内存;(2)更快的CPU;(3)更快的外部设备;(4)更先进的终端。
5.推动批处理系统形成和发展的主要动力是(A),推动分时系统形成和发展的主要动力是(B),推动微机OS发展的主要动力是(C)。
A,B:(1)提高计算机系统的功能;(2)提高系统资源利用率-A;(3)方便用户-B;(4)提高系统的运行速度。
C:(1)方便用户;(2)计算机硬件的不断更新换代;(3)便于微机联网;(4)提高资源的利用率。
6.在设计分时操作系统时,首先要考虑的是(A);在设计批处理操作系统时,首先要考虑的是(B);在设计实时操作系统时,首先要考虑的是(C)。
A,B,C:(1)灵活性和可适应性;(2)交互性和响应时间-A;(3)周转时间和系统吞吐量-B;(4)实时性和可靠性-C。
7.在多道批处理系统中,为了充分利用各种资源,系统总是优先选择(A)多个作业投入运行;为了提高吞吐量,系统总是想方设法缩短用户作业的(B)。
A:(1)适应于内存容量的;(2)计算量大的;(3)I/O量大的;(4)计算型和I/O型均衡的。
B:(1)周转时间;(2)运行时间;(3)提交时间;(4)阻塞时间。
8.从下面关于操作系统的论述中,选出一条正确的论述。
OS操作系统参考答案

学生: 789 得分: 0单项选择题1. 操作系统是一种()[2分][A] 通用软件[B] 系统软件[C] 应用软件[D] 软件包正确答案 B学生答案2. 操作系统负责管理计算机系统的(),其中包括处理机、存储器、设备和文件。
[2分][A] 程序[B] 文件[C] 资源[D] 进程正确答案 C学生答案3. 没有下列()设备计算机无法工作。
[2分][A] 硬盘[B] 软盘[C] 内存[D] 打印机正确答案 C学生答案4. 为了执行更多的程序,计算机需要有()。
[2分][A] 更大的内存[B] 更快的外设[C] 更强的稳定性[D] 更先进的终端正确答案 A学生答案5. UNIX操作系统的主要工作语言是()。
[2分][A] B语言[B] COBOL语言[C] PACAL语言[D] C语言正确答案 D学生答案6. 系统调用的目的是()。
[2分][A] 请求系统服务[B] 终止系统服务[C] 申请系统资源[D] 释放系统资源正确答案 A学生答案7. 进程和程序的本质区别是()。
[2分][A] 存储在内存和外存[B] 顺序和非顺序执行机器指令[C] 分时使用和独占使用计算机资源[D] 动态和静态特征正确答案 D学生答案8. 在操作系统中,JCB是指()。
[2分][A] 作业控制块[B] 进程控制块[C] 文件控制块[D] 程序控制块正确答案 A学生答案9. 为了描述进程的动态变化过程,采用了一个与进程相联系的()系统,根据它而感知进程的存在。
[2分][A] 进程状态字[B] 进程优先数[C] 进程控制块[D] 进程起始地址正确答案 C学生答案10. 下列进程状态的转换中,哪一个是不正确的()。
[2分][A] 就绪→运行[B] 运行→就绪[C] 就绪→阻塞[D] 阻塞→就绪正确答案 C学生答案11. 下列各项步骤中,哪一个不是创建进程所必须的步骤()。
[2分][A] 建立一个进程控制块PCB[B] 由CPU调度程序为进程调度CPU[C] 为进程分配内存等必要的资源[D] 将PCB链入进程就绪队列正确答案 B学生答案12. 如果某一进程在运行时,因某种原因暂停,此时将脱离运行状态,而进入()[2分][A] 自由状态[B] 停止状态[C] 阻塞状态[D] 暂停状态正确答案 C学生答案13. 已经获得除()以外的所有运行所需资源的进程处于就绪状态[2分][A] 存储器[B] 打印机[C] CPU[D] 磁盘空间正确答案 C学生答案14. 操作系统中,()负责对进程进行调度[2分][A] 处理机管理[B] 作业管理[C] 高级调度管理[D] 存储和设备管理正确答案 A学生答案15. 按照作业到达的先后次序调度作业,排队等待时间最长的作业被优先调度,这是指()调度算法。
OS经典习题值得收藏

1、利用记录型信号量写出一个不会出现死锁的哲学家进餐问题的算法。
(上课讲过)2、桌上有1空盘,允许存放1个水果。
爸爸向盘中放苹果,也可以向盘中放桔子。
儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。
规定当盘空时一次只能放1个水果供吃者取用。
请用Wait()、Signal()原语实现爸爸、儿子、女儿三个并发进程的同步。
答:设置三个信号量S,So,Sa ,初值分别为1,0,0。
分别表示可否向盘中放水果,可否取桔子,可否取苹果。
3、桌上有一只盘子,每次只能放入一个水果。
爸爸专向盘中放苹果,妈妈专向盘中放桔子,一个女儿专等吃盘中的苹果,一个儿子专等吃盘中的桔子。
试用P ,V 操作写出他们能同步的程序。
(与2题类似,略)4、题目不完整。
5、在一单道批处理系统中,一组作业的提交时间和运行时间如表所示。
试计算以下3种作业调度算法的平均周转时间T 和平均带权周转时间W 。
(西北大学 1998 ) (1)先来先服务; (2)短作业优先; (3)响应比高者优先。
表3-4 作业提交时间和运行时间表也就是说,某个作业到达时,如果后备队列是空,则立即得到调度。
答:(1)先来先服务平均带权周转时间=(1+2+3.5+7)/4=3.375(2)短作业优先作业执行顺序为1-3-4-2平均周转时间=(1+1.3+0.2+0.2)/4=0.675平均带权周转时间=(1+2.6+1+2)/4=1.65(3)响应比高者优先作业1执行完,作业2和3等待,此时r2=1+(9-8.5)/0.5=2,r3=1+0/0.2=1,r2>r3因此选择作业2运行。
作业2执行完,作业3和4等待,此时r3=1+(9.5-9)/0.2=3.5,r4=1+(9.5-9.1)/0.1=5,r4>r3因此选择作业4运行。
作业的执行顺序为:1-2-4-3平均周转时间=(1+1+0.8+0.5)/4=0.825平均带权周转时间=(1+2+4+5)/4=36、某操作系统采用可变分区分配存储管理方法,用户区为512K,始址为0,用空闲分区表管理空闲分区。
课后习题参考答案-OS

课后习题参考答案-OS第三章操作系统结构3.1 操作系统关于进程管理的五个主要活动是什么?答:(1)创建和删除用户进程和系统进程;(2)暂停和重启进程;(3)提供进程同步机制;(4)提供进程通信机制;(5)提供死锁处理机制。
3.2 操作系统关于内存管理的三个主要活动是什么?答:(1)记录内存的哪部分正在被使用及被谁使用;(2)当内存空间可用时,决定哪些进程可以装入内存;(3)根据需要分配和释放内存空间。
3.3 操作系统关于二级存储管理的三个主要活动是什么?答:(1)空闲空间管理;(2)存储空间分配;(3)硬盘调度。
3.4 操作系统关于文件管理的五个主要活动是什么?答:(1)创建和删除文件;(2)创建和删除目录;(3)提供操作文件和目录的原语;(4)将文件映射到二级存储器(辅存)上;(5)在稳定(非易失的)存储媒介上备份文件。
3.5 命令解释器的用途是什么?为什么它经常与内核是分开的?答:(1)命令解释器的用途:从用户或命令文件读入命令并执行它,通常将其变成一个或多个系统调用它们。
(2)它通常不是内核的一部分,因为命令解释是会改变的,不是固定的。
3.7 系统调用的用途是什么?答:(1)系统调用提供了进程与操作系统之间的接口,即允许用户级进程要求操作系统的服务。
3.10 系统程序的用途是什么?答:(1)系统程序可以被认为是有用的系统调用的捆绑。
它们给用户提供了基本功能以使用户不需要写自己的程序来解决共同的问题。
4.2 论述短期、中期和长期调度之间的区别。
答:(1)短期调度:从就绪可执行的进程中选择进程,并为其中之一分配CPU。
(2)中期调度:特别用于分时系统中作为中等程度调度程序。
能将进程移出内存(并移出对CPU的激烈竞争),因此降低多道程序设计的程度。
之后进程能被重新调入内存,并从中断处继续执行。
(3)长期调度:从缓冲池中选择进程,并将它们装入内存以执行。
它们的主要区别是执行的频率。
短期调度程序必须频繁地为CPU 选择新进程执行;长期调度程序执行并不频繁,用于控制多道程序设计的程度,即内存中的进程数量;中期调度程序介于两者之间。
操作系统(OS)课后习题答案

1. 存储程序式计算机的主要特点是什么?
答:主要特点是以顺序计算为基础,根据程序规定的顺序依次执行每一个操作,控制部件根据程序对整个计算机的活动实行集中过程控制,即为集中顺序过程控制。这类计算是过程性的,实际上这种计算机是模拟人们的手工计算的产物。即首先取原始数据,执行一个操作,将中间结果保存起来;再取一个数,和中间结果一起又执行一个操作,如此计算下去。在遇到多个可能同时执行的分支时,也是先执行完一个分支,然后再执行第二个分支,直到计算完毕。
2. 批处理系统和分时系统各具有什么特点?
答:批处理系统是在解决人—机矛盾以及高速度的中央处理机和低速度的I/O设备这两对矛盾的过程中发展起来的。它的出现改善了CPU和外设的使用情况,其特点是实现了作业的自动定序、自动过渡,从而使整个计算机系统的处理能力得以提高。
在多道系统中,若采用了分时技术,就是分时操作系统,它是操作系统的另一种类型。它一般采用时间片轮转的办法,使一台计算机同时为多个任务服务。对用户都能保证足够快的响应时间,并提供交互会话功能。它与批处理系统之间的主要差别在于,分时系统是人机交互式系统,响应时间快;而批处理系统是作业自动定序和过渡,无人机交互,周转时间长。
os习题1题目答案(1)

分时系统不需要多道程序技术的支持。 错误:分时系统本身就是多道程序系统。 分时系统的用户具有独占性,因此一个用户可以独占计 算机系统的资源。 错误: 系统的资源的利用率越高用户越满意。 错误:系统的资源利用率高可能使用户等待更长的时间 ,方便性、交互性也可能受到影响。 设计实时操作系统时,首先应考虑系统资源的利用率。 错误:设计实时操作系统时,首先要考虑系统的实时性 和可靠性。
四道运行情况
程序A 程序B
I/O请求 I/O完成 I/O请求 C再运行
I/O请求
I/O请求
I/O完成ຫໍສະໝຸດ A完成 I/O完成程序C 程序D 调度程序
表示获得CPU
(b)四道程序运行情况
例题:
若程序PA和PB单独执行时分别用TA和TB 表示,TA=1小时,TB=1.5小时,其中处 理器工作时间分别为TA_c=18分钟,TB_ c=27分钟。 如果采用多道程序设计方法,让PA、PB 并行工作,假定处理器利用率达到50%, 另加15分钟系统开销,请问多道和单道 执行时花费时间的比例是多少?
(续)
多用户分时系统是多道程序系统,具有交互性, 但是程序的分时运行需CPU不断地在多个程序之 间进行切换,这种切换需要占用的CPU的时间。 多道批处理系统是多道程序系统,没有交互性。C PU在执行一道程序时一般不转换到其它道程序, 只有在需要等待某种事件发生时,才切换到另一 道程序执行。因此,它的CPU切换的次数远远低 于分时系统,而CPU的有效利用率高于批处理系 统。
习题:
内存中有三道程序A,B,C,优先级A>B>C
A(计算30ms,输入40ms,计算10ms) B(计算60ms,输入30ms,计算10ms) C(计算20ms,输入40ms,计算20ms)
OS习题和答案汇总-给学生

第一章课后习题:1.设计现代OS的主要目标是什么?答:方便性,有效性,可扩充性和开放性.2. OS的作用可表现为哪几个方面?答:a. OS作为用户与计算机硬件系统之间的接口(用户观点);b. OS作为计算机系统资源的管理者(设计者观点);c. OS作为扩充机器.(虚拟机观点)13、OS具有哪几大特征?它的最基本特征是什么?a. 并发(Concurrence)、共享(Sharing)、虚拟(Virtual)、异步性(Asynchronism)。
b. 其中最基本特征是并发和共享。
25、从资源管理的角度看,操作系统具有哪些功能?处理机管理、存储器管理、设备管理和文件管理。
补充习题:1、在计算机系统中配置操作系统的主要目的是(A),操作系统的主要功能是管理计算机系统中的(B),其中包括(C)管理和(D)管理,以及设备管理和文件管理。
这里的(C)管理主要是对进程进行管理。
A:(1)增强计算机系统的功能;(2)提高系统资源的利用率;(3)提高系统的运行速度;(4)合理地组织系统的工作流程,以提高系统吞吐量。
B:(1)程序和数据;(2)进程;(3)资源;(4)作业;(5)任务。
C、D:(1)存储器;(2)虚拟存储器;(3)运算器;(4)处理机;(5)控制器。
2、操作系统有多种类型:(1)允许多个用户以交互方式使用计算机的操作系统,称为(A);(2)允许多用户将若干个作业提交给计算机系统集中处理的操作系统称为(B);(3)在(C)的控制下,计算机系统能及时处理由过程控制反馈的数据,并做出响应。
A、B、C:(1)批处理操作系统;(2)分时操作系统;(3)实时操作系统;(4)微机操作系统;(5)多处理机操作系统。
3、从下面关于操作系统的论述中,选出一条正确的论述:( )(1)对批处理作业,必须提供相应的作业控制信息;(2)对于分时系统,不一定全部提供人机交互功能;(3)从响应角度看,分时系统与实时系统的要求相似;(4)采用分时操作系统的计算机系统中,用户可以独占计算机操作系统的文件系统;(5)从交互角度看,分时系统与实时系统相似。
操作系统 习题及答案

第5章操作系统习题P140-142一、复习题1、什么是操作系统答:操作系统(Operating System,简称OS)是管理计算机系统资源、控制程序执行,改善人机界面,提供各种服务,合理组织计算机工作流程和为用户使用计算机提供良好运行环境的一类系统软件。
(P114)2、操作系统的基本功能是什么答:操作系统是用户与计算机硬件之间的接口。
使得用户能够方便、可靠、安全、高效地操纵计算机硬件和运行自己的程序。
操作系统合理组织计算机的工作流程,协调各个部件有效工作,为用户提供一个良好的运行环境。
操作系统是计算机系统的资源管理者,负责管理包括处理器、存储器、I/O设备等硬件资源和程序和数据等软件资源,跟踪资源使用情况,监视资源的状态,满足用户对资源的需求,协调各程序对资源的使用冲突;为用户提供简单、有效使用资源统一的手段,最大限度地实现各类资源的共享,提高资源利用率。
(P115)3、操作系统的基本组成有哪些答:操作系统构成的基本单位包括内核和进程、线程。
内核对硬件处理器及有关资源进行管理,给进程的执行提供运行环境。
进程是程序动态执行的过程。
(P114-115)4、操作系统如何分类答:根据系统运行的方式分类,操作系统的基本类型有三种:批处理系统、分时系统和实时系统。
具备全部或兼有两者功能的系统称通用操作系统。
根据系统的运行环境分类的操作系统有:微机操作系统、网络操作系统、分布式操作系统和嵌入式操作系统。
(P116-117)5、什么是进程它与程序是什么关系答:进程是一个可并发执行的具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和保护的基本单位。
程序是静态的概念,它以文件形式存在于辅助存储器中,进程是动态的概念,程序执行时创建进程,一个程序多次执行创建多个进程,这多个进程可同时存在于机器的内存中。
进行执行完成后结束,进程终止,但程序本身仍然存在,并不因进程的终止而消失。
(P119-124)6、什么是死锁死锁产生的原因是什么答:在系统运行过程中,多个进程间相互永久等待对方占用的资源而导致各进程都无法继续运行的现象称为“死锁”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章课后习题:1.设计现代OS的主要目标是什么?答:方便性,有效性,可扩充性和开放性.2. OS的作用可表现为哪几个方面?答:a. OS作为用户与计算机硬件系统之间的接口(用户观点);b. OS作为计算机系统资源的管理者(设计者观点);c. OS作为扩充机器.(虚拟机观点)13、OS具有哪几大特征?它的最基本特征是什么?a. 并发(Concurrence)、共享(Sharing)、虚拟(Virtual)、异步性(Asynchronism)。
b. 其中最基本特征是并发和共享。
25、从资源管理的角度看,操作系统具有哪些功能?处理机管理、存储器管理、设备管理和文件管理。
补充习题:1、在计算机系统中配置操作系统的主要目的是(A),操作系统的主要功能是管理计算机系统中的(B),其中包括(C)管理和(D)管理,以及设备管理和文件管理。
这里的(C)管理主要是对进程进行管理。
A:(1)增强计算机系统的功能;(2)提高系统资源的利用率;(3)提高系统的运行速度;(4)合理地组织系统的工作流程,以提高系统吞吐量。
B:(1)程序和数据;(2)进程;(3)资源;(4)作业;(5)任务。
C、D:(1)存储器;(2)虚拟存储器;(3)运算器;(4)处理机;(5)控制器。
2、操作系统有多种类型:(1)允许多个用户以交互方式使用计算机的操作系统,称为(A);(2)允许多用户将若干个作业提交给计算机系统集中处理的操作系统称为(B);(3)在(C)的控制下,计算机系统能及时处理由过程控制反馈的数据,并做出响应。
A、B、C:(1)批处理操作系统;(2)分时操作系统;(3)实时操作系统;(4)微机操作系统;(5)多处理机操作系统。
3、从下面关于操作系统的论述中,选出一条正确的论述:( )(1)对批处理作业,必须提供相应的作业控制信息;(2)对于分时系统,不一定全部提供人机交互功能;(3)从响应角度看,分时系统与实时系统的要求相似;(4)采用分时操作系统的计算机系统中,用户可以独占计算机操作系统的文件系统;(5)从交互角度看,分时系统与实时系统相似。
4、操作系统是一种(A),在OS中采用多道程序设计技术,能有效地提高CPU、内存和I/O设备的(B),为实现多道程序设计需要有(C)。
A:(1)应用软件;(2)系统软件;(3)通用软件;(4)软件包。
B:(1)灵活性;(2)可靠性;(3)兼容性;(4)利用率。
C:(1)更大的内存(2)更快的CPU;(3)更快的外部设备;(4)更先进的终端。
5、操作系统是一种应用软件。
()6、分时系统中,时间片越小越好。
()7、多道程序设计是指在一台处理机上同一时刻运行多个程序。
()8、在实时要求严格的实时系统中进程调度采用非抢占方式。
()9、操作系统的基本职能是()。
(1)控制和管理系统内各种资源,有效地组织多道程序的运行(2)提供用户界面,方便用户使用(3)提供方便的可视化编辑程序(4)提供功能强大的网络管理工具10、为了使系统中所有的用户都能得到及时的响应,该操作系统应该是()。
(1)多道批处理系统;(2)分时系统;(3)实时系统;(4)网络系统。
第二章7、试说明PCB的作用?为什么说PCB是进程存在的唯一标志?(1)PCB是进程实体的一部分(进程实体包括PCB、程序代码、数据),是操作系统中最重要的记录型数据结构,PCB中记录了操作系统所需的用于描述进程情况及控制进程运行所需的全部信息。
(2)在进程的整个生命周期中,系统总是通过其PCB对进程进行控制,系统是根据进程的PCB而感知到该进程的存在的,所以说,PCB是进程存在的唯一标志。
8、试说明进程在三个状态之间转换的典型原因答:主要原因是I/O请求和I/O完成、(CPU)进程调度、时间片完。
19、试从物理概念上说明记录型信号量及其操作wait和signal。
答:Wait操作又叫P操作,signal操作又叫V操作。
(1)信号量的初值表示系统中某类资源的数目。
(2)对信号量的每次wait操作,表示请求一个单位的该类资源,使系统中可供分配的该类资源数减少一个。
(3)对信号量的每次signal操作,表示执行进程释放一个单位资源,使系统中可供分配的该类资源数增加一个。
20、你认为整型信号量机制和记录型信号量机制,是否完全遵循了同步机构的四条准则? 答:a. 在整型信号量机制中,未遵循"让权等待"的准则,存在“忙等”现象。
b. 记录型信号量机制完全遵循了同步机构的四条准则。
22、试写出相应的程序来描述图22-1、22-2所示的前驱图。
答:参考P54-55“2利用信号量实现前驱关系”(考研的同学应把这部分内容看一下)。
这也是信号量对进程同步的一种用法,信号量初值为0。
图22-1的程序描述如下:Var a,b,c,d,e,f,g,h: semaphore:=0,0,0,0,0,0,0,0; beginparbeginbegin S1; V(a); V(b); end;begin P(a); S2; V(c); V(d); end; begin P(b); S3; V(e); end; begin P(c); S4; V(f); end; begin P(d); S5; V(g); end; begin P(e); S6; V(h);end;begin P(f); P(g); P(h); S7; end; parend end图22-2的程序描述如下:Var a,b,c,d,e,f,g,h,i,j: semaphore:=0,0,0,0,0,0,0,0,0,0; beginparbeginbegin S1; V(a); V(b); end;begin P(a); S2; V(c); V(d); end; begin P(b); S3; V(e); V(f);end; begin P(c); S4; V(g); end; begin P(d); S5; V(h); end; begin P(e); S6; V(i);end; begin P(f); S7; V(j);end;begin P(g); P(h); P(i); P(j);S7; end;图22-1 前趋图图22-2 前趋图parendend23、在生产者-消费者问题中,如果缺少了signal(full)或signal(empty),对执行结果会有何影响?答:(1)缓冲区满后(empty=0),生产者进程被阻塞(进入关于信号量empty的等待队列),由于消费者取走产品后不执行signal(empty), 被阻塞的生产者进程继续被阻塞,即便缓冲区有空位也不能生产。
(2)缓冲区空后(full=0),消费者进程被阻塞(进入关于信号量full的等待队列),由于生产者生产后不执行signal(full), 被阻塞的消费者进程继续被阻塞,即便缓冲区有产品也不能消费。
24、在生产者-消费者问题中,如果将两个wait操作即wait(full)和wait(mutex)互换位置;或者是将signal(mutex)与signal(full)互换位置结果会如何?答:(1)如果将(消费者的)两个wait操作即wait(full)和wait(mutex)互换位置,后果是:a.影响了多个消费者的并发性,当一个消费者进行了wait(mutex),其它消费者因得不到mutex 被阻塞,即便缓冲区有多个产品也不允许取。
(形象的说,教材的解法允许多个消费者同时逛商店,但拿产品时一个一个消费者拿;而颠倒wait(full)和wait(mutex)顺序后,商店一次只能允许一个顾客进入,等顾客拿完产品出门后,另一位顾客才能进去。
)b. 可能造成死锁。
假如某消费者执行wait(mutex)后没被阻塞,但接着执行wait(full)后被阻塞了, 要等待生产者的signal (full)才能解除阻塞,而生产者可能因消费者提前使mutex=0而被阻塞,无法执行signal (full),这样就造成死锁。
(2)将(生产者的)signal(mutex)与signal(full)互换位置,似乎不会影响并发性,也不会造死锁,这也是一种正确的写法。
25. 我们为某临界区设置一把锁W,当W=1时,表示关锁;W=0时,表示锁已打开.试写出开锁原语和关锁原语,并利用它们去实现互斥.答:锁可以看作是共享变量W,对W有两个操作:unlock(W),lock(W),这两个操作必须是原子操作,其理由与信号量必须是原子操作一样。
锁比信号量简单,但只能用于进程互斥,不能用于同步。
(1)开锁原语:unlock(W){W=0;}(2)关锁原语:lock(W) { if(W==1) do no_op; W=1;}(3)利用开关锁原语实现互斥,用lock(W);替代Entry section,unlock(W)替代Exit section 即可。
var W:=0;process :repeatlock(W);critical sectionunlock(W);remainder sectionuntil false;26、试修改下面生产者—消费者问题解法中的错误答:按P58的正确解法修改即可。
27、试利用记录型信号量写出一个不会出现死锁的哲学家进餐问题的算法.答:根据死锁的四个必要条件,只要破除其中一个必要条件即可。
第i个哲学家的活动描述为:Var chopsticks:array[0,…,4] of semaphore:=(1,1,1,1,1);(chopsticks(i)=1,i=0, (4)Sm:semaphore:=4;RepeatWait(Sm);Wait(chopsticks[i]);Wait(chopsticks[(i+1)mod 5]);Eat();Signal(chopsticks[i]);Signal(chopsticks[(i+1)mod 5]);Signal(Sm);Think();Until false;补充题:1、在生产者-消费者问题中,应设置互斥信号量mutex、资源信号量full和empty。
它们的初值应分别是(A)、(B)、(C)。
A、B、C:(1)0 (2)1 (3)-1 (4)-n (5)+n2、试选择(A)~(D),以便能正确地描述图1所示的前趋关系。
Var a,b,c: semaphore:=0,0,0;beginparbeginbegin S1; (A); end;begin:S2; (B); end;begin:wait(a); wait(b); S3; (C); end;begin:(D);S4; end;parendend图1 前趋图A、B、C、D:(1)signal(a);(2)signal(b);(3)wait(c);(4)signal(c)。