【考研类试卷】计算机专业基础综合历年真题试卷汇编5及答案解析.doc

上传人:brainfellow396 文档编号:1389555 上传时间:2019-12-03 格式:DOC 页数:11 大小:91.50KB
下载 相关 举报
【考研类试卷】计算机专业基础综合历年真题试卷汇编5及答案解析.doc_第1页
第1页 / 共11页
【考研类试卷】计算机专业基础综合历年真题试卷汇编5及答案解析.doc_第2页
第2页 / 共11页
【考研类试卷】计算机专业基础综合历年真题试卷汇编5及答案解析.doc_第3页
第3页 / 共11页
【考研类试卷】计算机专业基础综合历年真题试卷汇编5及答案解析.doc_第4页
第4页 / 共11页
【考研类试卷】计算机专业基础综合历年真题试卷汇编5及答案解析.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、计算机专业基础综合历年真题试卷汇编 5及答案解析(总分:58.00,做题时间:90 分钟)一、单项选择题(总题数:21,分数:42.00)1.单项选择题 1-40小题。下列每题给出的四个选项中,只有一个选项是最符合题目要求的。(分数:2.00)_2.设与某资源关联的信号量初值为 3,当前值为 1。若 M表示该资源的可用个数,N 表示等待该资源的进程数,则 M、N 分别是_。(分数:2.00)A.0、1B.1、0C.1、2D.2、03.某系统有 n台互斥使用的同类设备,三个并发进程分别需要 3、4、5 台设备,可确保系统不发生死锁的设备数 n最小为_。(分数:2.00)A.9B.10C.11D.

2、124.下列关于管道(Pipe)通信的叙述中,正确的是_。(分数:2.00)A.一个管道可实现双向数据传输B.管道的容量仅受磁盘容量大小限制C.进程对管道进行读操作和写操作都可能被阻塞D.一个管道只能有一个读进程或一个写进程对其操作5.某计算机系统中有 8台打印机,由 K个进程竞争使用,每个进程最多需要 3台打印机。该系统可能会发生死锁的 K的最小值是_。(分数:2.00)A.2B.3C.4D.56.下列关于银行家算法的叙述中,正确的是_。(分数:2.00)A.银行家算法可以预防死锁B.当系统处于安全状态时,系统中一定无死锁进程C.当系统处于不安全状态时,系统中一定会出现死锁进程D.银行家算法

3、破坏了死锁必要条件中的“请求和保持”条件7.某时刻进程的资源使用情况如下表所示。 (分数:2.00)A.P1,P2,P3,P4B.P1,P3,P2,P4C.P1,P4,P3,P2D.不存在的8.假设 5个进程 P0、P1、P2、P3、P4 共享三类资源 R1、R2、R3,这些资源总数分别为 18、6、22。T0 时刻的资源分配情况如下表所示,此时存在的一个安全序列是_。 (分数:2.00)A.P0,P2,P4,P1,P3B.P1,P0,P3,P4,P2C.P2,P1,P0,P3,P4D.P3,P4,P2,P1,P09.若系统 S1采用死锁避免方法,S2 采用死锁检测方法。下列叙述中,正确的是_

4、。S1 会限制用户申请资源的顺序,而 S2不会S1 需要进程运行所需资源总量信息,而 S2不需要S1 不会给可能导致死锁的进程分配资源,而 S2会(分数:2.00)A.仅、B.仅、C.仅、D.、10.在虚拟内存管理中,地址变换机构将逻辑地址变换为物理地址,形成该逻辑地址的阶段是_。(分数:2.00)A.编辑B.编译C.链接D.装载11.现有一个容量为 10GB的磁盘分区,磁盘空间以簇(Cluster)为单位进行分配,簇的大小为 4KB,若采用位图法管理该分区的空闲空间,即用一位(bit)标识一个簇是否被分配,则存放该位图所需簇的个数为_。(分数:2.00)A.80B.320C.80KD.320

5、K12.分区分配内存管理方式的主要保护措施是_。(分数:2.00)A.界地址保护B.程序代码保护C.数据保护D.栈保护13.某基于动态分区存储管理的计算机,其主存容量为 55MB(初始为空闲),采用最佳适配(BestFit)算法,分配和释放的顺序为:分配 15MB,分配 30MB,释放 15MB,分配 8MB,分配 6MB,此时主存中最大空闲分区的大小是_。(分数:2.00)A.7MBB.9MBC.10MBD.15MB14.某计算机采用二级页表的分页存储管理方式,按字节编址,页大小为 2 10 B,页表项大小为 2B,逻辑地址结构为: (分数:2.00)A.64B.128C.256D.5121

6、5.一个分段存储管理系统中,地址长度为 32位,其中段号占 8位,则最大段长是_。(分数:2.00)A.2 8 BB.2 16 BC.2 24 BD.2 32 B16.下列关于虚拟存储器的叙述中,正确的是_。(分数:2.00)A.虚拟存储只能基于连续分配技术B.虚拟存储只能基于非连续分配技术C.虚拟存储容量只受外存容量的限制D.虚拟存储容量只受内存容量的限制17.在缺页处理过程中,操作系统执行的操作可能是_。修改页表磁盘 IO分配页框(分数:2.00)A.仅、B.仅C.仅D.、和18.若用户进程访问内存时产生缺页,则下列选项中,操作系统可能执行的操作是_。处理越界错置换页分配内存(分数:2.0

7、0)A.仅、B.仅、C.仅、D.、和19.下列措施中,能加快虚实地址转换的是_。增大快表(TLB)容量让页表常驻内存增大交换区(swap)(分数:2.00)A.仅B.仅C.仅、D.仅、20.在页式虚拟存储管理系统中,采用某些页面置换算法,会出现 Belady异常现象,即进程的缺页次数会随着分配给该进程的页框个数的增加而增加。下列算法中,可能出现 Belady异常现象的是_。LRU 算法FIFO 算法OFT 算法(分数:2.00)A.仅B.仅、C.仅、D.仅、21.下列选项中,属于多级页表优点的是_。(分数:2.00)A.加快地址变换速度B.减少缺页中断次数C.减少页表项所占字节数D.减少页表所

8、占的连续内存空间二、综合应用题(总题数:8,分数:16.00)22.综合应用题 41-47小题。_23.三个进程 P1、P2、P3 互斥使用一个包含 N(N0)个单元的缓冲区。P1 每次用 produce()生成一个正整数并用 put()送入缓冲区某一空单元中;P2 每次用 getodd()从该缓冲区中取出一个奇数并用 countodd()统计奇数个数;P3 每次用 geteven()从该缓冲区中取出一个偶数并用 counteven()统计偶数个数。请用信号量机制实现这三个进程的同步与互斥活动,并说明所定义信号量的含义。要求用伪代码描述。(分数:2.00)_24.某银行提供 1个服务窗口和 1

9、0个供顾客等待的座位。顾客到达银行时,若有空座位,则到取号机上领取一个号,等待叫号。取号机每次仅允许一位顾客使用。当营业员空闲时,通过叫号选取一位顾客,并为其服务。顾客和营业员的活动过程描述如下:cobeginprocess 顾客 i从取号机获取一个号码:等待叫号;获取服务;proces8 营业员while(TRUE)叫号;为客户服务;coend 请添加必要的信号量和 P、V(或wait()、signal()操作,实现上述过程中的互斥与同步。要求写出完整的过程,说明信号量的含义并赋初值。(分数:2.00)_25.某博物馆最多可容纳 500人同时参观,有一个出入口,该出人口一次仅允许一个人通过。

10、参观者的活动描述如下:cobegin 参观者进程 i;进门:参观;出门;coend 请添加必要的信号量和 P、V(或 wait()、signal()操作,以实现 E述过程中的互斥与同步。要求写出完整的过程,说明信号量的含义并赋初值。(分数:2.00)_26.系统中有多个生产者进程和多个消费者进程,共享一个能存放 1000件产品的环形缓冲区(初始为空)。当缓冲区未满时,生产者进程可以放入其生产的一件产品,否则等待;当缓冲区未空时,消费者进程可以从缓冲区取走一件产品,否则等待。要求一个消费者进程从缓冲区连续取出 10件产品后,其他消费者进程才可以取产品。请使用信号量 P,V(wait(),sign

11、al()操作实现进程间的互斥与同步,要求写出完整的过程,并说明所用信号量的含义和初值。(分数:2.00)_27.有 A、B 两人通过信箱进行辩论,每个人都从自己的信箱中取得对方的问题。将答案和向对方提出的新问题组成一个邮件放入对方的邮箱中。假设 A的信箱最多放 M个邮件,B 的信箱最多放 N个邮件。初始时A的信箱中有 x个邮件(0xM),B 的信箱中有 y个(0yN)。辩论者每取出一个邮件,邮件数减 1。A和 B两人的操作过程描述如下:CoBegin (分数:2.00)_28.某计算机主存按字节编址,逻辑地址和物理地址都是 32位,页表项大小为 4字节。请回答下列问题:1)若使用一级页表的分页

12、存储管理方式,逻辑地址结构为: 则页的大小是多少字节?页表最大占用多少字节?2)若使用二级页表的分页存储管理方式,逻辑地址结构为: 设逻辑地址为 LA,请分别给出其对应的页目录号和页表索引的表达式。3)采用 1)中的分页存储管理方式,一个代码段起始逻辑地址为 0000 8000H,其长度为 8KB,被装载到从物理地址 0090 0000H开始的连续主存空间中。页表从主存0020 0000H开始的物理地址处连续存放,如下图所示(地址大小自下向上递增)。请计算出该代码段对应的两个页表项的物理地址、这两个页表项中的页框号以及代码页面 2的起始物理地址。 (分数:2.00)_请求分页管理系统中,假设某

13、进程的页表内容见下表。 (分数:4.00)(1).依次访问上述三个虚地址,各需多少时间?给出计算过程。(分数:2.00)_(2).基于上述访问序列,虚地址 1565H的物理地址是多少?请说明理由。(分数:2.00)_计算机专业基础综合历年真题试卷汇编 5答案解析(总分:58.00,做题时间:90 分钟)一、单项选择题(总题数:21,分数:42.00)1.单项选择题 1-40小题。下列每题给出的四个选项中,只有一个选项是最符合题目要求的。(分数:2.00)_解析:2.设与某资源关联的信号量初值为 3,当前值为 1。若 M表示该资源的可用个数,N 表示等待该资源的进程数,则 M、N 分别是_。(分

14、数:2.00)A.0、1B.1、0 C.1、2D.2、0解析:解析:信号量表示相关资源的当前可用数量。当信号量 K0 时,表示还有 K个相关资源可用,所以该资源的可用个数是 1。而当信号量 K0 时,表示有K个进程在等待该资源。由于资源有剩余,可见没有其他进程等待使用该资源,故进程数为 0。3.某系统有 n台互斥使用的同类设备,三个并发进程分别需要 3、4、5 台设备,可确保系统不发生死锁的设备数 n最小为_。(分数:2.00)A.9B.10 C.11D.12解析:解析:三个并发进程分别需要 3、4、5 台设备,当系统只有(3-1)+(4-1)+(5-1)=9 台设备时,第一个进程分配 2台,

15、第二个进程分配 3台,第三个进程分配 4台。这种情况下,三个进程均无法继续执行下去,发生死锁。当系统中再增加 1台设备,也就是总共 10台设备时,这最后 1台设备分配给任意一个进程都可以顺利执行完成,因此保证系统不发生死锁的最小设备数为 10。4.下列关于管道(Pipe)通信的叙述中,正确的是_。(分数:2.00)A.一个管道可实现双向数据传输B.管道的容量仅受磁盘容量大小限制C.进程对管道进行读操作和写操作都可能被阻塞 D.一个管道只能有一个读进程或一个写进程对其操作解析:解析:管道实际上是一种固定大小的缓冲区,管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系

16、统,而是自立门户,单独构成一种文件系统,并且只存在于内存中。它类似于通信中半双工信道的进程通信机制,一个管道可以实现双向的数据传输,而同一个时刻只能最多有一个方向的传输,不能两个方向同时进行。管道的容量大小通常为内存上的一页,它的大小并不是受磁盘容量大小的限制。当管道满时,进程在写管道会被阻塞,而当管道空时,进程在读管道会被阻塞,因此选 C。5.某计算机系统中有 8台打印机,由 K个进程竞争使用,每个进程最多需要 3台打印机。该系统可能会发生死锁的 K的最小值是_。(分数:2.00)A.2B.3C.4 D.5解析:解析:这种题用到组合数学中鸽巢原理的思想。考虑最极端情况,因为每个进程最多需要

17、3台打印机,如果每个进程已经占有了 2台打印机,那么只要还有多的打印机,总能满足一个进程达到 3台的条件,然后顺利执行,所以将 8台打印机分给 K个进程,每个进程有 2台打印机,这个情况就是极端情况,K 为4。6.下列关于银行家算法的叙述中,正确的是_。(分数:2.00)A.银行家算法可以预防死锁B.当系统处于安全状态时,系统中一定无死锁进程 C.当系统处于不安全状态时,系统中一定会出现死锁进程D.银行家算法破坏了死锁必要条件中的“请求和保持”条件解析:解析:银行家算法是避免死锁的方法,破坏死锁产生的必要条件是预防死锁的方法。利用银行家算法,系统处于安全状态时就可以避免死锁(即此时必然无死锁)

18、;当系统进入不安全状态后便可能进入死锁状态(但也不是必然)。7.某时刻进程的资源使用情况如下表所示。 (分数:2.00)A.P1,P2,P3,P4B.P1,P3,P2,P4C.P1,P4,P3,P2D.不存在的 解析:解析:本题应采用排除法,逐个代入分析。当剩余资源分配给 P1,待 P1执行完后,可用资源数为(2,2,1),此时仅能满足 P4的需求,排除 AB;接着分配给 P4,待 P4执行完后,可用资源数为(2,2,2),此时己无法满足任何进程的需求,排除 C。此外,本题还可以使用银行家算法求解(对于选择题来说,显得过于复杂)。8.假设 5个进程 P0、P1、P2、P3、P4 共享三类资源

19、R1、R2、R3,这些资源总数分别为 18、6、22。T0 时刻的资源分配情况如下表所示,此时存在的一个安全序列是_。 (分数:2.00)A.P0,P2,P4,P1,P3B.P1,P0,P3,P4,P2C.P2,P1,P0,P3,P4D.P3,P4,P2,P1,P0 解析:解析:首先求得各进程的需求矩阵 Need与可利用资源矢量 Available:9.若系统 S1采用死锁避免方法,S2 采用死锁检测方法。下列叙述中,正确的是_。S1 会限制用户申请资源的顺序,而 S2不会S1 需要进程运行所需资源总量信息,而 S2不需要S1 不会给可能导致死锁的进程分配资源,而 S2会(分数:2.00)A.

20、仅、B.仅、 C.仅、D.、解析:解析:死锁的处理采用三种策略:死锁预防、死锁避免、死锁检测和解除。 死锁预防,采用破坏产生死锁的四个必要条件中的一个或几个,以防止发生死锁。其中之一的“破坏循环等待条件”,一般采用顺序资源分配法,首先给系统的资源编号,规定每个进程必须按编号递增的顺序请求资源,也就是限制了用户申请资源的顺序,故的前半句属于死锁预防的范畴。 银行家算法是最著名的死锁避免算法,其中的最大需求矩阵 MAX定义了每一个进程对 m类资源的最大需求量,系统在执行安全性算法中都会检查此次资源试分配后,系统是否处于安全状态,若不安全则将本次的试探分配作废。在死锁的检测和解除中,在系统为进程分配

21、资源时不采取任何措施,但提供死锁的检测和解除的手段,故、正确。10.在虚拟内存管理中,地址变换机构将逻辑地址变换为物理地址,形成该逻辑地址的阶段是_。(分数:2.00)A.编辑B.编译 C.链接D.装载解析:解析:编译后的模块需要经过链接才能装载,而链接后形成的地址才是整个程序的完整逻辑地址空间。以 C语言为例:C 语言经过预处理(cpp)编译(ccl)汇编(as)链接(ld)产生可执行文件。其中链接的前一步,产生了可重定位的二进制的目标文件。C 语言采用源文件独立编译的方法,如程序mainc,file1c,file2c,file1h,file2h,在链接的前一步生成了maino,file1o

22、,file2o,这些目标模块采用的逻辑地址都从 0开始,但只是相对于该模块的逻辑地址。链接器将这三个文件,libC 和其他的库文件链接成个可执行文件。链接阶段主要完成了重定位,形成整个程序的完整逻辑地址空间。 例如,file1o 的逻辑地址为 01023,maino 的逻辑地址为01023,假设链接时将 file1o 链接在 maino 之后,则重定位之后 file1o 对应的逻辑地址就应为10242047。 这一题有不少同学会对 C选项有疑问,认为产生逻辑地址的阶段是链接,下面引入一个线性地址的概念来解释为什么链接是不对的。为了区分各种不同的地址,下面也把逻辑地址和物理地址一并介绍。 逻辑地

23、址(Logical Address)是指在程序各个模块中的偏移地址。它是相对于当前模块首址的地址。线性地址(Linear Address)是指在分页式存储管理中单个程序所有模块集合在一起构成的地址,即可以理解为操作系统联考复习指导一书中的全局的逻辑地址。 物理地址(PhysicalAddress)是指出现在CPU外部地址总线上的寻址物理内存的地址信号,是地址变换的最终结果地址。它实际上就是物理内存真正的地址。线性地址的概念在很多操作系统书中并不涉及,在这里引入只是为了把这题解释清楚。选择 C选项的同学应该是把题目所说的逻辑地址当成了线性地址。实际上,很多书中也不会把这线性地址和逻辑地址区分得那

24、么清楚,而统一的称为逻辑地址,这就导致了这题的错误选择。 总之,在这题中,逻辑地址指的就是段内的偏移量而不是链接后生成的整个程序全局的逻辑地址空间,所以逻辑地址是编译时产生的。编者在查相关资料的过程中看到了关于这个问题的很多不一样的说法,这也是操作系统这门课的一个“特色”,所以这里综合了各个说法,并给出了一个觉得相对合理的解释,读者不必过多纠结,实际考试碰上这种问题的概率还是很低的。11.现有一个容量为 10GB的磁盘分区,磁盘空间以簇(Cluster)为单位进行分配,簇的大小为 4KB,若采用位图法管理该分区的空闲空间,即用一位(bit)标识一个簇是否被分配,则存放该位图所需簇的个数为_。(

25、分数:2.00)A.80 B.320C.80KD.320K解析:解析:簇的总数为 10GB4KB=25M,用一位标识一簇是否被分配,则整个磁盘共需要 25M 位,即需要 25M8=320KB,则共需要 320KB4KB=80 个簇,选 A。12.分区分配内存管理方式的主要保护措施是_。(分数:2.00)A.界地址保护 B.程序代码保护C.数据保护D.栈保护解析:解析:每个进程都拥有自己独立的进程空间,如果一个进程在运行时所产生的地址在其地址空间之外,则发生地址越界,因此需要进行界地址保护,即当程序要访问某个内存单元时,由硬件检查是否允许,如果允许则执行,否则产生地址越界中断。13.某基于动态分

26、区存储管理的计算机,其主存容量为 55MB(初始为空闲),采用最佳适配(BestFit)算法,分配和释放的顺序为:分配 15MB,分配 30MB,释放 15MB,分配 8MB,分配 6MB,此时主存中最大空闲分区的大小是_。(分数:2.00)A.7MBB.9MB C.10MBD.15MB解析:解析:最佳适配算法是指每次为作业分配内存空间时,总是找到能满足空间大小需要的最小的空闲分区给作业,可以产生最小的内存空闲分区,如图 3-2所示。14.某计算机采用二级页表的分页存储管理方式,按字节编址,页大小为 2 10 B,页表项大小为 2B,逻辑地址结构为: (分数:2.00)A.64B.128 C.

27、256D.512解析:解析:页大小为 2 10 B,页表项大小为 2B,故一页可以存放 2 9 个页表项,逻辑地址空间大小为 2 16 页,即共需 2 16 个页表项,则需要 2 16 2 9 =2 7 =128个页面保存页表项,即页目录表中包含表项的个数至少是 128。15.一个分段存储管理系统中,地址长度为 32位,其中段号占 8位,则最大段长是_。(分数:2.00)A.2 8 BB.2 16 BC.2 24 B D.2 32 B解析:解析:分段存储管理的逻辑地址分为段号和位移量两部分,段内位移的最大值就是最大段长。地址长度为 32位,段号占 8位,则位移量占 32-8=24位,故最大段长

28、为 2 24 B。16.下列关于虚拟存储器的叙述中,正确的是_。(分数:2.00)A.虚拟存储只能基于连续分配技术B.虚拟存储只能基于非连续分配技术 C.虚拟存储容量只受外存容量的限制D.虚拟存储容量只受内存容量的限制解析:解析:在程序装入时,可以只将程序的部分装入内存,而将其余部分留在外存,就可以启动程序执行。采用连续分配方式时,会使相当一部分内存空间都处于暂时或“永久”的空闲状态,造成内存资源的严重浪费,也无法从逻辑上扩大内存容量,因此虚拟内存的实现只能建立在离散分配的内存管理的基础上。有以下三种实现方式:请求分页存储管理;请求分段存储管理;请求段页式存储管理。虚拟存储器容量既不受外存容量

29、限制,也不受内存容量限制;而是由 CPU的寻址范围决定的。17.在缺页处理过程中,操作系统执行的操作可能是_。修改页表磁盘 IO分配页框(分数:2.00)A.仅、B.仅C.仅D.、和 解析:解析:缺页中断产生后,需要在内存中找到空闲页框并分配给需要访问的页(可能涉及到页面置换),之后缺页中断处理程序调用设备驱动程序做磁盘 IO,将位于外存上的页面调入内存,调入后需要修改页表,将页表中代表该页是否在内存的标志位(或有效位)置为 1,并将物理页框号填入相应位置,若必要还需修改其他相关表项等。18.若用户进程访问内存时产生缺页,则下列选项中,操作系统可能执行的操作是_。处理越界错置换页分配内存(分数

30、:2.00)A.仅、B.仅、 C.仅、D.、和解析:解析:用户进程访问内存时缺页会发生缺页中断。发生缺页中断,系统会执行的操作可能是置换页面或分配内存。系统内没有越界的错误,不会进行越界出错处理。19.下列措施中,能加快虚实地址转换的是_。增大快表(TLB)容量让页表常驻内存增大交换区(swap)(分数:2.00)A.仅B.仅C.仅、 D.仅、解析:解析:虚实地址转换是指逻辑地址和物理地址的转换。增大陕表容量能把更多的表项装入快表中,会加快虚实地址转换的平均速率;让页表常驻内存可以省去一些不在内存中的页表从磁盘上调入的过程,也能加快虚实地址转换;增大交换区对虚实地址转换速度无影响,因此、正确,

31、选 C。20.在页式虚拟存储管理系统中,采用某些页面置换算法,会出现 Belady异常现象,即进程的缺页次数会随着分配给该进程的页框个数的增加而增加。下列算法中,可能出现 Belady异常现象的是_。LRU 算法FIFO 算法OFT 算法(分数:2.00)A.仅 B.仅、C.仅、D.仅、解析:解析:只有 FIFO算法会导致 Belady异常,选 A。21.下列选项中,属于多级页表优点的是_。(分数:2.00)A.加快地址变换速度B.减少缺页中断次数C.减少页表项所占字节数D.减少页表所占的连续内存空间 解析:解析:多级页表不仅不会加快地址的变换速度,还会因为增加更多的查表过程,使地址变换速度减

32、慢;也不会减少缺页中断的次数,反而如果访问过程中多级的页表都不在内存中,会大大增加缺页的次数,也并不会减少页表项所占的字节数(详细解析参考下段),而多级页表能够减少页表所占的连续内存空间,即当页表太大时,将页表再分级,可以把每张页表控制在一页之内,减少页表所占的连续内存空间,因此选 D。二、综合应用题(总题数:8,分数:16.00)22.综合应用题 41-47小题。_解析:23.三个进程 P1、P2、P3 互斥使用一个包含 N(N0)个单元的缓冲区。P1 每次用 produce()生成一个正整数并用 put()送入缓冲区某一空单元中;P2 每次用 getodd()从该缓冲区中取出一个奇数并用

33、countodd()统计奇数个数;P3 每次用 geteven()从该缓冲区中取出一个偶数并用 counteven()统计偶数个数。请用信号量机制实现这三个进程的同步与互斥活动,并说明所定义信号量的含义。要求用伪代码描述。(分数:2.00)_正确答案:(正确答案:互斥资源:缓冲区只能互斥访问,因此设置互斥信号量 mutex。 同步问题:P1、P2 因为奇数的放置与取用而同步,设同步信号量 odd;P1、P3 因为偶数的放置与取用而同步,设置同步信号量 even;P1、P2、P3 因为共享缓冲区,设同步信号量 empty,初值为 N。 程序如下: semaphore mutex=1; semap

34、hore odd=0,even=0; semaphore empty=N; main() cobegin Process P1() while(True) x=produce();生成一个数 p(empty);判断缓冲区是否有空单元 P(mutex);缓冲区是否被占用 Put(); V(mutex);释放缓冲区 if(x2=0) v(even);如果是偶数,向 P3发出信号 else V(odd);如果是奇数,向 p2发出信号 Process P2() while(True) p(odd);收到 p1发来的信号,已产生一个奇数 p(mutex);缓冲区是否被占甩 getodd(); V(mut

35、ex);释放缓冲区 V(empty);向 p1发信号,多出一个空单元 countodd(); Process P3() while(True) p(even);收到 p1发来的信号,已产生一个偶数 p(mutext);缓冲区是否被占用 geteven(); V(mutex);释放缓冲区 V(empty);向 p1发信号,多出一个空单元 counteven(); coend)解析:24.某银行提供 1个服务窗口和 10个供顾客等待的座位。顾客到达银行时,若有空座位,则到取号机上领取一个号,等待叫号。取号机每次仅允许一位顾客使用。当营业员空闲时,通过叫号选取一位顾客,并为其服务。顾客和营业员的活动

36、过程描述如下:cobeginprocess 顾客 i从取号机获取一个号码:等待叫号;获取服务;proces8 营业员while(TRUE)叫号;为客户服务;coend 请添加必要的信号量和 P、V(或wait()、signal()操作,实现上述过程中的互斥与同步。要求写出完整的过程,说明信号量的含义并赋初值。(分数:2.00)_正确答案:(正确答案:互斥资源:取号机(一次只一位顾客领号),因此设置互斥信号量 mutex。 同步问题:顾客需要获得空座位等待叫号,当营业员空闲时,将选取一位顾客并为其服务。空座位的有、无影响等待顾客数量,顾客的有、无决定了营业员是否能开始服务,故分别设置信号量 em

37、pty和 fuU来实现这一同步关系。另外,顾客获得空座位后,需要等待叫号和被服务。这样,顾客与营业员就服务何时开始又构成了一个同步关系,定义信号量 service来完成这一同步过程。 semaphore empty10;空座位的数量,初值为 10 semaphore mutex=1;互斥使用取号机 semaphore full=0;已占座位的数量,初值 0 semaphore service=0;等待叫号 cobegin Process 顾客 i P(empty),等空位 P(mutex);申请使用取号机 从取号机上取号; V(mutex),取号完毕 v(full);通知营业员有新顾客 P(s

38、ervice),等待营业员叫号 接受服务; Process 营业员 while(True) P(fuii);没有顾客则休息 V(empty);离开座位 V(service);叫号 为顾客服务; coend)解析:25.某博物馆最多可容纳 500人同时参观,有一个出入口,该出人口一次仅允许一个人通过。参观者的活动描述如下:cobegin 参观者进程 i;进门:参观;出门;coend 请添加必要的信号量和 P、V(或 wait()、signal()操作,以实现 E述过程中的互斥与同步。要求写出完整的过程,说明信号量的含义并赋初值。(分数:2.00)_正确答案:(正确答案:出入口一次仅允许一个人通过

39、,设置互斥信号量 mutex,初值为 1。博物馆最多可同时容纳 500个人,故设置信号量 empty,初值为 500。 Semaphore empty=500;博物馆可以容纳的最多人数 Semaphore mutex=1;用于出入口资源的控制 cobegin 参观者进程 i: P(empty);可容纳人数减 1 P(mutex);互斥使用门 1 进门; V(mutex); 参观; P(mutex);互斥使用门 出门; V(mutex); V(empty);可容纳人数增 1 coend)解析:26.系统中有多个生产者进程和多个消费者进程,共享一个能存放 1000件产品的环形缓冲区(初始为空)。当

40、缓冲区未满时,生产者进程可以放入其生产的一件产品,否则等待;当缓冲区未空时,消费者进程可以从缓冲区取走一件产品,否则等待。要求一个消费者进程从缓冲区连续取出 10件产品后,其他消费者进程才可以取产品。请使用信号量 P,V(wait(),signal()操作实现进程间的互斥与同步,要求写出完整的过程,并说明所用信号量的含义和初值。(分数:2.00)_正确答案:(正确答案:这是典型的生产者和消费者问题,只对典型问题加了一个条件,只需在标准模型上新加一个信号量,即可完成指定要求。 设置四个变量 mutex1、mutex2、empty 和 full,mutex1 用于一个控制一个消费者进程一个周期(1

41、0 次)内对于缓冲区的控制,初值为 1;mutex2 用于进程单次互斥的访问缓冲区,初值为 1;empty 代表缓冲区的空位数,初值为 0;full 代表缓冲区的产品数,初值为 1000,具体进程的描述如下: semaphore mutex1=1; semaphore mutex2=1; semaphore empty=n; semaphore full=0; producer() while(1) 生产一个产品; P(empty);判断缓冲区是否有空位 P(mutex2);互斥访问缓冲区 把产品放入缓冲区; V(mutex2);互斥访问缓冲区 V(full);产品的数量加 1 consume

42、r() while(1) P(mutex1)连续取 10次 for(int i=0;0,i=10;+i) P(full);判断缓冲区是否有产品 P(mutex2);互斥访问缓冲区 从缓冲区取出一件产品; V(mutex2);互斥访问缓冲区 V(empty);腾出一个空位 消费这件产品; V(mutex1) )解析:27.有 A、B 两人通过信箱进行辩论,每个人都从自己的信箱中取得对方的问题。将答案和向对方提出的新问题组成一个邮件放入对方的邮箱中。假设 A的信箱最多放 M个邮件,B 的信箱最多放 N个邮件。初始时A的信箱中有 x个邮件(0xM),B 的信箱中有 y个(0yN)。辩论者每取出一个邮件,邮件数减 1。A和 B两人的操作过程描述如下:CoBegin (分数:2.00)_正确答案:(正确答案:semaphore Full_A=x,Full_A 表示 A的信箱中的邮件数量 semaphore Empty A=M-x;Empty_A 表示 A的信箱中还可存放的邮件数量 semaphore Full_B=y;Full_B 表示 B的信箱中的邮件数量 semaphore Empty_B=N-y;Empty_B 表示 B的信箱中还可存放的邮件数量 semaphore mutex_A=1;mutex_A 用于 A的信箱互斥 semaphore mutex_B=1;mu

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

当前位置:首页 > 考试资料 > 大学考试

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1