1、全国自考操作系统(进程管理)模拟试卷 5 及答案与解析一、单项选择题1 在操作系统中,JCB 是指 _。(A)作业控制块(B)进程控制块(C)文件控制块(D)程序控制块2 选择作业调度算法考虑的因素之一是_。(A)吞吐率(B)交互性(C)及时性(D)安全可靠3 下列信息中,在 PCB 表中不含有的信息是_。(A)用户名(B)进程标识(C)现场保护区(D)进程优先级4 一个进程被唤醒,其状态变为_。(A)执行态(B)就绪态(C)等待态(D)不能确定5 在 UNIX 系统中,进程映像中可以被其他进程访问的是_。(A)共享内存段(B)静态变量(C)全局变量(D)栈段6 必定会引起进程切换的状态转换是
2、_。(A)一个进程被创建后进入就绪态(B)一个进程从运行态变成阻塞态(C)一个进程从就绪态变成运行态(D)一个进程从等待态变成就绪态7 下面几点措施中,_不属于 UNIX 的动态优先权法。(A)进程在核心态下运行,不进行强迫调度(B)赋予等待不同资源或事件的睡眠进程不同的优先数(C)超级用户进程可以要求系统赋予较高的优先权(D)由时间片轮转法规定各个就绪进程顺次轮流使用处理机8 UNIX 系统中对换程序的主要功能是_。(A)进程映像在盘交换区与内存之间的传送(B)选择一个进程占有处理机(C)设置 runin 和 runout 标志(D)选择一个作业调出系统9 在 UNIX 系统中,如有 n 个
3、进程因等待资源 R 而睡眠,现该资源 R 被释放了,系统将唤醒_。(A)资源 R 睡眠队列中的第一个进程(B)最早因等待资源 R 而睡眠的进程(C)最后因等待资源 R 而睡眠的进程(D)因等待资源 R 而睡眠的全部 n 个进程10 同一进程内的并发线程之间可通过_传递信息。(A)全局变量(B)动态变量(C)函数参数(D)工作区二、填空题11 进程存储器映像由以下几部分组成:_、_、_、_。12 进程状态变化时,_和_都有可能变为就绪态。13 UNIX 系统中确定进程优先数的方法有_ 和_两种。14 创建进程的最主要的思想是_。三、简答题15 为什么在操作系统中要引入进程的概念?仅使用“ 运行中
4、的程序”的术语难道不行吗?16 多级运行队列中对不同级上的进程分配不同的时间片的优点是什么?17 UNIX 系统在什么情况下设置强迫调度标志 runrun?18 一个进程可能由于某种原因进入阻塞或睡眠状态。列举常见的若干个不同类型的原因。19 通过 fork 创建的子进程映像哪些与其父进程不同?20 写出在多线程环境中进程与线程的主要区别。四、判断题21 进程状态就是进程占有 CPU 时的处理机状态。( )(A)正确(B)错误22 就绪状态进程能转变成睡眠状态。( )(A)正确(B)错误23 UNIX 操作系统的调度算法是时间片轮转法。( )(A)正确(B)错误24 进程的调度状态包括用户态和
5、核心态。( )(A)正确(B)错误25 UNIX 的核心函数 wakeup 唤醒睡眠原因为 chan 的进程中优先数最高的进程。( )(A)正确(B)错误全国自考操作系统(进程管理)模拟试卷 5 答案与解析一、单项选择题1 【正确答案】 A【知识模块】 进程管理2 【正确答案】 A【知识模块】 进程管理3 【正确答案】 A【知识模块】 进程管理4 【正确答案】 B【知识模块】 进程管理5 【正确答案】 A【试题解析】 全局变量、栈段、静态变量是进程私有的、受保护的空间,不能被其他进程共享,包括其父进程和子进程。【知识模块】 进程管理6 【正确答案】 B【知识模块】 进程管理7 【正确答案】 D
6、【知识模块】 进程管理8 【正确答案】 A【知识模块】 进程管理9 【正确答案】 D【知识模块】 进程管理10 【正确答案】 A【知识模块】 进程管理二、填空题11 【正确答案】 进程控制块、进程执行的程序(code)、进程执行时所用的数据、进程执行时使用的工作区【知识模块】 进程管理12 【正确答案】 运行态、阻塞状态(或封锁、睡眠状态)【知识模块】 进程管理13 【正确答案】 设置方法、计算方法【知识模块】 进程管理14 【正确答案】 子进程复制父进程的图像【知识模块】 进程管理三、简答题15 【正确答案】 在早期的单道程序的运行环境中,用户编写的程序中所描述的运行动作与它在计算机中的执行
7、过程是严格一一对应的,中间不会穿插任何与程序本身无关的活动。在这样的系统中,用同一数据集运行同一程序,计算机执行的动作序列完全相同,最后所获得的结果也相同,这就是程序的封闭性和可再现性。为了充分利用计算机系统的硬软件资源,现代计算机系统普遍采用了多道程序设计技术。系统中的硬软件资源不再为单个用户程序所垄断,而由若干道程序共同使用。一个程序也不能自始至终地运行到底,中间会穿插很多其他的活动,这些活动间存在着相互依赖和相互制约的关系,程序与执行活动也不是一一对应的。由程序并发执行所产生的一系列新的动态的特征,已不能由程序这种静态的概念来描述。为此,现代操作系统引入了进程的概念。在多进程并发执行的环
8、境中,程序与进程也不是一一对应的,一个含有创建子进程的程序在执行时可以产生多个进程,每一个进程都能被独立调度和执行;一个进程还能通过映像的改换而执行其他程序,从而又能创建多个进程,完成不同的任务;这些进程最后会在不同的时间终止运行,故单单使用“运行中的程序” 的术语完全不能描述这些动态的特征,故操作系统中要引入进程的概念。【知识模块】 进程管理16 【正确答案】 为了适应不同进程的运行特点,在系统中可设置时间片大小不同的 n 个队列,如时间片长度可分为 10、50 和 200ms 等。调度程序可将运行时间短、交互性强或 IO 繁忙的进程安排在时间片小的队列,这样可以提高系统的响应速度和减少周转
9、时间,而对于需要连续占用处理机的进程可安排在时间片长的队列中,这样可减少进程切换的开销。一个进程处于哪一个时间片的队列,可以在运行时根据它的先前运行状况加以调整。假定一个进程开始处于时间片为 10ms 的队列中,如该进程运行了 10ms 后还未结束或还未进入阻塞状态,那么就可将其转入下一个时间片较长的队列。这样,短进程可以较快地获得处理机,而长进程一旦获得了处理机也可运行较长时间,以免频繁调度。【知识模块】 进程管理17 【正确答案】 系统发现了可能更适合占用处理机的进程,设置了强迫调度标志runrun。属于该类的主要情况有:(1)在唤醒睡眠进程时,发现该进程的优先数小于现运行进程;(2)进程
10、由系统调用返回用户态时,重新计算自己的优先数,发现自己的优先数上升了,要选择可能更合适的进程运行;(3)在时钟中断程序中每一秒对所有优先数大于某一值的进程(一般原先在用户态下运行)重新计算优先数,通常总要设置 runrun 标志。在 runrun 标志设置后,进行强迫调度的具体时机是在中断或陷人处理末尾。【知识模块】 进程管理18 【正确答案】 使一个进程进入阻塞或睡眠状态的原因有以下几种:(1)请求系统服务或请求分配资源时得不到满足,进程暂时不能继续执行下去。(2)同步等待 IO 的完成。(3)进程问互相配合共同完成一个任务时,一个进程往往要同步等待另一进程完成某一阶段的工作后,才能继续执行
11、下去。(4)在利用消息实现进程间控制时,一个进程在等待某一进程发消息时,也进入了阻塞状态。【知识模块】 进程管理19 【正确答案】 通过 fork 创建的子进程映像与其父进程不同的有:fork 的返回值。进程 ID。两个进程具有不同的父进程 ID,子进程的父进程 ID 是创建它的进程的 ID,而父进程的父进程 ID 则不变。子进程的 tins_utime、tms_stime、trs_cutime 以及 trs_ustime 均被设置为 0。父进程设置的文件锁不会被子进程继承。子进程的未处理的闹钟(alarm) 被清除。子进程的未处理信号集设置为空集。【知识模块】 进程管理20 【正确答案】 进
12、程与线程的主要区别如下:(1)调度方面。在传统的操作系统中,拥有资源和独立调度的基本单位都是进程。而在引入线程的操作系统中,线程是独立调度的基本单位,进程是资源拥有的基本单位。在同一进程中,线程的切换不会引起进程的切换。在不同的进程中进行线程切换,将会引起进程切换。(2)拥有资源。不论是传统操作系统还是设有线程的操作系统,进程都是拥有资源的基本单位,而线程不拥有系统资源(也有一点必不可少的函数调用时的工作区资源),但线程可以访问其隶属进程的系统资源。(3)并发性。在引入线程的操作系统中,不仅进程之间可以并发执行,而且同一进程内的多个线程之间也可以并发执行。(4)系统开销。由于创建进程或撤销进程
13、时,系统都要为之分配或回收资源,操作系统所付出的开销远大于创建或撤销线程时的开销。进程切换的开销也远远大于线程切换的开销。【知识模块】 进程管理四、判断题21 【正确答案】 B【知识模块】 进程管理22 【正确答案】 B【试题解析】 就绪状态进程如果不占有 CPU,不执行一条指令,就不能对自己的映像做任何改变,所以不会因等待某一资源或事件进入睡眠状态。只有在占有CPU 执行了一条指令( 如 IO)后,才有可能因资源得不到满足等原因转变成睡眠状态。【知识模块】 进程管理23 【正确答案】 B【试题解析】 UNIX 操作系统的调度算法不是简单的时间片轮转法,而是采用了多级反馈队列调度算法,不同队列的时间片大小不同,同一个队列中采用的是时间片轮转法。【知识模块】 进程管理24 【正确答案】 B【试题解析】 进程的调度状态有运行态、就绪态、阻塞态等,而用户态和核心态是进程是否能执行操作系统特权指令的处理机状态,这和进程的调度状态不是一个概念。【知识模块】 进程管理25 【正确答案】 B【试题解析】 wakeup 函数唤醒睡眠原因为 chan 的所有进程。【知识模块】 进程管理