跳转至

Relax1000 操作系统 · 第2章 进程管理 · 题目

第2章 进程管理

本章 131 题;题目册印刷页 127–151。

Q1

以下对进程的描述中,错误的是( )。

  • A.进程是动态的概念
  • B.进程执行需要 CPU
  • C.进程是有生命周期的
  • D.进程是指令的集合

查看解析

Q2

下列关于进程的说法中,正确的是( )。

  • A.内存中的程序段就是进程
  • B.并行的进程之间都存在着相互依赖和制约的关系
  • C.进程的并发执行可能导致程序的结果与进程进行速度有关
  • D.进程的四大特征为动态性、并发性、共享性和异步性

查看解析

Q3

下列关于线程的叙述中,正确的是( )。

  • A.一个进程只有一个线程
  • B.线程之间的通信需要依靠操作系统内核实现
  • C.线程只拥有少量私有资源,所以不能独立被调度
  • D.属于不同进程的线程,它们的地址空间相互独立

查看解析

Q4

进程控制块(PCB)中不包含的信息是( )。

  • A.进程标识符(PID)
  • B.进程状态
  • C.程序源代码
  • D.内存管理信息

查看解析

Q5

下列选项中,可能导致创建新进程的操作有( )项。
I. 用户登陆
II. 作业调度
III. 操作系统提供服务
IV.设备分配 V. 批处理作业初始化
VI. 文件创建

  • A.2 种
  • B.3 种
  • C.4 种
  • D.5 种

查看解析

审计旁注(非原文):改解析

exec 替换当前进程映像,不创建新进程。

Q6

在单处理机系统中,当一个进程由执行态变为阻塞态时,操作系统执行的操作中不可能包括( )。

  • A.将当前处理器的程序计数器(PC)和程序状态字(PSW)内容保存到该进程的 PCB 中
  • B.将该进程的 PCB 从就绪队列移出,并插入到对应的等待队列中
  • C.启动进程调度程序,按照调度算法选择一个新的进程投入运行
  • D.将控制权转交给操作系统的中断/异常处理程序

查看解析

Q7

下列选项中,会导致进程从阻塞态变为就绪态的事件是( )。

  • A.执行 P (wait) 操作
  • B.启动 I/O 操作
  • C.I/O 操作结束
  • D.当前时间片到期

查看解析

Q8

假设系统支持内核级多线程。在进程 P1 的线程 T1 与进程 P2 的线程 T2 之间发生 CPU 调度切换时,操作系统必须执行的操作不包括( )。

  • A.将 T1 的通用寄存器内容保存到 T1 的线程控制块(TCB)中
  • B.更新页表基址寄存器,使其指向 P2 的页表基址
  • C.必须清空 TLB(快表)和 Cache(高速缓存)中的所有数据以保证地址转换正确
  • D.切换内核栈指针,使其指向 T2 的内核栈

查看解析

Q9

进程 P 在执行过程中,下列事件中可能导致其阻塞的是( )。
I. 进程 P 执行信号量的 P 操作(wait())且信号量值小于等于 0
II. 进程 P 申请 I/O 设备
III. 进程 P 的时间片用完

  • A.I
  • B.Ⅰ、Ⅱ
  • C.Ⅱ、Ⅲ
  • D.Ⅰ、Ⅱ、Ⅲ

查看解析

Q10

事件或操作中,会导致当前执行进程经历“执行态 → 阻塞态 → 就绪态 → 执行态”这一完整状态循环的是( )。

  • A.进程在运行过程中发生了时钟中断
  • B.进程在运行过程中发生了“缺页异常”,且当前内存有空闲页框
  • C.进程在运行过程中,被新创建的高优先级的进程抢占了 CPU
  • D.进程成功调用了系统调用 getpid() 获取当前进程的 PID

查看解析

Q11

操作系统中,就绪队列通常只有一个,而阻塞队列可以有多个,这是因为( )。

  • A.阻塞态进程数量远多于就绪态进程
  • B.阻塞态进程等待的原因多种多样
  • C.就绪态进程只需要等待 CPU 资源
  • D.B 和 C 都是原因

查看解析

Q12

下列关于父子进程的说法中,正确的有( )。
I. 父进程和子进程内存空间相互独立
II. 子进程先于父进程终止,子进程就会变成孤儿进程
III. 父进程先于子进程终止,子进程就会变成僵尸进程
IV. 父进程与子进程不能同时使用同一临界资源

  • A.I、IV
  • B.II、III
  • C.I、II、III
  • D.II、III、IV

查看解析

审计旁注(非原文):改解析

孤儿进程被收养后继续正常运行,不是被收养后最终终止。

Q13

在采用页式虚拟存储管理的操作系统中,当发生进程切换时,为了确保新调度的进程能够正确地在其独立的地址空间中运行,操作系统必须更新处理器的某些关键寄存器。下列哪些寄存器的内容一定需要根据新进程的 PCB 进行更新?( )。
I. 指向当前页表基址的寄存器
II. 通用数据寄存器
III. 程序计数器
IV. 栈顶指针寄存器

  • A.I、III
  • B.II、IV
  • C.I、III、IV
  • D.全部

查看解析

Q14

下列关于中断响应与进程切换的上下文切换区别的叙述中,错误的是( )。

  • A.中断响应保存和恢复上下文是分开进行的,而进程切换的上下文保存与恢复是连续进行的
  • B.中断响应可能发生特权级切换,进程切换全程在内核态下进行
  • C.中断响应不涉及地址空间切换,进程切换涉及地址空间切换
  • D.中断响应维护的上下文一定是用户上下文,进程切换维护的一定是内核态下的上下文

查看解析

Q15

在采用页式虚拟存储管理的操作系统中,进程 P1 在中断处理结束准备返回用户态的路径上触发调度,随后发生的进程切换中,哪些寄存器一定需要在切换时保存当前值?( )。
I. 页表基址寄存器
II. 栈顶指针寄存器
III.程序计数器 IV 栈基址寄存器 V. 通用寄存器

  • A.I、II、III、V
  • B.II、III、IV、V
  • C.II、III、V
  • D.全部

查看解析

Q16

以下关于进程切换的说法中,正确的是( )。

  • A.进程切换发生在用户态,从一个进程的运行态切换到另一个进程的运行态
  • B.中断/异常(系统调用)的发生是进程切换的前提
  • C.P0 进程切换为 P1 进程的过程中,操作系统需要保存的信息有 P1 进程的断点,现场,堆栈中的数据,进程级打开文件表,P0 进程的页表基址等信息
  • D.中断响应与进程切换保存和恢复上下文都是连续进行的

查看解析

Q17

引入了挂起态的操作系统中,下列关于状态转换的叙述中,错误的是( )。

  • A.处于就绪挂起状态的进程,在内存释放出足够空间时可被对换进内存,转换为就绪态
  • B.进程从执行态直接变为就绪挂起态,通常是由于系统内存严重不足或收到高优先级的挂起信号
  • C.处于阻塞挂起状态的进程,在其等待的 I/O 事件完成后,会自动转换为就绪态
  • D.挂起状态的本质是把进程的映像(通常不含 PCB)从内存调出到外存,以缓解内存紧张

查看解析

Q18

关于进程的状态和状态转换,以下哪一种说法是正确的( )。

  • A.进程由创建而产生,由调度而执行,因得不到资源而挂起,以及由撤销而消亡
  • B.新进程的创建必然引起进程的调度
  • C.进程在运行期间,不断地从一个状态转换到另一个状态,它可以多次处于就绪状态和执行状态,也可多次处于阻塞状态,但可能排在不同的阻塞队列
  • D.正在执行的进程,若时间片用完,会进入阻塞状态

查看解析

Q19

下列关于进程的状态变化,不可能直接发生的是( )。
I. 就绪态→执行态
II. 就绪态→阻塞态
III. 阻塞态→执行态
IV. 阻塞态→就绪态

  • A.I、IV
  • B.Ⅱ
  • C.Ⅱ、Ⅲ
  • D.Ⅲ

查看解析

Q20

下列关于进程上下文切换的叙述中,错误的是( )。

  • A.进程上下文指进程的代码、数据以及支持进程执行的所有运行环境
  • B.进程上下文切换机制实现了不同进程在一个处理器中交替运行的功能
  • C.进程上下文切换过程中必须保存换下进程在切换处的程序计数器(PC)的值
  • D.进程上下文切换过程中必须将换下进程的代码和数据从主存存到磁盘上

查看解析

Q21

下列关于进程状态的转换的说法中,错误的是( )。

  • A.进程状态的转换和对资源的需求都会记录在进程控制块中,进程结束时进程控制块需要回收
  • B.信号量的 signal()和 wait()操作其实是对系统调用的封装,会导致进程在运行态、就绪态和阻塞态之间转换
  • C.进程调度时,高优先级的进程抢占低优先级进程的 CPU 后,低优先级进程的状态转为就绪态
  • D.成功执行完创建原语后,进程的状态转为创建态

查看解析

Q22

某系统支持用户级线程和内核级线程。关于进程和线程的状态转换,下列说法错误的是( )。

  • A.若一个用户级线程执行了阻塞型系统调用,会导致该进程及其包含的所有用户级线程均被阻塞
  • B.若一个内核级线程发生缺页异常而阻塞,同进程内的其他内核级线程依然可以被调度执行
  • C.当进程的时间片用完时,该进程包含的所有内核级线程的状态均由执行态变为就绪态
  • D.若进程被操作系统挂起,则其包含的所有内核级线程均无法参与 CPU 调度

查看解析

Q23

在支持多线程的操作系统中,有两种实现线程的方式:内核支持的线程和用户级线程。以下哪种说法是错误的?( )。

  • A.用户级线程的上下文切换代价相对较小
  • B.内核支持的线程通常需要更多的内存空间来存储线程控制块和上下文信息,而用户级线程只需要存储少量的信息
  • C.内核支持的线程能够实现更好的多核性能和负载均衡
  • D.用户级线程的调度和同步可以更快速和灵活,并且公平性更好

查看解析

Q24

下面关于内核级线程的描述中,正确的有( )。
I. 相较于进程,线程切换的系统开销更小
II. 需要操作系统内核支持
III. 线程阻塞会导致该进程的其他线程一同阻塞
IV. 在多处理器系统上,同一进程的多个线程可以并行执行

  • A.I、II
  • B.Ⅰ、Ⅱ、Ⅲ
  • C.Ⅰ、Ⅱ、Ⅳ
  • D.Ⅰ、Ⅱ、Ⅲ、Ⅳ

查看解析

Q25

在支持多线程的操作系统中,关于线程上下文切换的开销,下列叙述错误的是( )。

  • A.同一进程内的两个用户级线程之间切换,不需要跨越用户态到内核态的模式切换
  • B.同一进程内的两个内核级线程之间切换,其开销小于不同进程间的内核级线程切换
  • C.从内核级线程A 切换到同一进程的内核级线程 B 时,CPU 不需要刷新快表(TLB)
  • D.用户级线程由于不需要内核支持,因此其在线程切换时完全不需要保存寄存器上下文

查看解析

Q26

下列关于用户级线程优缺点的描述中,正确的有( )。
I. 操作系统的调度单位依旧是进程
II. 线程的调度由用户空间的线程库完成,而非操作系统内核
III. 支持不同应用程序采用不同的调度算法
IV. 在多处理器系统上,同一进程的多个线程可以实现并行执行

  • A.I、IV
  • B.I、II、III
  • C.I、III、IV
  • D.全部

查看解析

Q27

设系统中有 4 个 CPU 核心。一个进程采用了“多对多”的线程模型,该进程在用户态下创建了 6 个用户级线程,并被映射到 3 个内核级线程上。在某个时刻,有 2 个用户级线程因为执行了阻塞系统调用而进入等待状态,该进程中最多能有多少个用户级线程同时在不同的 CPU 核心上并发运行?

  • A.1
  • B.2
  • C.3
  • D.4

查看解析

Q28

关于线程控制块(TCB)的管理边界,下列说法正确的是( )。

  • A.操作系统内核为每个用户级线程和内核级线程都分配独立的 TCB
  • B.内核级线程的 TCB 由内核创建与维护,包含寄存器值、调度状态与内核栈指针等
  • C.用户级线程的 TCB 保存在内核空间,以便操作系统直接参与调度决策
  • D.进程控制块(PCB)与 TCB 相互独立,PCB 中不保存任何线程级状态信息

查看解析

Q29

将内核支持线程(kernel supported thread,KST)用户级线程(user level thread,ULT)进行组合,可以实现组合方式的 ULT/KST 线程。下列关于多线程模型,说法错误的是( )。

  • A.组合方式中,一些 KST 对应多个 ULT,这是 ULT通过时分多路复用 KST 来实现的
  • B.多对一模型与一对一模型相比,前者的线程管理的开销小,效率高,后者的并发性能更好
  • C.多对一模型中多个线程不能同时在多个处理机上运行。一对一模型中允许多个线程并行地运行在多处理机系统上
  • D.多对多模型中,KST 的数目可以比 ULT数少,也可以多于或等于 ULT数量

查看解析

Q30

关于用户级线程(ULT)和内核级线程(KLT)的实现机制,下列叙述错误的是( )。

  • A.采用 ULT 时,线程的创建、撤销和同步都不需要通过系统调用陷入内核
  • B.采用 KLT 时,操作系统内核能够感知到单个线程的存在并为其分配 CPU 时间片
  • C.无论采用 ULT 还是 KLT,同一进程下的各个线程都拥有各自独立的 TCB 和内核栈
  • D.无论采用 ULT 还是 KLT,同一进程下的各个线程都共享该进程的全局变量和堆空间

查看解析

Q31

已知某操作系统中每创建一个用户线程都需要创建一个对应的内核线程,则在某进程下创建新的用户线程时,需要新分配的资源包括( )。
I. 页表
II. 线程控制块
III. 用户态堆栈
IV. 内核态堆栈

  • A.II、III
  • B.I、II、III
  • C.II、III、IV
  • D.全部

查看解析

Q32

下列关于进程与线程的说法中,正确的有( )。
I. 进程总是资源分配的基本单位,线程只拥有少量资源、无法脱离进程运行
II. 线程是一部分程序段,多个线程构成一个进程
III. 线程之间的通信主要利用管道、共享存储、消息传递等机制
IV. 线程之间可以共享进程的地址空间,但无法共享各线程之间的栈空间

  • A.I、II
  • B.Ⅰ、Ⅳ
  • C.Ⅱ、Ⅲ、Ⅳ
  • D.Ⅰ、Ⅱ、Ⅲ、Ⅳ

查看解析

Q33

在现代多线程操作系统中,一个进程 P 首先创建了一个主线程 T0。线程 T0 在执行过程中通过系统调用打开了一个网络套接字,并获得了对应的套接字描述符 sock_fd。随后,线程 T0 创建了两个新的子线程 Ta和 Tb 来分别处理该套接字上的数据接收和发送。下列各项中,哪些是线程 Ta和 Tb 可以共享的资源或信息?( )。
I. 进程 P 的全局变量
II. 线程 T0 的局部变量存储区域
III. 套接字描述符 sock_fd
IV. 线程 Ta和 Tb 各自独立的程序计数器

  • A.I、III
  • B.I、IV
  • C.I、III、IV
  • D.全部

查看解析

Q34

PCB 指的是进程控制块,也称为进程描述符,是操作系统中用来管理进程的一种数据结构。PCB 主要包括( )。
I.用户标识符
II.进程优先级
III.通用寄存器值
IV.文件缓冲区 V.代码段指针

  • A.I、II、III、IV
  • B.I、II、IV、V
  • C.I、III、IV、V
  • D.I、II、III、V

查看解析

Q35

进程控制块是进程的重要组成部分,下列内容中,PCB 中不应该包括( )。
I.进程标识符(PID)
Ⅱ.处理器状态信息
Ⅲ.进程状态
Ⅳ.互斥信号量 V.进程优先级
Ⅵ.进程执行的代码

  • A.IV
  • B.仅Ⅳ、Ⅵ
  • C.Ⅱ、Ⅳ、Ⅵ
  • D.Ⅱ、Ⅲ、Ⅳ、Ⅵ

查看解析

Q36

下列关于 PCB 的组织方式的说法中,错误的是( )。

  • A.线性方式将所有 PCB 存放在一个连续的内存区域(如数组)中,其优点是实现简单,但在需要频繁插入和删除 PCB 时效率较低
  • B.链接方式通过指针将 PCB 连接起来,可以方便地根据进程状态(如就绪、阻塞)将 PCB 组织成不同的队列,适用于进程状态频繁变化的系统
  • C.索引方式为所有 PCB 建立一个统一的索引表,通过进程 ID 直接计算索引即可快速定位 PCB,因此查找任何 PCB 的效率都非常高且固定
  • D.链接方式相比线性方式,在创建和撤销进程时,对 PCB 的插入和删除操作通常更灵活高效,因为不需要移动大量数据

查看解析

Q37

下列关于线程控制块(TCB)的叙述中,哪一项是不正确的?( )。

  • A.TCB 中包含了线程的唯一标识符、程序计数器和一组寄存器的内容
  • B.同一进程中的所有线程共享该进程的地址空间,因此 TCB中不包含指向该线程私有堆栈的指针
  • C.线程的状态(如就绪、运行、阻塞)及其调度优先级通常记录在 TCB 中
  • D.内核级线程的 TCB 由操作系统内核创建和管理,而用户级线程的 TCB 则由用户空间的线程库创建和管理。

查看解析

Q38

下列关于共享内存通信的叙述中,错误的是( )。

  • A.共享内存原理就是需要通信的进程分别拿出一块虚拟地址空间映射到相同的物理内存中
  • B.共享内存位于进程的用户空间, 可以直接读写这片内存区域
  • C.需要通信的进程可以直接在用户态下创建共享内存
  • D.共享内存(属于临界资源)本身不提供同步,需结合信号量、互斥锁等机制避免竞态条件

查看解析

审计旁注(非原文):改解析

共享内存不要求物理连续;分页系统可映射同一组页框。

Q39

在段页式存储管理系统中,进程 R和 S共享数据段 data,若进程 R和 S都想访问该 data段里的某个内存单元 x,若 x在 R和 S的段表中的段号分别为 p1和 p2,x所在页对应的页框号分别为 f1和 f2,则下列叙述中,正确的是( )。

  • A.p1 和 p2 一定相等,f1 和 f2 一定相等
  • B.p1 和 p2 一定相等,f1 和 f2 不一定相等
  • C.p1 和 p2 不一定相等,f1 和 f2 一定相等
  • D.p1 和 p2 不一定相等,f1 和 f2 不一定相等

查看解析

Q40

下列关于进程虚拟地址空间的说法中,错误的是( )。

  • A.进程虚拟地址空间分为内核空间和用户空间,当 CPU 处于用户态时只能访问用户空间,处于内核态时可以访问内核空间和用户空间
  • B.每个进程的虚拟地址空间中,内核空间部分映射到相同的物理内存区域,即操作系统的代码和全局数据
  • C.每个进程都共享内核空间的同一份内核栈,用于保存内核处理中断/异常(系统调用)时的局部变量,返回地址等信息
  • D.当进程想要访问内核空间时,可以通过系统调用进入内核态

查看解析

Q41

下列关于管道(Pipe)通信的叙述中,错误的是( )。

  • A.管道通常用于具有亲缘关系的进程(如父子进程)之间进行单向数据流通信。
  • B.管道的实质是在内存中开辟的一个固定大小的缓冲区,其容量通常有限,并非无限大
  • C.当写进程向已满的管道中写入数据时,或者读进程从空管道中读取数据时,对应的进程将会被阻塞
  • D.管道位于进程的用户空间之中,可直接在用户态下读管道

查看解析

Q42

下列关于使用硬件原子指令(如 TSL、Swap)实现进程互斥机制的叙述中,错误的是( )。

  • A.硬件方法适用于任意数目的进程访问临界区
  • B.硬件方法在单处理机和多处理机系统中均适用
  • C.硬件方法由于其原子性,满足“让权等待”同步准则
  • D.硬件方法可能会导致某些等待进程出现“饥饿”现象

查看解析

Q43

两个进程协作完成一个任务,不能实现数据传递的手段是( )。

  • A.程序段的全局变量
  • B.共享数据结构
  • C.共享存储区
  • D.管道机制

查看解析

Q44

下列关于管道(Pipe)通信的叙述中,正确的是( )。

  • A.管道与共享内存这两种 IPC 机制都自己实现了同步/互斥机制,使用的时候用户不需要考虑用信号量/互斥锁等机制保证同步互斥
  • B.管道是存放在磁盘中的一种“特殊的文件”,和文件一样,支持定位到某个具体位置进行读或写操作
  • C.在操作系统中,管道这个内核数据结构包含有互斥锁、两个等待队列、读/写指针等元素
  • D.对管道的读操作需要互斥进行,因为读完数据就消失了,因此同一时刻只能有一个读进程对管道执行读操作;但是对管道进行写操作不需要互斥进行,支持多个写进程同时写管道

查看解析

Q45

下列关于管道(Pipe)通信的叙述中,正确的是( )。

  • A.在利用管道文件通信时,可以使用操作系统为文件提供的一套系统调用接口,如 open()、write()、read()、close()等
  • B.当所有引用管道的文件描述符都被关闭后,管道内未被读取完的数据会被持久化到磁盘之中
  • C.父进程在创建了管道之后又创建了两个子进程,子进程之间利用管道进行通信,当父进程被撤销时,这两个子进程之间的管道也被内核撤销
  • D.普通管道(匿名管道)既可以用于具有亲缘关系的进程间通信,也能实现无关进程通信

查看解析

Q46

管道通信是以( )为单位进行写入和读出的。

  • A.消息为单位
  • B.自然字符流
  • C.文件
  • D.报文

查看解析

Q47

下列关于管道通信的说法中,正确的是( )。

  • A.多个进程利用管道进行通信。若所有写进程都已关闭了该管道的写端(写引用计数变为 0),而读进程继续对该管道执行 read() 系统调用,则此时 read() 调用将被阻塞,直到有新的写进程重新打开该管道
  • B.管道内的数据遵循“后进先出”的原则,最新写入管道的数据会最先被读进程读取
  • C.管道通过 mutex 互斥锁确保同一时刻只有一个进程可以写管道,但多个读进程可以同时从管道中读取数据,因为读操作不会修改缓冲区
  • D.管道通信是半双工通信,若父子进程需要进行全双工(双向)通信,通常需要创建两个独立的管道

查看解析

Q48

信号(Signal)是 UNIX 及类 UNIX 系统中一种重要的异步进程间通信方式。下列关于信号机制的叙述中,错误的是( )。

  • A.信号可以由一个进程发送给另一个进程,也可以由内核发送给某个进程,甚至进程也可以给自身发信号
  • B.进程接收到信号后,可以忽略该信号、执行系统默认操作或执行用户自定义的处理函数
  • C.信号是一种轻量级的通信方式,适合用于传递大量复杂的数据结构
  • D.某些特定信号具有特殊含义,其默认行为不能被用户进程捕获或忽略

查看解析

Q49

下列进程间通信机制中,通过读写一个 FIFO 的特殊文件进行通信的方式是( )。

  • A.共享存储
  • B.信号量
  • C.消息缓冲
  • D.管道

查看解析

Q50

在一个操作系统中,有 3 个进程 P1、P2、P3 需要进行进程间通信。P1 需要将少量字节流数据传递给P2,然后P2再将少量字节流数据传递给P3。以下哪种进程间通信机制最适合这个需求?( )。

  • A.管道
  • B.消息队列
  • C.共享内存
  • D.信号量

查看解析

Q51

进程间通信(IPC)是实现多任务协作的关键机制。关于共享内存、消息传递和管道(Pipe)三种通信方式的特点,下列说法正确的是( )。

  • A.共享内存由于不需要通过操作系统内核进行频繁的数据拷贝,因而在大容量、高频次的数据交换中效率最高
  • B.消息传递通过操作系统原语(如 Send/Receive)实现,数据在用户空间完成传递,无需内核干预
  • C.管道(Pipe)在内核中表现为一个环形缓冲区,支持进程间的双向并发无序通信
  • D.共享内存和管道由于直接操作内存,本身都自带完善的同步与互斥机制,无需额外加锁

查看解析

Q52

下列关于进程通信的叙述中,正确的有( )。
I. PV 操作(信号量)、管程也可用于进程通信
II. 共享内存是速度最快的通信方式
III. 消息传递是当前应用最广泛的通信方式
IV. 信号通信其实是一种软件中断

  • A.I、II、III
  • B.II、III、IV
  • C.I、III、IV
  • D.全部

查看解析

Q53

下列有关基于时间片的进程调度的叙述中,错误的是( )。

  • A.时间片的大小固定不变,一旦设定,在操作系统运行期间不能动态调整。
  • B.一个进程时间片用完,若进程尚未完成,它会从执行态转换为就绪态,并排到就绪队列末尾。
  • C.时钟中断是实现时间片轮转调度的关键机制,用于在时间片结束时剥夺当前进程的 CPU使用权。
  • D.时间片设置过长,会导致时间片轮转算法退化为先来先服务算法,不利于短作业和交互式用户的及时响应。

查看解析

Q54

非抢占调度方式下,( )可能会引起进程的调度。

  • A.一个新进程被创建
  • B.进程发起 I/O
  • C.磁盘的 DMA 传输完成
  • D.有新的 I/O 设备就绪

查看解析

Q55

非抢占调度方式下,若不考虑进程执行 yield 系统调用主动释放处理机资源,那么下面哪种进程状态转换是不可能发生的?( )。

  • A.运行态 → 阻塞态
  • B.运行态 → 就绪态
  • C.运行态 → 退出态
  • D.就绪态 → 运行态

查看解析

Q56

下列关于处理机调度目标的说法中,错误的是( )。

  • A.批处理操作系统主要目标是提高系统吞吐量和资源利用率同时尽可能缩短作业平均周转时间
  • B.分时操作系统的核心目标是保证用户请求的快速响应和提供良好的人机交互体验,保障公平
  • C.实时操作系统(硬实时)的首要目标是确保任务在严格截止时间内完成,保证系统可预测性
  • D.不同类型的操作系统因其应用场景和设计目标不同,其处理器调度算法所侧重的目标也有所差异。这些目标之间可以相互协调,不存在矛盾

查看解析

Q57

设计调度算法时,应该考虑的指标包括( )。
I. 公平性
II. 资源利用率
III. 互斥性
IV. 平均周转时间

  • A.I、II
  • B.I、II、IV
  • C.II、III、IV
  • D.全部

查看解析

Q58

某单处理器多进程系统中有多个就绪态进程,下列选项不属于进程调度程序执行的时机有( )。
I. 进程时间片用完
II. 正在执行系统调用服务例程
III. 处理完 I/O 中断请求
IV. 进程处于内核临界区V. 在异常处理程序执行结束并准备返回用户态时
VI. 当前进程 fork()一个子进程

  • A.II、IV、V
  • B.IV
  • C.II
  • D.I、III、V

查看解析

Q59

下列关于闲逛进程的说法中,错误的是( )。

  • A.闲逛进程的优先级通常设置为最低,一旦有其他进程需要 CPU 资源,闲逛进程会立即让出CPU,让其他进程执行
  • B.大多数情况下,闲逛进程仅执行一个空循环,不执行任何实际操作
  • C.闲逛进程一般来说运行在用户态下
  • D.闲逛进程的进程转换只有运行态→就绪态和就绪态→运行态

查看解析

Q60

高响应比优先的进程调度算法综合考虑了进程的等待时间和计算时间,响应比的定义是( )。

  • A.进程周转时间与等待时间之比
  • B.进程周转时间与要求服务时间之比
  • C.进程等待时间与要求服务时间之比
  • D.要求服务时间与等待时间之比

查看解析

Q61

下列选项中,不应降低进程优先级的时机是( )。

  • A.进程在一次调度中已执行了较长的时间,但仍未完成
  • B.进程因频繁发生缺页中断而被系统判定为“抖动”状态
  • C.进程是一个 I/O 密集型任务,在完成短暂的 CPU 执行后主动请求 I/O 操作
  • D.在多级反馈队列调度算法中,进程在一个较高优先级队列中用完了其分配的时间片

查看解析

Q62

关于多级反馈队列(MLFQ)调度算法,为了兼顾各类进程并优化系统性能,下列说法中错误的是( )。

  • A.为了优化交互式进程的响应时间,MLFQ 通常将时间片较小、优先级较高的队列分配给 I/O 密集型短进程
  • B.若一个进程在低优先级队列中等待时间过长,系统将其提升到高优先级队列以防饥饿
  • C.当进程因发起 I/O 请求进入阻塞态,I/O 完成后重新进入就绪态时,必须从最低优先级队列重新开始调度
  • D.MLFQ 算法不需要事先估计进程的执行时间,具有较好的自适应性,是目前通用操作系统的主流算法基础

查看解析

Q63

下列关于时间片轮转调度算法及其实现基础的叙述中,说法正确的有( )。
I. 时间片的大小对系统性能有显著影响,若时间片过小,会导致过于频繁的进程上下文切换,从而增大系统开销。
II. 实现时间片轮转调度必须依赖硬件定时器(时钟)产生的中断,以便在时间片结束时剥夺当前进程的 CPU,并触发调度程序。
III. 当一个正在执行的进程其时间片用完后, 其状态将从执行态转变为就绪态。
IV. 操作系统内核需要维护一个就绪队列来存放所有等待 CPU 的进程,并通常使用先进先出(FIFO)的策略来选择下一个获得时间片的进程。

  • A.I、II
  • B.I、II、IV
  • C.II、III、IV
  • D.全部

查看解析

审计旁注(非原文):改解析

进程完成后进入终止态,不先回就绪队列等待再次调度。

Q64

下列选项中,能够引起或允许进程调度的有( )。
I. 当一个正在运行的进程执行完毕或因不可恢复的错误而终止时。
II. 当一个正在运行的进程执行了 P 操作导致其因资源不足而被阻塞时。
III. 在抢占式调度策略下,当一个更高优先级的进程从阻塞态变为就绪态时。
IV. 进程在执行一段禁止中断的内核临界区代码完毕,即将返回用户态之前。

  • A.I、II
  • B.III、IV
  • C.I、II、III
  • D.全部

查看解析

Q65

下列调度算法中,不宜设计为抢占式调度的是( )。

  • A.时间片轮转
  • B.优先级
  • C.高响应比优先
  • D.多级反馈队列调度算法

查看解析

Q66

下列选项中,不应该提高进程优先级的场合是( )。

  • A.进程发生“饥饿”现象
  • B.用户需要一个进程在规定时间内完成
  • C.进程等待的 I/O 操作完成,进入就绪队列
  • D.进程时间片耗尽

查看解析

Q67

下列关于调度算法的叙述中,错误的是( )。

  • A.时间片轮转算法有利于人机交互
  • B.抢占式调度算法一定可以避免饥饿现象
  • C.多级反馈队列调度算法可以较好的满足各类型进程
  • D.先来先服务不利于 I/O 密集型进程,有利于处理器密集型进程

查看解析

Q68

影响时间片轮转调度算法对进程响应时间的因素有( )。

  • A.内存容量
  • B.I/O 设备的速度
  • C.外存容量
  • D.交互进程的数量

查看解析

Q69

多级反馈(Feed Back)进程调度算法具备的特性有( )。
I. 资源利用率高
II. 响应速度快
III. 系统开销小
IV. 一定程度上避免饥饿

  • A.I、II
  • B.I、II、IV
  • C.II、III、IV
  • D.全部

查看解析

Q70

某系统采用三级反馈队列调度算法,队列 Q1、Q2、Q3 的优先级依次降低。Q1 采用时间片q1=5ms 的 RR 算法,Q2 采用时间片 q2=10ms 的 RR 算法,Q3 采用 FCFS 算法。新进程进入 Q1。进程在 Q1 或 Q2 中时间片用完未完成,则降入下一级队列;若进程因 I/O 阻塞后再次就绪,则返回其阻塞前所在的队列。现有 P1(需 CPU 12ms,无 I/O)和 P2(需 CPU 6ms,I/O 10ms,CPU 6ms)同时在 t=0 到达。忽略切换开销,则 P1 和 P2 的完成时间分别是( )。

  • A.17ms, 34ms
  • B.18ms, 34ms
  • C.17ms, 27ms
  • D.18ms, 27ms

查看解析

审计旁注(非原文):作废

P1、P2 同时到达且未规定同优先级次序,A、D 都可能。

Q71

下列说法正确的是( )。

  • A.进程从运行态变为阻塞态是由于时间片到期
  • B.进程可以自身决定从运行态转换为阻塞态
  • C.在抢占式进程调度下,现运行进程的优先级不低于系统中所有进程的优先级
  • D.在任何情况下采用短作业优先调度算法都能够使作业的平均周转时间最小

查看解析

Q72

某系统采用抢占式最短剩余时间优先调度算法,但仅在每 10 ms 一次的时钟中断时才触发抢占与调度决策。系统在 t = 0 时刻开始运行,此时就绪队列中仅有进程 P1(需要 CPU 时间 45 ms)。在 t =5ms 时,新进程 P2(需要 CPU 时间 20 ms)到达。若不考虑系统开销,P1 的完成时刻是( )。

  • A.45 ms
  • B.50 ms
  • C.65 ms
  • D.70 ms

查看解析

Q73

支持抢占式优先级调度的单 CPU 系统中,有三个进程 P1、P2、P3,优先级顺序为 P1 > P2 > P3(值越大优先级越高)。P1 和 P3 共享同一个互斥信号量 Mutex(初始值为 1)。t = 0:P3 进入就绪队列并立即开始执行,随后进入临界区持有了 Mutex;t = 5ms:P2 进入就绪队列。t = 10ms:P1 进入就绪队列;t = 12ms:P1 尝试请求 Mutex。在不采取任何防御措施的情况下,从 t = 12ms 开始,三个进程的执行顺序规律表现为( )。

  • A.P1 优先执行,P2 其次,P3 最后
  • B.P3 冲出临界区后,P1 执行,P2 最后
  • C.P2 抢占 CPU 执行,直到 P2 阻塞或结束后,P3 才能继续执行并释放锁,最后 P1 才得以执行
  • D.系统直接进入死锁状态,三个进程均无法继续向下推进

查看解析

Q74

有 3 个作业:A(到达时间 8:45,执行时间 1.5h),B(到达时间 9:00,执行时间 0.5h),C(到达时间 9:30,执行时间 0.5h)。当 9:30作业全部到达后,操作系统按照非抢占式高响应比优先调度算法进行调度,则作业被选中执行的顺序是( )。

  • A.(A,B,C)
  • B.(B,A,C)
  • C.(B,C,A)
  • D.(C,B,A)

查看解析

Q75

考虑在单纯时间片轮转算法中实现“优先级调度”,即优先级越高的进程一次分配的时间片越多。有进程 A、B、C、D、E 依次几乎同时达到,其预计运行时间分別为 10、6、2、4、8 其优先级数分别是 3、5、2、1、4,一个优先级数对应一个时间片。对于前一个进程时间片有剩余的情况,操作系统会调度下一个进程运行。这种情况下总周转时间是( )。

  • A.92
  • B.102
  • C.112
  • D.122

查看解析

Q76

某系统采用基于优先权的非抢占式进程调度策略,完成一次进程调度和进程切换的系统时间开销为 1us。在 T 时刻就绪队列中有 3 个进程 P1、P2 和 P3,其在就绪队列中的等待时间需要的 CPU 时间和优先权如下表所示。若优先权值大的进程优先获得 CPU,从 T时刻起系统开始进程调度,系统的平均带权周转时间为( )。(保留两位小数)

  • A.3.98 µs
  • B.4.13 µs
  • C.4.21 µs
  • D.4.72 µs
原页版面片段(用于核对图表、矩阵或代码)

第2章 Q76 原页片段 第2章 Q76 原页片段

查看解析

审计旁注(非原文):改单位

带权周转时间是无量纲比值,不是 μs。

Q77

假设在单处理机两道程序设计环境下,有 4 个作业,它们进入系统的时间如表所示,作业调度采用短作业优先调度算法,进程调度采用优先级抢占式调度算法。这里规定:优先数越小优先级越高。忽略其他辅助操作的占用时间。平均周转时间为( )。

  • A.70 分钟
  • B.65 分钟
  • C.75 分钟
  • D.80 分钟
原页版面片段(用于核对图表、矩阵或代码)

第2章 Q77 原页片段

查看解析

Q78

下图为单处理器系统中各个进程运行时占用 CPU 的时间。当 T0=0s 时,进程 A、D 被创建并进入就绪队列,调度程序首先为进程 A 分配 CPU;当 T1=3s 时,进程 A 执行结束,同时进程 D 被调度程序选中,不考虑调度开销;当 T2=3.5s时,进程 D执行结束;当 T3=4S 时,进程 B被创建,并进入就绪队列开始执行;当 T4=6s 时,进程被创建并进入就绪队列,进程 C 的优先级高于进程 B,系统是可抢占的,进程C抢占进程B的CPU;当T5=8s时,进程C执行结束,调度程序重新调度进程 B;当T6=10s时,进程 B 执行结束。在下列说法中,正确的是( )。
I. 在这段时间内,CPU 的利用率是 95%
II. 进程 A、B、C 和 D 的平均周转时间是 3.625s
III. 进程 D 的等待时间最长
IV. 进程 A、B、C 和 D 的平均带权周转时间是 2.625s

  • A.Ⅰ、Ⅱ
  • B.Ⅱ、Ⅲ
  • C.Ⅰ、Ⅱ、Ⅲ
  • D.Ⅰ、Ⅱ、Ⅲ、Ⅳ
原页版面片段(用于核对图表、矩阵或代码)

第2章 Q78 原页片段

查看解析

审计旁注(非原文):改单位

带权周转时间无量纲,不是 s;数值与答案 D 可保留。

Q79

分时系统实现可抢占式时间片轮转调度,依赖于复杂的内核构件协同。下列关于内核数据结构或程序的叙述中,错误的是( )。

  • A.每次时钟中断发生时,内核的时钟中断处理程序都会对当前运行进程 PCB 中的时间片计数器进行减 1 操作
  • B.当进程时间片递减至 0 时,时钟中断处理程序会直接在中断上下文中就地调用进程切换程序,腾出 CPU
  • C.进程控制块(PCB)中必须保存诸如程序计数器(PC)和程序状态字(PSW)等上下文信息
  • D.进程从运行态被剥夺并降为就绪态时,其 PCB 会从运行指针所指位置被摘下,重新挂载到就绪队列的队尾

查看解析

Q80

某单处理器单道程序操作系统中,使用多级反馈队列调度算法,队列 1、2、3 优先级递减,其中,队列 1 采用时间片轮转调度,时间片大小为 2;队列 2 采用时间片轮转调度,时间片大小为 4;队列 3 采用先来先服务调度。则这 4 个作业的周转时间之和为( )。作业 到达时间 运行时间J1 0 5 J2 2 1 J3 3 2 J4 4 8

  • A.25
  • B.27
  • C.28
  • D.29

查看解析

审计旁注(非原文):改题干

“单道程序”应改为“单处理器多道程序”,修正后 A=25。

Q81

考虑下面的基于动态改变优先级的可抢占式优先权调度算法。大的优先权数代表高优先级当一个进程在等待 CPU 时(在就绪队列中,但未执行),优先权以速率α改变;当它运行时,优先权以β速率改变。所有的进程在进入就绪队列时被给定的优先权数为 0。参数α和β可以设定给许多不同的调度算法。下列( )的设定可以实现进程 FIFO。

  • A.β>α>0
  • B.α>β>0
  • C.β<α<0
  • D.α<β<0

查看解析

Q82

下列关于多处理机调度的说法中正确的有( )。

  • A.公共就绪队列可以天然地实现负载均衡,私有就绪队列可以天然地实现“亲和性”
  • B.软亲和指由软件程序保证“亲和性”,硬亲和指由硬件保证“亲和性”
  • C.公共就绪队列中,每个 CPU 访问公共就绪队列时需要上锁,来确保互斥
  • D.推迁移和拉迁移是否进行与 CPU 的负载有关,且在系统中,推迁移和拉迁移常被并行实现

查看解析

审计旁注(非原文):作废

题干问“正确”,解析却给错误项 B;原题不能按单选使用。

Q83

下列关于 SMP 系统中处理器调度及其相关概念的叙述中,错误的是( )。

  • A.自调度(Self-scheduling)方式下,系统中通常维护一个所有处理器共享的全局就绪队列,空闲的处理器会主动从该队列中获取任务执行
  • B.成组调度(Group scheduling)策略倾向于将一个应用程序中的多个相关线程或进程组在同一时间分配到不同处理器上并行执行,以减少它们之间的同步等待开销
  • C.动态分配(Dynamic assignment)方式下,一个进程或线程在其生命周期内可能会被分配到不同的处理器上执行,这有助于实现负载均衡,但也可能降低高速缓存的命中率
  • D.专用处理器分配(Dedicated processor assignment)策略为每个就绪线程都分配一个独立的处理器,能最大限度地提高单个应用程序的并行度,且在任何情况下都能获得最佳的系统整体性能

查看解析

Q84

下列内容中,属于进程上下文的是( )。
I. 虚拟地址空间
II. PC 的值
III. PSW 寄存器的值
IV. 系统内核栈

  • A.I、III
  • B.Ⅰ、Ⅳ
  • C.Ⅰ、Ⅱ、Ⅲ
  • D.Ⅰ、Ⅱ、Ⅲ、Ⅳ

查看解析

Q85

下列关于上下文切换机制的叙述中,哪一项是不正确的?( )。

  • A.上下文切换是操作系统保存当前执行实体的 CPU 现场,并恢复另一个执行实体 CPU 现场的过程,可能发生在进程/线程切换或用户态与内核态转换等场景中
  • B.上下文切换操作通常由内核的调度程序和分派程序协同完成,且切换过程本身在内核态执行
  • C.进程的上下文信息主要保存在其进程控制块(PCB)中,而线程的上下文信息则主要保存在其线程控制块(TCB)中
  • D.无论是进程切换还是同一进程内的线程切换,都需要完整地保存和恢复所有的通用寄存器、程序计数器、程序状态字以及整个进程的地址空间映射信息

查看解析

Q86

以下两个优先级相同的进程 PA和 PB 在并发执行结束后,y 的值为( )(信号量 S1 和 S2 的初值均为 0)。

  • A.9
  • B.15
  • C.9 或 15
  • D.9 或 11或 15
原页版面片段(用于核对图表、矩阵或代码)

第2章 Q86 原页片段

查看解析

Q87

有两个并发进程 P 和 P2,它们的程序代码如下(其中 x 为 P1,P2 的共享变量):P1( ){ x = 0; y = -1; z = x * y; print z; } P2( ){ x = 3; c = x * x; print c; }可能打印出的 z 和 c 的值有( )。

  • A.z = 0 或-3;c = 0 或 9
  • B.z = 0 或 3;c = 0 或 9
  • C.z = 0 或 3 或 1;c = 9
  • D.z = 0;c = 0 或 9
原页版面片段(用于核对图表、矩阵或代码)

第2章 Q87 原页片段

查看解析

Q88

关于临界区,正确的说法是( )。

  • A.访问不同临界资源的两个进程不要求必须互斥进入临界区
  • B.临界区是包含临界资源的一段数据区
  • C.临界区是一种用于进程同步的机制
  • D.临界区是访问临界资源的一个进程或者线程

查看解析

Q89

一个正在访问普通临界资源的进程主动阻塞,那么它( )。

  • A.允许其他进程抢占处理器,且允许其他进程进入该进程的临界区
  • B.允许其他进程抢占处理器,但不允许其他进程进入该进程的临界区
  • C.不允许其他进程抢占处理器,但允许其他进程进入该进程的临界区
  • D.不允许其他进程抢占处理器,且不允许其他进程进入该进程的临界区

查看解析

Q90

下列选项中,对于多个进程之间的同步与互斥,属于临界资源的是( )。
I. 打印机
II. 各进程的非共享数据
III.磁盘
IV. 共享缓冲区

  • A.I、II
  • B.I、IV
  • C.I、II、IV
  • D.全部

查看解析

Q91

下列准则中,实现临界区互斥机制不强制要求遵循的是( )。

  • A.两个进程不能同时进入临界区
  • B.不能进入临界区的执行态进程立即放弃 CPU
  • C.进程等待进入临界区的时间是有限的
  • D.允许进程访问空闲的临界资源

查看解析

Q92

有两个并发执行的进程 P1和 P2,共享初值为 1的变量 x。P1对 x加 1,P2对 x减 1。加 1和减1 操作的指令序列分别如下所示,指令序列已经指定序号。//加 1 操作①1oad R1,x //取 x 到寄存器 R1 中②inc R1 ③store x,R1//将 R1 的内容存入 x //减 1 操作④load R2,x ⑤dec R2 ⑥store x,R2两个操作完成后,x 的值为 2 的序列可能为( )。
I.①②③④⑤⑥
II.①②④⑤⑥③
III.①④②⑤⑥③
IV.④⑤①⑥②③

  • A.I,II,III
  • B.I,III,IV
  • C.II,III,IV
  • D.I,II,IV

查看解析

Q93

两个线程使用以下算法处理对打印机设备的互斥访问,可能出现的问题是( )。int turn=1; void Thread1(){ //other... while(turn!=1); //操作打印机turn=2; //other... } void Thread2(){ //other... while(turn!=2); //操作打印机turn=1; //other... }

  • A.两个线程都无法使用打印机,发生饥饿现象
  • B.两个线程同时使用打印机,打印出现错误
  • C.若线程 1 没有使用打印机,转而执行其他操作,则线程 2 也无法使用
  • D.不会发生错误,两线程正常使用打印机

查看解析

Q94

某同学试图用以下算法以实现两个进程 P0 和 P1 的互斥访问:// 进程 P0 void P0() { while (TRUE) { turn = 1; // 语句 ①:先礼让flag[0] = TRUE; // 语句 ②:后表达意愿while (flag[1] && turn == 1);临界区; flag[0] = FALSE; } } // 进程 P1 void P1() { while (TRUE) { turn = 0; // 语句 ③ flag[1] = TRUE; // 语句 ④ while (flag[0] && turn == 0);临界区; flag[1] = FALSE; } }关于该算法的评估,下列说法正确的是( )。

  • A.该算法依然能完美保证“忙则等待”
  • B.该算法会导致两个进程同时进入临界区,违背“忙则等待”
  • C.该算法会导致死锁,违背“空闲让进”
  • D.该算法满足“让权等待”

查看解析

Q95

进程 P0 和 P1 访问临界资源的伪代码实现如下,以下说法正确的是( )。bool flag[2]={false,false}; //P0: //P1: while(flag[1]); while(flag[0]); //进入区flag[0]=true; flag[1]=true; //进入区critical section; critical section; //临界区flag[0]=false; flag[1]=false; //退出区remainder section; remainder section; //剩余区

  • A.不能保证进程互斥进入临界区,且违背了忙则等待原则
  • B.不能保证进程互斥进入临界区,但是遵循忙则等待原则
  • C.能保证进程互斥进入临界区,但是违背了忙则等待原则
  • D.能保证进程互斥进入临界区,且遵循忙则等待原则

查看解析

Q96

关于 TestAndSet 指令和 Swap 指令在实现互斥锁(Lock)机制时的叙述中,错误的是( )。

  • A.TSL 指令通常会读取一个内存位置(锁变量)的当前值,并将一个新的非零值(例如 TRUE)写入该位置,整个操作是原子的。
  • B.Swap 指令会原子地交换一个寄存器和一个内存位置(锁变量)的内容,进程通过检查交换后寄存器的值来判断是否获得锁。
  • C.若使用 TSL 指令实现自旋锁,当锁已被占用时,进程会循环执行 TSL 指令直到成功获取锁,这会导致“忙等”。
  • D.使用 Swap 指令实现的互斥锁能满足“让权等待”准则,避免“忙等”现象。

查看解析

Q97

互斥锁是一种用于解决临界区互斥问题的常用手段,对 acquire()获取锁或 release()释放锁的调用必须原子地执行,因此,互斥锁通常采用硬件原语(如Test&Set指令或exchange交换指令来实现),对于 TSL 硬件原语实现的自旋锁与无忙等待锁,以下说法错误的是( )。

  • A.使用原子操作指令实现的互斥锁适用于单处理器或共享内存多处理器中任意数量的进程同步
  • B.自旋锁不能实现让权等待,但是阻塞锁可以
  • C.自旋锁可以实现进程对临界区的先进先出(即按申请顺序访问临界区),不会导致进程饥饿
  • D.互斥锁可用于多进(线)程之间,但是只能由获取锁的进(线)程对它进行解锁(即释放)

查看解析

Q98

在有 n 个进程共享一个互斥段,如果最多允许 m 个进程(m<n)同时进入互斥段,则信号量的变化范围是( )。

  • A.-(n-m)~m
  • B.-m~0
  • C.-m-1~n
  • D.-m-1~n-1

查看解析

审计旁注(非原文):改公式

解析末式应为 [-(n-m), m];答案 A 不变。

Q99

对信号量 S 执行 P 操作后,使进程进入等待队列的条件是( )。

  • A.S.value>0
  • B.S.value<=0
  • C.S.value>=0
  • D.S.value<0

查看解析

Q100

有一个信号量 S,假如若干进程对 S 执行 36 次 P 操作和 20 次 V 操作后,信号量 S 的值变为0。假设未执行上述 P/V操作,若干进程对信号量 S 执行 19 次 P 操作和 1 次 V 操作后,在信号量 S 的等待队列中等待的进程数为( )。

  • A.2
  • B.3
  • C.6
  • D.7

查看解析

Q101

对记录型信号量 S 执行相关操作后,下列描述中正确的是( )。
I. 执行 P 操作时,当 S.value<0 时,阻塞当前进程
II. 执行 P 操作时,当 S.value<=0 时,阻塞当前进程
III. 执行 V 操作时,当 S.value<=0 时,唤醒一个阻塞队列进程
IV. 执行 V操作时,当 S.value<0 时,唤醒一个阻塞队列进程

  • A.I、IV
  • B.Ⅱ、Ⅲ
  • C.Ⅰ、Ⅲ
  • D.Ⅱ、Ⅳ

查看解析

Q102

管程(Monitor)是一种高级同步机制,用于解决多个进程共享资源时的互斥与同步问题。下列关于管程的特性及其内部条件变量的叙述中,正确的是( )。
I. 管程确保了在任何时刻最多只有一个进程在其内部执行代码,从而简化了对共享资源的互斥访问
II. 管程通常由编程语言的编译器或运行时系统支持,为程序员提供了比信号量更高层次、更易用的同步抽象
III. 当一个在管程中执行的进程因某个条件未满足而调用条件变量的 wait()操作时,该进程将继续占用管程并处于忙等待状态,直到条件满足
IV. 条件变量的 signal()操作一定会唤醒一个正在等待该条件的进程;如果没有进程等待,则signal()操作会像信号量的 V 操作一样使条件变量的内部计数器加一

  • A.I、II
  • B.I、III
  • C.II、IV
  • D.I、II、IV

查看解析

Q103

管程是现代操作系统中重要的同步机制。关于管程中条件变量和信号量的叙述正确的是( )。

  • A.条件变量和信号量一样,其内部都有一个标志资源数目的整型变量
  • B.当一个进程向没有等待者的条件变量发送 x.signal() 信号时,该信号会被释放并记录下来,供后续的 x.wait() 使用
  • C.管程通过编译器保证同一时刻只有一个进程在管程内执行,从而实现了自动互斥
  • D.当管程内的进程执行 x.wait() 时,该进程会进入阻塞状态,但仍会继续占用管程的互斥访问权

查看解析

Q104

下列对于管程的说法中,错误的是( )

  • A.管程内部定义了函数的具体实现,它在外部是不可见的
  • B.管程机制可以便于集中管理分散于不同进程的临界区
  • C.允许进入管程的进程数目与临界资源的个数有关
  • D.管程是进程同步工具,避免了信号量机制中大量且分散的同步操作

查看解析

Q105

以下关于同步互斥的各种实现方法中,说法错误的是( )。

  • A.禁用中断不可以在多处理机系统上实现同步原语
  • B.软件方法如 peterson,以及原子操作指令(TSL 指令和 SWAP 指令)这些方法都不能实现让权等待
  • C.互斥锁无法实现让权等待,属于忙等机制
  • D.在管程中对条件变量执行 signal 操作时,如果该条件变量对应的等待队列为空,则丢弃该信号执行空操作

查看解析

审计旁注(非原文):作废

题干未限定 Linux;按王道 A、B、C、D 全正确。

Q106

系统有同类资源 12 台,被 K 个进程竞争使用。已知每个进程最多需要 3 台资源。若要保证系统在任何资源分配策略下都绝对不发生死锁,K 的最大值是( )。若系统当前实际有 5 个进程,且某时刻已分配 9 台资源,剩余 3 台空闲,此时系统( )。

  • A.4;处于安全状态,且安全序列唯一
  • B.5;处于安全状态,但安全序列不唯一
  • C.5;处于不安全状态,但尚未发生死锁
  • D.6;已发生死锁,需强制终止进程

查看解析

Q107

下列说法正确的是( )。

  • A.当进程数大于资源数时,进程竞争资源必然产生死锁
  • B.一旦出现死锁,所有进程都不能运行
  • C.有 m 个进程的操作系统出现死锁时,死锁进程的个数为 1<k≤m。
  • D.银行家算法是预防死锁发生的方法之一

查看解析

Q108

设 m 为互斥资源 A的数量,n 为系统中的并发进程数。当 n 个进程共享 m 个资源 A时,每个进程对资源 A的最大需求量为 w,则下列情况可能会出现死锁的是 ( )。

  • A.m=3,n=3,w=2
  • B.m=2,n=2,w=1
  • C.m=4,n=3,w=2
  • D.m=5,n=2,w=3

查看解析

Q109

关于死锁的处理策略,下列说法错误的是( )。

  • A.采用资源静态分配法破坏了“请求和保持”条件,虽然防止了死锁,但严重降低了资源利用率
  • B.死锁避免策略(如银行家算法)由于对进程申请资源的限制比死锁预防策略更少,因此在系统运行时所带来的时间开销也更小
  • C.顺序资源分配法通过对资源进行线性编号并按序申请,从而有效破坏了“循环等待”条件
  • D.在资源分配图中,环路的存在是系统发生死锁的必要条件;若图中每种资源类均仅包含一个资源实例,则环路的存在是死锁的充要条件

查看解析

Q110

下列关于死锁与饥饿的叙述中,错误的是( )。

  • A.死锁涉及一组进程,它们因相互等待对方持有的资源而均无法继续执行;饥饿则可能只针对单个或少数进程
  • B.死锁一旦发生,若无外部干预(如操作系统介入),相关进程将永远无法被唤醒;而处于饥饿状态的进程理论上仍有机会获得资源并执
  • C.引起死锁的根本原因是资源不足以及进程推进顺序不当;引起饥饿的根本原因则通常是调度算法不公平或资源分配策略存在缺陷
  • D.发生死锁与饥饿的进程均属于阻塞态

查看解析

Q111

以下关于进程死锁的表述,错误的有( )。

  • A.如果每个进程最多只能拥有一个资源实例,则死锁就不会发生
  • B.如果所有资源多个进程都可以无冲突共享访问,则死锁就不会发生
  • C.如果所有进程的执行严格区分优先级,则死锁就不会发生
  • D.如果进程资源请求之间不存在循环等待,则死锁就不会发生

查看解析

Q112

在哲学家就餐问题中,若哲学家中同时存在左撇子和右撇子,左撇子会先拿左手边的筷子,而右撇子会先拿右手边的筷子。这种情况下不会发生死锁,因为这破坏了( )。

  • A.互斥条件
  • B.请求与保持条件
  • C.不剥夺条件
  • D.循环等待条件

查看解析

Q113

对所有资源进行编号,并要求进程按严格增加(或减少)的顺序来请求资源,这是死锁预防的一种方式,破坏了死锁四个必要条件中的( )。

  • A.互斥条件
  • B.占有并请求条件
  • C.不可抢占条件
  • D.循环等待条件

查看解析

Q114

死锁预防是保证系统不进入死锁状态的一种静态策略,它通过破坏死锁产生的四个必要条件中的一个或多个来预防死锁,下列破坏了死锁产生的“请求和保持条件”的是( )。

  • A.银行家算法
  • B.一次性分配策略
  • C.剥夺资源法
  • D.有序资源分配法

查看解析

Q115

关于死锁预防与死锁避免的说法,正确的是( )。

  • A.死锁预防就是防止系统进入到不安全状态
  • B.可以通过防止系统进入不安全状态来避免死锁的发生
  • C.死锁预防通常采用银行家算法
  • D.银行家算法会规定进程申请资源的顺序

查看解析

Q116

下列关于死锁与安全状态的叙述中,错误的是( )。
I. 安全一定不死锁
II. 死锁一定不安全
III. 不安全必定会死锁
IV. 不死锁一定处于安全状态

  • A.I、II
  • B.III、IV
  • C.I、IV
  • D.II、III

查看解析

审计旁注(非原文):改标号

解析末段第二个“Ⅲ错误”应为“Ⅳ错误”。

Q117

假设有 4 个进程 P0、P1、P2、P3,共享 3 类资源 R1、R2、R3,这些资源总数分别为 7、7、7,T时刻的资源分配情况如下表,此时存在的一个安全序列是( )。

  • A.P1,P2,P0,P3
  • B.P1,P2,P3,P0
  • C.P2,P0,P1,P3
  • D.P2,P1,P3,P0
原页版面片段(用于核对图表、矩阵或代码)

第2章 Q117 原页片段

查看解析

Q118

两个进程 A 和 B,每一个进程都需要申请资源 1、2、3 各一个,在系统中,三种资源各只有一个。假如这两个进程都以 1、2、3 的次序申请,系统将不会发生死锁。但如果 A 以 3、2、1 的次序申请,B 以 1、2、3 的次序申请,则死锁可能发生。两个进程申请资源的顺序如果不确定,那么系统保证不发生死锁的概率是( )。

  • A.1/9
  • B.1/6
  • C.1/3
  • D.1/12

查看解析

Q119

系统某一时刻的进程数及资源分配情况如下:进程 资源最大需求量 已分配资源P0 7,5,3 0,1,0 P1 3,2,2 2,1,0 P2 9,0,2 3,0,2 P3 2,2,2 2,1,1 P4 4,3,3 0,0,2系统剩余资源数量=(3,3,2)。根据银行家算法,下列选项正确的是( )。

  • A.系统处于不安全状态
  • B.系统处于安全状态,可能的安全序列为
  • C.系统处于安全状态,可能的安全序列为
  • D.系统处于安全状态,可能的安全序列为
原页版面片段(用于核对图表、矩阵或代码)

第2章 Q119 原页片段

查看解析

Q120

假设 4 个进程共享三类资源 A、B、C,这些资源总数分别为 10、6、7。T 时刻的资源分配情况如下表所示,以下叙述正确的是( )。

  • A.该时刻系统不安全
  • B.该时刻系统安全,存在一条安全序列
  • C.该时刻系统安全,存在两条安全序列
  • D.该时刻系统安全,存在四条安全序列
原页版面片段(用于核对图表、矩阵或代码)

第2章 Q120 原页片段

查看解析

Q121

考虑一个由 4 个进程和一个单独资源组成的系统,当前的最大需求矩阵和分配矩阵如下:对于安全状态,需要的最小剩余资源数目是( )。

  • A.1
  • B.2
  • C.3
  • D.5
原页版面片段(用于核对图表、矩阵或代码)

第2章 Q121 原页片段

查看解析

Q122

下列关于死锁避免和死锁检测的说法中,不正确的是( )。

  • A.死锁避免可能会要求进程同一时间请求所有资源,而死锁检测不会
  • B.死锁避免需要进程运行所需资源总量信息,而死锁检测不需要
  • C.死锁避免不会给可能导致死锁的进程分配资源,而死锁检测会
  • D.死锁避免会评估分配资源的风险,而死锁检测不会

查看解析

Q123

某系统采用资源分配图(RAG)检测死锁。图中包含进程节点 {P1,P2,P3,P4} 和资源类节点{R1,R2}。其中 R1 有 2 个实例,R2 有 2 个实例。当前图中存在以下边:分配边:R₁→P₂,R₁→P₄,R₂→P₃请求边:P₁→R₁,P₂→R₂,P₃→R₁,P₄→R₂若对该图执行死锁检测的图简化算法,下列关于简化结果与系统状态的叙述中,正确的是( )。

  • A.图中存在环 P₁→R₁→P₂→R₂→P₃→R₁→P₄→R₂→P₁,系统必然处于死锁状态
  • B.图可完全简化,P₂ 可作为简化起点,系统不处于死锁状态
  • C.图无法完全简化,P₁、P₂、P₃、P₄ 均处于死锁状态
  • D.图无法完全简化,但仅 P₂ 和 P₄ 处于死锁状态

查看解析

Q124

利用死锁定理简化下列资源分配图,则处于死锁状态的是( )。

  • A.Ⅰ
  • B.Ⅱ
  • C.Ⅰ和Ⅱ
  • D.都不处于死锁状态
原页版面片段(用于核对图表、矩阵或代码)

第2章 Q124 原页片段

查看解析

Q125

某一系统在某时刻的资源分配表和进程等待表如下表所示,每种资源都只有一个实例、不可共享且不可剥夺,则下列说法中正确的是( )。

  • A.系统中不存在死锁
  • B.系统中存在死锁,且终止任意一个进程都可以解除死锁
  • C.系统中存在死锁,但终止任意一个进程不一定能解除死锁
  • D.无法判断系统中是否存在死锁
原页版面片段(用于核对图表、矩阵或代码)

第2章 Q125 原页片段

查看解析

Q126

下列关于死锁解除策略的叙述中,错误的是( )。

  • A.最简单直接的死锁解除方法是强制终止系统中的所有死锁进程,但这可能导致已完成大量工作的进程前功尽弃
  • B.采用“进程回退”策略时,系统将使一个或多个死锁进程回退到足以避免死锁的某个先前状态(检查点),但这要求系统记录进程的历史状态信息
  • C.剥夺资源是常用的死锁解除方法之一,即从一个或多个死锁进程中抢占某些资源,并将这些资源分配给其他死锁进程,但选择剥夺哪些资源和哪个进程的资源是一个复杂的问题
  • D.终止死锁进程时,选择优先级最低的死锁进程予以终止,可以保证系统为解除死锁付出的代价最小

查看解析

Q127

某系统有 m 个同类资源供 n 个进程共享,若每个进程最多申请 k 个资源(k>1),为保证系统不发生死锁,则各进程的最大需求量之和应( )。

  • A.等于 m
  • B.等于 m+n
  • C.小于 m+n
  • D.大于 m+n

查看解析

审计旁注(非原文):公式回源校正

原 PDF 数学字体缺少 Unicode 映射;求和公式已依据原页重新转写。

Q128

下列关于死锁的预防、避免、检测和解除的叙述中,正确的有( )。
Ⅰ.资源的有序分配策略可以破坏死锁的请求和保持条件
Ⅱ.银行家算法通过控制资源的分配,破坏了死锁的循环等待条件
Ⅲ.产生死锁的根本原因是系统资源分配不足和进程推进顺序非法
Ⅳ.采用进程回退法解除死锁需要保存进程的历史信息,设置还原点

  • A.仅Ⅰ、Ⅱ
  • B.仅Ⅲ、Ⅳ
  • C.仅Ⅱ、Ⅲ、Ⅳ
  • D.Ⅰ、Ⅱ、Ⅲ、Ⅳ

查看解析

审计旁注(非原文):改措辞

死锁根因应记为不可剥夺资源竞争与非法推进顺序,不是资源少本身。

Q129

在对称多处理(SMP)架构下,关于 CPU 调度策略,下列叙述错误的是( )。

  • A.处理器亲和性是指操作系统尽量让一个进程在同一个处理器核上运行,以维持 Cache 的命中率
  • B.负载均衡会将工作负载平均分配到所有处理器上,这往往会与处理器亲和性产生策略上的冲突
  • C.采用“全局单一就绪队列”方案虽然能自发实现负载均衡,但会导致多个处理器在锁竞争(如竞争就绪队列的互斥锁)上产生严重的性能瓶颈
  • D.在多核系统中,为了绝对防止死锁,操作系统必须严禁任何形式的抢占式多核调度

查看解析

Q130

在实现临界区互斥时,常采用“关中断”或“硬件指令(如 TSL/Swap)”的方法。下列关于这些方法的叙述中,错误的是( )。

  • A.“关中断”方法限制了处理机交替执行指令的能力,不适用于多核处理器系统
  • B.使用 TSL 指令实现的自旋锁会浪费 CPU 资源,违背了“让权等待”原则
  • C.用户态进程可以直接执行“关中断”指令来安全、高效地保护自己的临界区
  • D.若临界区执行时间极短,在多核系统中使用基于 TSL 的自旋锁可能比阻塞锁(Mutex)效率更高

查看解析

Q131

系统中有 n 个并发进程竞争使用某类资源,该类资源的总数为 K (K≥1)。系统采用记录型信号量 S 进行资源分配,其初值 S.value = K,阻塞队列 S.L 初始为空。在系统运行过程中的某一时刻,测得信号量 S 的当前值为 V,且此时阻塞队列 S.L 中的进程数为 m (m>0)。下列关于 V,m,K 之间关系的叙述中,必定正确的是( )。

  • A.V=K−n 且 m=n−K
  • B.V<0 且 m=−V
  • C.V≤0 且 m=K−V
  • D.V=−m 且当前正在使用该资源的进程数为 K−m

查看解析