[考研类试卷]计算机专业基础综合(操作系统)模拟试卷2及答案与解析.doc

上传人:吴艺期 文档编号:844722 上传时间:2019-02-21 格式:DOC 页数:22 大小:113.50KB
下载 相关 举报
[考研类试卷]计算机专业基础综合(操作系统)模拟试卷2及答案与解析.doc_第1页
第1页 / 共22页
[考研类试卷]计算机专业基础综合(操作系统)模拟试卷2及答案与解析.doc_第2页
第2页 / 共22页
[考研类试卷]计算机专业基础综合(操作系统)模拟试卷2及答案与解析.doc_第3页
第3页 / 共22页
[考研类试卷]计算机专业基础综合(操作系统)模拟试卷2及答案与解析.doc_第4页
第4页 / 共22页
[考研类试卷]计算机专业基础综合(操作系统)模拟试卷2及答案与解析.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、计算机专业基础综合(操作系统)模拟试卷 2 及答案与解析一、单项选择题1-40 小题,每小题 2 分,共 80 分。下列每题给出的四个选项中,只有一个选项是最符合题目要求的。1 进程处于( ) 等待状态时,它是处于非阻塞状态的。(A)等待从键盘输入数据(B)等待协作进程的一个信号(C)等待操作系统分配 CPU 时间(D)等待网络数据进入内存2 下列叙述中,错误的是( )。(A)操作系统是用户与计算机之间的接口(B)程序的并发执行,使程序失去了顺序执行时具有的封闭性和可再现性,程序与程序的执行不再一一对应(C)进程从一个状态到另一个状态的转换,都是靠使用不同的原语来实现的(D)在单 CPU 系统

2、中,任何时刻处于就绪状态的进程有多个,而且只有处于就绪状态的进程经调度程序选中后才可进入运行状态3 进程调度是从( ) 选择一个进程投入运行的。(A)就绪队列(B)等待队列(C)作业后备队列(D)提交队列4 下列叙述中,正确的是( )。(A)分时系统中,时间片越小,响应时间越长(B)多道程序的引入,主要是为了提高 CPU 及其他资源的利用率(C)飞机票订票系统是分时系统(D)PCB 是进程存在的唯一标志,而程序是系统感知进程存在的唯一实体5 一个进程被唤醒,意味着( )。(A)该进程重新占有了 CPU(B)进程状态变为就绪(C)它的优先权变为最大(D)其 PCB 移至就绪队列的队首6 进程和程

3、序的本质区别是( )。(A)存储在内存和外存(B)顺序和非顺序执行机器指令(C)分时使用和独占使用计算机资源(D)动态和静态特征7 系统感知进程的唯一实体是( )。(A)JCB(B) FCB(C) PCB(D)SJT8 一进程在某一时刻具有( )。(A)一种状态(B)两种状态(C)三种状态(D)四种状态9 在单处理机的多进程系统中,进程什么时候占用处理机以及决定占用时间的长短是( )。(A)进程相应的代码长度(B)进程总共需要运行的时间(C)进程特点和进程调度策略(D)进程完成什么功能10 进程从运行状态变为阻塞的原因可能是( )。(A)输入输出事件发生(B)时间片到(C)输入输出事件完成(D

4、)某个进程被唤醒11 进程创建原语的任务是( )。(A)为进程编制程序(B)为进程建立 PCB 表(C)为进程分配 CPU(D)为进程分配所需的各种资源12 进程被创建后即进入( )排队。(A)阻塞队列(B)就绪队列(C)缓冲队列(D)运行队列13 多道程序系统中,( )的作用是从就绪状态中挑选一个进程投入运行。(A)作业调度(B)交换调度(C)进程调度(D)SPOOLing 调度14 多道系统环境下,操作系统分配资源以( )为基本单位。(A)作业(B)指令(C)程序(D)进程15 进程调度主要负责( )。(A)选作业进入内存(B)选一进程占有 CPU(C)建立一进程(D)撤销一进程16 出现

5、下列的情况可能导致死锁的是( )。(A)进程释放资源(B)一个进程进入死循环(C)多个进程竞争资源出现了循环等待(D)多个进程竞争使用共享型的设备17 “可抢占”和“不可抢占”的优先级调度算法相比, ( )。(A)前者开销小(B)前者开销大(C)两者开销大致相同(D)两者开销不能相比18 一个进程获得了除 CPU 以外的所有资源,则该进程可能处于( )状态。(A)运行(B)就绪(C)等待(D)就绪和等待19 银行家算法在解决死锁问题中是用于( )的。(A)预防死锁(B)避免死锁(C)检测死锁(D)解除死锁20 保护现场是指将现场信息保存至( )。(A)磁盘(B)各相应的寄存器(C)进程的 PC

6、B 中(D)内存系统区二、综合应用题41-47 小题,共 70 分。21 简述判断死锁的必要条件。22 假定系统有三个并发进程 read、move 和 print 共享缓冲器 B1 和 B2。进程 read负责从输入设备上读信息,每读出一条记录后把它存放到缓冲器 B1 中。进程move 从缓冲器 B1 中取出一条记录,加工后存入缓冲器 B2。进程 print 将 B2 中的记录取出打印输出。缓冲器 B1 和 B2 每次只能存放一条记录。要求三个进程协调完成任务,使打印出来的与读入的记录的条数,次序完全一样。请用 wait 和 signal原语写出它们的并发程序。23 举例说明,P 、V 操作为

7、什么要求设计成原语(即对同一信号量上的操作必须互斥)。P(S)操作:Svalue-;if(Svalue0)Add this process to SL:Block();V(S)操作:Svalue+;if(Svalue=0)Remove a process P from SL:Wakeup(P);24 并发使得处理机的利用率得到提高,其主要原因是处理机与 I/O 可以同时为多个进程服务,也即处理机与 IO 设备真正地并行。但是处理机的利用率提高并不是简单地将两个进程的处理机利用率相加,而是遵循定的规律。现在有一个计算机系统采用多道程序技术实现了并发,调度算法采用时间片轮转,时间片很小可以不计进程

8、并发时的次序。忽略计算机系统的开销。 假设进程创建时间和完全占有CPU 运行的确切时间如下表所示。已知其 IO 繁忙率为 80,处理机的利用率为 20。请计算并填写下列空格和图表空格处。25 设有一缓冲池 P,P 中含有 10 个可用缓冲区,一个输入进程将外部数据读入P,另有一个输出进程将 P 中数据取出并输出,如下所示。若进程每次操作均以一个缓冲区为单位,试用记录型信号量写出两个进程的同步算法,要求写出信号量的设置。输入进程 输出进程L:读入数据 L:从一满缓冲区中取出数据将数据写入一空缓冲区将 数据输出GOTO L GOTO L26 一个 SPOOLing 系统由输入进程 I、用户进程 P

9、、输出进程 O、输入缓冲区、输出缓冲区组成。进程 I 通过输入缓冲区为进程 P 输入数据,进程 P 的处理结果通过输出缓冲区交给进程 0 输出。进程间数据交换以等长度的数据块为单位,这些数据块均存储在同一个磁盘上,因此,SPOOLing 系统的数据块通信原语保证始终满足:i+o()max。其中,max 为磁盘容量(以该数据块为单位),i 为磁盘上输入数据块总数,o 为磁盘上输出数据总数。该 SPOOLing 系统运行时:(1)只要有输入数据,进程 I 终究会将它放入输入缓冲区;(2)只要输入缓冲区有数据块,进程 P 终究会输入、处理并产生结果数据写到输出缓冲区;(3)只要输出缓冲区有数据块,进

10、程 O 终究会输出它。请说明该 SPOOLing 系统在什么情况下死锁,并说明如何修正约束条件(1)避免死锁,同时仍允许输入数据块和输出数据块存储在同一个磁盘上。27 什么是 AND 信号量? 请利用 AND 信号量写出生产者一消费者问题的解法。28 测量控制系统中的数据采集任务把所采集的数据送一个单缓冲区,计算任务从该单缓冲区中取出数据进行计算。试写出利用信号量机制实现两者共享单缓冲区的同步算法。29 试利用记录型信号量写出一个不会出现死锁的哲学家进餐问题的解决算法。30 为什么进程在进入临界区之前应先执行“进入区” 代码,在退出临界区后又执行“退出区”代码?31 我们为某临界区设置一把锁

11、W,当 W=1 时表示关锁, W=0 时表示锁已打开。试写出开锁原语和关锁原语,并利用它们去实现互斥。计算机专业基础综合(操作系统)模拟试卷 2 答案与解析一、单项选择题1-40 小题,每小题 2 分,共 80 分。下列每题给出的四个选项中,只有一个选项是最符合题目要求的。1 【正确答案】 C【知识模块】 操作系统2 【正确答案】 C【试题解析】 从用户的角度看,操作系统是用户使用计算机的桥梁,用户通过操作系统的两类接口来达到操纵计算机的目的。选项 A 正确。选项 B 的叙述也是正确的,因为这正是引入进程概念的原因。进程从一个状态到另一个状态的转换是一个非常复杂的过程,除了要使用不同的原语外,

12、有时还要借助于硬件触发器才能完成。例如,UNIX 系统中,从系统态到用户态的转换要借助硬件触发器。因此,选项 C 错误。处于就绪状态的进程已经获得了除 CPU 之外的所有资源,由于只有一个 CPU,任何时刻就只能有一个进程获得 CPU,而其他的就只能在就绪状态对应的队列上排队等待调度程序的调度。所以选项 D 也正确。【知识模块】 操作系统3 【正确答案】 A【试题解析】 处于就绪队列的进程是获得了除处理机以外的所有资源处于准备执行的状态。进程调度就是负责从就绪队列中挑选进程投入运行的。【知识模块】 操作系统4 【正确答案】 B【试题解析】 分时系统的响应时间 Tnq,n 是用户数目,而 q 是

13、时间片。当在用户数目一定的情况、下,时间片越小,响应时间越短。因此,选项 A 错误。在单道程序环境中,系统的全部资源为一个作业所独占,如果该作业在进行输入或输出时,CPU 仍然被它所占有,处于等待状态。由于 CPU 与外设处理速度上的差异,如果采用多道程序设计技术,当某个作业输入或输出时,CPU 就可处理其他的作业,其他资源也是类似的。因此,选项 B 正确。飞机票订票系统是实时信息处理系统。所以,选项 C 错误。PCB 是进程存在的唯一标志,也是系统感知进程存在的唯一实体,而进程的程序部分描述了进程所要完成的功能。因此,选项 D 错误。【知识模块】 操作系统5 【正确答案】 B【试题解析】 进

14、程被唤醒是进入就绪队列。是否插入到就绪队列的什么地方,取决于就绪的管理方法和进程调度的算法。如果进程调度是最高优先数优先,该进程按优先数插入该队列中;如果该队列是按到达的先后次序排列的,则按到达的先后插入。【知识模块】 操作系统6 【正确答案】 D【试题解析】 程序是指令的集合,而进程是可以和其他程序并发执行的程序的一次执行过程。程序可以作为资料长期保存,而进程有从产生到消亡的过程。【知识模块】 操作系统7 【正确答案】 C【试题解析】 进程控制块 PCB 是进程存在的唯一标志。【知识模块】 操作系统8 【正确答案】 A【试题解析】 进程可能处于就绪、运行、等待三种基本状态,但进程在任一时刻只

15、能处于一种状态。【知识模块】 操作系统9 【正确答案】 C【试题解析】 本题考查进程调度的时机和进程调度的策略。进程调度的时机与进程特点有关,例如,进程是 CPU 繁忙型还是 IO 繁忙型、自身的优先级等。但是仅有这些特点是不够的,能否得到调度还取决于进程调度策略,若采用优先级调度算法,则进程的优先级才起作用。至于占用处理机运行时间的长短,则要看进程自身,若进程是 IO 繁忙型,运行过程中要频繁访问 IO,也就是说,可能会频繁主动放弃 CPU,所以,占用 CPU 的时间就不会长,一旦放弃 CPU,则必须等待下次调度。若进程是 CPU 繁忙型,则一旦占有 CPU 就可能会运行很长时间,但是,运行

16、时间还取决于进程调度策略。多数情况下,交互式系统为改善用户的响应时间,大多采用时间片轮转算法,这种算法在进程长期占用 CPU 到一定时间后,会强制将其换下,以保证其他进程的 CPU 使用权。所以,本题的正确答案应为选项 C。【知识模块】 操作系统10 【正确答案】 A【试题解析】 正在运行的进程如果要申请输入或输出,这时进程的状态将从运行变为等待,将 CPU 让出,等待输入或输出完成。【知识模块】 操作系统11 【正确答案】 B【试题解析】 进程存在的标志是进程控制块,所以创建进程就是要创建 PCB,并将有关参数填入 PCB 中。【知识模块】 操作系统12 【正确答案】 B【试题解析】 进程创

17、建后,按就绪队列的排列顺序插入其中,等待进程调度程序的调度。【知识模块】 操作系统13 【正确答案】 C【知识模块】 操作系统14 【正确答案】 D【试题解析】 多道环境下,程序这个概念已经难以反映程序并发执行的特点,所以,在多道环境下,为了更好地描述程序并发执行的特点,引入了进程的概念。进程是在多道环境下资源分配的基本单位。【知识模块】 操作系统15 【正确答案】 B【试题解析】 进程调度主要负责选择下一个将要运行的进程,进程运行与进程占用 CPU 是同一过程。【知识模块】 操作系统16 【正确答案】 C【试题解析】 死锁的定义:两个或两个以上并发进程,如果每个进程持有某种资源,而又等待着别

18、的进程释放它或它们现在保持着的资源,否则就不能向前推进。此时,每个进程都占用了一定的资源,但又都不能向前推进。这种现象称为死锁。死锁的起因:互斥条件,不可剥夺条件,部分分配,环路条件。【知识模块】 操作系统17 【正确答案】 B【试题解析】 因为“可抢占”优先级调度始终保证在处理机上运行的是优先级最高的进程,这样,当处理机正在运行某个进程时,很可能会被其他优先级更高的进程“抢占”引起处理机调度,与“不可抢占”算法相比,前者的调度次数会更频繁,而每调度一次都会引起保护现场、恢复现场的工作,所以“可抢占”的优先级调度算法开销更大。【知识模块】 操作系统18 【正确答案】 B【试题解析】 处于就绪状

19、态的进程,只要获得处理机(被进程调度选中),即可变为运行状态。【知识模块】 操作系统19 【正确答案】 B【试题解析】 本题考查银行家算法在分配资源时采用安全性检查,从而避免死锁。【知识模块】 操作系统20 【正确答案】 C【试题解析】 进程控制块(PCB)是记录进程有关信息的一块主存,其中包括该进程的中断现场保护区,它是进程存在的唯一标识。【知识模块】 操作系统二、综合应用题41-47 小题,共 70 分。21 【正确答案】 (1)互斥条件。进程竞争的资源必须互斥使用。(2)请求与保持条件。当前已拥有资源的进程,仍能申请新的资源,而当该进程因为新的资源被其他进程占据而被阻塞时,它仍保持自己的

20、资源不释放。(3)不可剥夺条件。进程申请的资源只能在使用完毕时自行释放。(4)循环等待条件。存在一个至少包含两个进程的循环等待链,链中的每个进程都在等待下一个进程所占有的资源。【知识模块】 操作系统22 【正确答案】 begin SR,SM1 ,SM2,SP:semaphore;B1, B2: record;SR:=1;SM1:=0:SM2:=1;SP:=0 ;cobeginprocess readX:record;begin R:(接收来自输入设备上一条记录)X:= 接收的一条记录;wait(SR);B1: =X;signal(SMl):goto R;end;Process moveY:re

21、cord;beginM:wait(SM 1);Y:=B1;Signal(SR)加工 Ywait(SM2):B2: =Y;signal(SP);goto M;end;Process printZ:record;beginP:wait(SP) :Z:=B2:signal(SM2)打印 Zgoto P;end;coend iend:【知识模块】 操作系统23 【正确答案】 例如,用 P、V 操作来实现进程对临界资源互斥使用。此时,只需定义一个信号量 s,其初值1,NuLL ,并在临界区前执行 P(S)操作,而在临界区后执行 V(S)操作。此时 P、V 操作不设计成原语,那么在执行 P、V 操作时进程

22、可以被中断。由于在初始状态下临界资源空闲,故应允许第一个申请临界资源的进程进入临界区使用临界资源,但如果该进程在执行到 P 操作的语句 Svalue 一一后(此时 Svalue 的值为 O)便被另一个进程中断,而那个进程也企图通过执行 P(S)操作进入临界区,则第二个进程也必须执行语句 Svalue 一一,从而将 Svalue 的值为一 1,并由于 Svalue0 而被阻塞,而第一个进程再次获得 CPU 后也同样由于 svalue0 而被阻塞,这就造成了临界资源虽然空闲但进程却申请不到临界资源的情况,也就是说,此时的 P、V 操作已无法满足同步机制的要求。同样,一个执行 P(S)操作的进程被中

23、断后另一进程去执行 V(s)操作,一个执行 V(S)操作的进程被中断后而另一个进程去执行 P(S)或 V(S)操作,都将发生混乱而难以实现进程同步。因此,P 、V 操作必须设计成原语的方式。【知识模块】 操作系统24 【正确答案】 本题考查的是并发进程之间的计算。计算机引入多道程序设计技术主要是为提高处理机的利用率。在多道程序并发的情况下,处理机的利用率呈现出如下的规律: U=1p n 其中,U 为处理机利用率,P 为 IO 繁忙率,n 为并发进程数。据此,对题目给定的数据进行计算,并将结果填入表格中。 当 1 个进程运行时,处理机利用率为 20,这个进程独享该处理机,所以 20的利用率均被使

24、用。在时刻 10:00 到 10:10 期间,进程 0 独享处理机。这期间,进程 0 实际的处理机时间为 10 分钟20=2 分钟。 当 2 个进程运行时,根据公式计算得到处理机利用率为 36,2 个进程共享处理机,所以每个进程的处理机的利用率为18。在时刻 10:10 到 10:15 期间,进程 0 和 1 共享处理机。这期间,进程 0和 1 各自实际的处理机时间为 5362=0 9 分钟。 当 3 个进程运行时,根据公式计算得到处理机利用率为 49,3 个进程共享处理机,所以每个进程的处理机的利用率为 16。在时刻 10:15 到 10:20 期间,进程 0、1 和 2 共享处理机。这期间

25、,进程 0、1 和 2 各自实际的处理机时间为 5493=08 分钟。 当 4 个进程运行时,根据公式计算得到处理机利用率为 59,4 个进程共享处理机,所以每个进程的处理机的利用率为 15。 从时刻 10:20 开始,4 个进程并发。那么,从图中可以看到,进程 0 已经运行了 37 分钟,进程 1 运行了 17 分钟,进程 2 运行了08 分钟,进程 3 刚运行。根据题目给出的每个进程实际占有处理机的时间,可以看出,进程 0 还剩余时间 03 分钟,进程 1 还剩余 13 分钟,进程 2 还剩余12 分钟,进程 3 还剩余 2 分钟,显然,在并发并且平均使用处理机的情况下,进程结束的次序应该

26、为 0、2、1、3。 首先我们计算进程 0 还需要运行多长时间结束。经过刚才计算得知,进程 0 还剩余 03 分钟,那么,在进程 4 并发,处理机利用率为每进程 15的情况下,尚需要时间为 0315=2 分钟,由此得知,到10:22 时,进程 0 结束。 进程 0 退出后再计算剩余进程的剩余时间,进程1,2,3 分别为 10、09、17 分钟,上面已经分析,下一个结束的进程是进程 2,所以,我们计算 0916=56 分钟。注意,此时是 3 个进程并发了,处理机的利用率为每进程 16,此处切记不可疏忽。到 10:276,进程 2 结束。 同理,进程 2 退出以后再计算剩余进程的剩余时间,进程 1

27、、3 分别为 01、08分钟,上面已经分析,下一个结束的进程是进程 1,所以,0118=06 分钟。注意,此时是 2 个进程并发了,处理机的利用率为每进程 18。到 10:282,进程 1 结束。 同样计算,进程 1 退出以后,进程 3 的剩余时间为 07 分钟,计算得出 0720=35 分钟,而此时处理机的利用率为每进程 20。到 10:317,进程 3 结束。 据此,填写下列各个表格和空格。 根据题意计算得到 U1=108=0 2=20 U 2=1-08 2=036=36 U 3=108 3=049=49 U 4=1 一08 4=059=59因此,表格填写如下:甘特图中空白括号填写如下图所

28、示:【知识模块】 操作系统25 【正确答案】 (1)设置信号量 mutex,empty,full初值:mutex=1,empty=10,full=0(2)设置 wait,signal 操作如下:输入进程 输出进程L:读入数据 L:wait(full)wait(empty) wait(mutex)wait(mutex) 从一满缓冲区中取出数据将数据写入一空缓冲区 signal(mutex)signal(mutex) signal(empty)signal(full) 数据输出 【知识模块】 操作系统26 【正确答案】 (1)i+omax(2)当 i=max,P 的输出数据无处存放, i 的输入数

29、据占满磁盘时,死锁。(3)应该增加约束: i+omax,使得输出数据块的长度 o0。【知识模块】 操作系统27 【正确答案】 此题主要考查进程与死锁的相关转换内容。(1)为解决并行所带来的死锁问题,在 wait 操作中引入 AND 条件,其基本思想是将进程在整个运行过程中所需要的所有临界资源一次性地全部分配给进程,用完后一次性释放。(2)解决生产者一消费者问题可描述如下:var mutex,empty,full:semaphore:=1 ,n,0;buffer:array0n1of item ;in,out:integer:=0,0;beginparbeginproducer:beginrep

30、eatproduce an item in nextp;wait(empty);wait(s1,s2,s3,sn);s1,s2,s3 , sn 为执行生产者进程除 empty 外其余的条件wait(mutex);buffer(in):nextp ;in:=(in+1)mod n;signal(mutex);signal(full);signal(s1,s2,s3,sn);until false;endconsumer:beginrepeatwait(full);wait(k1,k2,k3,kn) ;k1,k2,k3,kn 为执行生产者进程除 full 外其余的条件wait(mutex);nex

31、tc:=buffer(out);out:=(out+1)mod n;signal(mutex);signal(empty);signal(k1,k2,k3,kn):consume the item in nextc;until false;endparendend【知识模块】 操作系统28 【正确答案】 此题主要考查进程间共享缓;中区来实现同步的相关内容。int mutex=1int empty=n;int full=0;int in=0;int out=0;main()cobeginsend();obtain():coendsend()while(1)collect data in next

32、pwait(empty):wait(mutex):buffer(in)=nextp;in=(in+1)mod n:signal(mutex):signal(full); sendobtain()while(1)wait(full);wait(mutex):nextc:=buffer(out);out:=(out+1)mod n;signal(mutex);signal(empty):culculate the data in nextc; whileobtain【知识模块】 操作系统29 【正确答案】 此题主要考查进程控制过程中的信号量技术的运用。设初始值为 1 的信号量 cI表示 I 号筷子

33、被拿(I=1 ,2,3,4,2n),其中 n 为自然数。send(I):beginif I mod 2=1 thenP(CI);P(eI 一 1 mod 5);Eat;V(CI 一 1 mod 5);V(CI);elseP(eIl rood 5);P(CI);Eat;V(CI);V(CI1 mod 5);end【知识模块】 操作系统30 【正确答案】 为了实现多个进程对临界资源的互斥访问,必须在临界区前面增加一段用于检查欲访问的临界资源是否正被访问的代码,如果未被访问,该进程便可进入临界区对资源进行访问,并设置正被访问标志;如果正被访问,则本进程不能进入临界区,实现这一功能的代码称为“进入区” 代码;在退出临界区后必须执行“退出区”代码,用于恢复未被访问标志。【知识模块】 操作系统31 【正确答案】 (1)开锁原语:unlock(W):W=0;关锁原语:lock(W);if(W=1)do no_op;W=1;(2)利用开关锁原语实现互斥:vat W:semaphore:=0;beginparbeginprocess:beginrepeatlock(W);critical sectionunlock(W):remainder sectionuntil false;endparend【知识模块】 操作系统

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

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

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