跳转至

操作系统:课件整理与例题解析

本篇整合操作系统的课程提要、概述、进程管理、存储管理、设备管理、文件管理、文件权限和章节回顾。保留原课件全部 44 张教学图和 19 道选择题,题号统一编排;折叠区中的答案与推导为整理时补充的**参考解析**,不冒充原课件公布的标准答案。

课件中的简化说法、题干矛盾和缺少的条件在对应位置说明。容量题若无其他约定,沿用教材的二进制换算:1 KB = 1024 B、1 MB = 1024 KB;严格单位分别是 KiB、MiB。

操作系统的功能与类型

操作系统管理计算机的硬件、软件和数据资源,控制程序运行,并为应用程序和用户提供使用计算机的接口。常见管理任务包括处理器与进程管理、存储管理、设备管理、文件管理,以及保护与安全。

计算机硬件、操作系统、语言处理程序和应用程序的层次

图是教学中的层次示意。操作系统属于系统软件;语言处理程序等其他系统软件通常使用操作系统提供的服务,应用程序再使用这些基础设施。不要把“操作系统”和“系统软件”理解成互不相交的两类软件。

应用通常在**用户态**运行,需要内核提供文件、设备等服务时,经系统调用入口转入**内核态**;内核检查参数和权限,处理后再返回。用户态/内核态说的是 CPU 的特权级,运行/就绪/阻塞说的是调度状态:一次立即完成的系统调用可以只切换特权级,并不切换进程;请求必须等待 I/O 时才可能阻塞。普通库函数也不保证每次调用都会进入内核,例如缓冲输出可能先只修改用户区缓冲。

例题 1:软件的层次

计算机系统的层次结构如下图所示,基于硬件之上的软件可分为 a、b 和 c 三个层次。图中 a、b 和 c 分别表示( )。

例题1:硬件之上的a、b、c三个软件层次

  • A、操作系统、系统软件和应用软件
  • B、操作系统、应用软件和系统软件
  • C、应用软件、系统软件和操作系统
  • D、应用软件、操作系统和系统软件
参考答案与解析

选 C。 图中 c 紧邻计算机硬件,对应操作系统;b 是语言处理程序等其他系统软件;a 面向最终用户,对应应用软件。题目把操作系统从系统软件中单列出来,是分层画法,不改变它属于系统软件的事实。

不同类型的操作系统

批处理、分时、实时、网络、分布式、微机和嵌入式操作系统比较

类型 主要特点与识别关键词
批处理 作业成批提交、自动执行,强调吞吐量;多道程序可交替使用处理器与 I/O 设备
分时 多用户交互、时间片、及时响应;各用户感觉自己在独立使用系统
实时 必须在规定时间内响应或完成处理;关键是时限的可预测性,不只是“平均速度快”
网络 提供网络通信、资源共享和网络服务,用户通常仍能感知不同机器
分布式 多台计算机协同,对资源分布提供不同程度的透明性;并非任意联网系统都是分布式操作系统
微机 面向个人计算机等平台;Windows、Linux 的能力与具体版本、配置有关
嵌入式 面向专用设备,可裁剪、可配置、资源占用小,常强调可靠性、实时性与可移植性

单处理机的多道程序通常是宏观并发、微观交替执行;有多个处理核心时,也可能真正并行。嵌入式系统并非一律是实时系统,实时系统也并非没有人机交互需求。

嵌入式系统的配置与启动

可定制性是按产品需要选择、裁剪和组合系统功能;易移植性是降低迁移到不同处理器或板卡的适配成本。HAL(硬件抽象层)、BSP(板级支持包)把硬件差异集中在适配层。实时性则关注截止期限:硬实时任务错过期限可能导致系统失效,软实时允许一定程度超时但服务质量下降,不能用“平均运行很快”代替时限保证。

嵌入式初始化通常按以下依赖从底层向上进行:

层次 初始化对象与目的
片级 设置处理器核心、控制寄存器、时钟或异常入口等基本状态,使后续代码可执行
板级 初始化板上内存、外设及其接口,建立板卡运行环境
系统级 建立操作系统的数据结构、任务及服务,启动调度和上层软件

各项目会按芯片条件拆分步骤,但基本顺序是片级 → 板级 → 系统级。按对象称“硬件初始化”,不代表这一步无需软件;启动代码通常正是在写硬件寄存器。

例题 2:嵌入式操作系统的特点

从减少成本和缩短研发周期考虑,要求嵌入式操作系统能运行在不同的微处理器平台上,能针对硬件变化进行结构与功能上的配置。该要求体现了嵌入式操作系统的( )。

  • A、可定制性
  • B、实时性
  • C、可靠性
  • D、易移植性
参考答案与辨析

按题干强调的“结构与功能上的配置”,选 A。 可定制性强调按设备需要裁剪、选择和配置功能;易移植性强调迁移到不同处理器或硬件平台所需的适配工作。

题干前半句“运行在不同的微处理器平台上”确实也涉及可移植性,不能只截取这一句判断。课件把“针对硬件变化配置”列在可定制性下,因此本题按这一落点作答;HAL(硬件抽象层)、BSP(板级支持包)则是帮助硬件适配和移植的常见机制。

专项题库练习(11 题)

本小节对应题库练习共 11 道题目,题目覆盖本节考点,答案与解析默认折叠。

题目 001

来源:知识点练习「操作系统」第 1 题(原站入口)。

下列哪项工作不属于操作系统本身的设计职责?

  • A. 管理计算机硬件资源
  • B. 管理计算机软件资源
  • C. 提供用户与计算机交互的接口
  • D. 设计并实现语言编译器
答案与解析

平台答案:D。

整理解析

操作系统负责资源分配与管理,并提供程序和用户使用计算机的接口;把源程序翻译为目标代码属于编译器的职责,因此选 D。

题目 005

来源:知识点练习「操作系统」第 5 题(原站入口)。

文件系统的目录关系见图。当前工作目录为 swshare,要访问 fault.swf;第(5)空求全文件名,第(6)空依次求相对路径和绝对路径。本题回答第(5)空。

原题图

  • A. fauit.swf
  • B. \flash\fault.swf
  • C. swshare\flash\fault.swf
  • D. \swshare\flash\fault.swf
答案与解析

平台答案:D。

整理解析

按图沿根目录 → swshare → flash → fault.swf 访问,全文件名应含从根开始的目录和文件名,即 \swshare\flash\fault.swf,选 D。A 的文件名原写作 fauit.swf,保留其拼写。纠错:平台解析把存放文件的子目录写成 swshare,图中这一级实际是 flash。这里按题图的根目录约定解释路径。

题目 006

展开题目 006(先作答,再查看解析)

来源:知识点练习「操作系统」第 6 题(原站入口)。

文件系统的目录关系见图。当前工作目录为 swshare,要访问 fault.swf;第(5)空求全文件名,第(6)空依次求相对路径和绝对路径。本题回答第(6)空,各选项依次列出相对路径、绝对路径。

原题图

  • A. swshare\flash\;\flash
  • B. flash\;\swshare\flash
  • C. \swshare\flash\;flash
  • D. \flash\;\swshare\flash
答案与解析

平台答案:B。

整理解析

从当前 swshare 目录到目标所在的 flash 目录,相对路径为 flash\;从图示根目录起算则为 \swshare\flash,选 B。纠错与口径说明:本空的选项写的是所在目录的路径;若写到文件本身,还须加上 fault.swf。平台把 flash 子目录误写为 swshare,也混用了目录路径与文件路径。

题目 019

展开题目 019(先作答,再查看解析)

来源:知识点练习「操作系统」第 19 题(原站入口)。

嵌入式系统的初始化分为 3 个主要环节。第(19)空要求按从底层到上层、从硬件到软件的次序排列;第(20)空询问系统级初始化的主要工作。本题回答第(19)空。

  • A. 片级→系统级→板级
  • B. 片级→板级→系统级
  • C. 系统级→板级→片级
  • D. 系统级→片级→板级
答案与解析

平台答案:B。

整理解析

先让处理器本身进入所需状态,再配置板上的外设和运行环境,最后启动操作系统等系统软件。对应片级→板级→系统级,选 B。表述修正:片级初始化的对象主要是硬件,但常由启动代码设置寄存器,并不等于无需软件参与。

题目 020

展开题目 020(先作答,再查看解析)

来源:知识点练习「操作系统」第 20 题(原站入口)。

嵌入式系统的初始化分为 3 个主要环节。第(19)空要求按从底层到上层、从硬件到软件的次序排列;第(20)空询问系统级初始化的主要工作。本题回答第(20)空。

  • A. 初始化嵌入式微处理器
  • B. 初始化微处理器以外的其他硬件设备
  • C. 以软件初始化为主,重点初始化操作系统
  • D. 设置微处理器核心寄存器和控制寄存器的工作状态
答案与解析

平台答案:C。

整理解析

系统级阶段主要建立操作系统和系统软件的运行环境,选 C。A、D 主要属于片级,B 主要属于板级。这里按初始化对象划分层次;共享解析所称片级“纯硬件”不应理解为不执行启动软件。

题目 033

展开题目 033(先作答,再查看解析)

来源:知识点练习「操作系统」第 33 题(原站入口)。

实时操作系统可用于过程控制等对时限有要求的场景。对于外部事件,实时系统必须满足哪项时间要求?

  • A. 在一个时间片内处理
  • B. 在一个周转时间内处理
  • C. 在一个机器周期内处理
  • D. 在被控对象规定的时限内响应并处理
答案与解析

平台答案:D。

整理解析

实时性的判断依据是任务是否满足对象规定的响应或完成期限,不是某个固定的时间片或机器周期,选 D。纠错:软实时也有期限和服务质量要求,只是允许一定程度的超期并以性能下降为代价;不能简化为仅按优先级“尽可能快”地执行。

题目 046

展开题目 046(先作答,再查看解析)

来源:知识点练习「操作系统」第 46 题(原站入口)。

计算机系统的分层结构见图:硬件之上依次叠放三层软件,分别标为 a、b、c。按 a、b、c 的顺序,应如何命名?

原题图

  • A. 操作系统、系统软件、应用软件
  • B. 操作系统、应用软件、系统软件
  • C. 应用软件、系统软件、操作系统
  • D. 应用软件、操作系统、系统软件
答案与解析

平台答案:C。

整理解析

图中 a 面向最终用户,是应用软件;c 紧靠硬件,是操作系统;居中的 b 表示为开发和运行提供支持的其他系统软件,所以选 C。分类口径上操作系统本身也属于系统软件,这张层次图是把它单独画出,并非认为两类互不包含。

题目 056

展开题目 056(先作答,再查看解析)

来源:知识点练习「操作系统」第 56 题(原站入口)。

文件系统目录结构见图。当前工作目录是 swtools,要访问 rw.dll。该文件的全文件名为(56);相对路径、绝对路径依次为(57)。

题目配图

请作答:第 56 题。

  • A. rw.dll

  • B. flash/rw.dll

  • C. /swtools/flash/rw.dll

  • D. /Programe file/Skey/rw.dll

答案与解析

平台答案:C。

整理解析

本问选 C。按图中的 swtools→flash→rw.dll 路径,从根目录开始并加上文件名,得到 /swtools/flash/rw.dll。单独的 rw.dll 不含定位目录,flash/rw.dll 则是相对于当前目录的文件路径。

题目 057

展开题目 057(先作答,再查看解析)

来源:知识点练习「操作系统」第 57 题(原站入口)。

文件系统目录结构见图。当前工作目录是 swtools,要访问 rw.dll。该文件的全文件名为(56);相对路径、绝对路径依次为(57)。

题目配图

请作答:第 57 题。

  • A. /swtools/flash/ 和 /flash/

  • B. flash/ 和 /swtools/flash/

  • C. /swtools/flash/ 和 flash/

  • D. /flash/ 和 swtools/flash/

答案与解析

平台答案:B。

整理解析

本问选 B。以 swtools 为起点,到文件所在目录的相对路径为 flash/;从根开始则是 /swtools/flash/。题目选项讨论所在目录的路径;若表示文件本身的路径,还应在末尾加 rw.dll。

同材料可参照第 56 题。

题目 068

展开题目 068(先作答,再查看解析)

来源:知识点练习「操作系统」第 68 题(原站入口)。

目录结构见图,当前工作目录为 MyDrivers。访问 Book2.doc 时,其绝对路径、相对路径依次为( )。

题目配图

  • A. MyDrivers\user2\ 和 \user2

  • B. \MyDrivers\user2\ 和 \user2

  • C. \MyDrivers\user2\ 和 user2

  • D. MyDrivers\user2\ 和 user2

答案与解析

平台答案:C。

整理解析

选 C。图中目标可沿根目录→MyDrivers→user2 到达,所以绝对目录路径以根分隔符开头,相对目录路径从当前 MyDrivers 下的 user2 开始,不能再加前导根分隔符。选项给的是所在目录,完整文件路径还需追加 Book2.doc。

题目 070

展开题目 070(先作答,再查看解析)

来源:知识点练习「操作系统」第 70 题(原站入口)。

为了降低成本并缩短研发周期,嵌入式操作系统需适应不同微处理器平台,并能随硬件变化配置结构与功能。这主要体现其( )。

  • A. 可定制性

  • B. 实时性

  • C. 可靠性

  • D. 易移植性

答案与解析

平台答案:A。

整理解析

按“随硬件变化配置结构和功能”的重点选 A。跨微处理器平台运行也涉及易移植性,但可定制性更强调按产品需求裁剪、组合和配置系统,题干将两种特性放在了一起。

进程、线程与状态转换

程序、进程和 PCB

程序是静态的指令和数据描述,进程是程序在某个数据集合上的一次执行活动。 同一程序可以有多个进程实例。教材通常把进程描述为程序段、数据段和进程控制块 PCB 的组合。

PCB 保存进程标识、状态、调度信息、资源信息和运行上下文等。教材说“PCB 是进程存在的唯一标志”,是强调操作系统通过这种控制结构管理进程;实际操作系统的数据结构可能拆分成多个对象。

在传统单线程模型中,进程既是资源分配单位,也是调度单位。在支持线程的系统中,通常由**进程承载资源和地址空间,由线程承载执行上下文并参与调度**。用户级线程还可能先由运行库调度到内核可见的执行实体上。

PCB 如何组织

操作系统除了为每个进程保存 PCB,还需要快速找到某种状态的进程。**链接方式**通过 PCB 中的链接字段,把就绪或阻塞进程串成队列;**索引方式**另建就绪表、阻塞表等索引表,由有效表项定位 PCB。图里“独立表项 → PCB”体现索引组织,“PCB → 下一个 PCB”体现链接组织。

数进程时,应分别沿运行指针、就绪表和阻塞表找出实际 PCB;表的预留空项不计数,同一个 PCB 也不能因为有多个指针引用而重复计数。PCB 在纸面上排成一列,不等于采用顺序组织。

同一进程中哪些资源共享

同一进程的线程共享地址空间而各自具有程序计数器、寄存器和栈

通常共享 每个线程各自维护
进程地址空间、代码、全局数据、堆、打开的文件等进程资源 程序计数器、寄存器上下文、栈指针、调用栈、线程局部存储等

“线程的栈私有”是指各线程有自己的栈和栈指针,不能让多个线程把同一份执行上下文当作自己的独立上下文。它不意味着同一进程内存在硬件强制的栈内存隔离:在合法地址、对象生命周期等条件满足时,一个线程可能通过指针访问另一个线程栈中的数据,仍需处理同步和生命周期问题。

原文用“父亲的资源大家能用,儿子的资源只能自己用”助记,容易和父子进程混淆;这里讨论的是**同一进程中的线程**,不是父子进程必然共享全部可写内存。

例题 3:线程的栈指针

在支持多线程的操作系统中,假设进程 P 创建了 t1、t2、t3 线程,那么( )。

  • A、该进程的代码段不能被 t1、t2、t3 共享
  • B、该进程的全局变量只能被共享
  • C、该进程中 t1、t2、t3 的栈指针不能被共享
  • D、该进程中 t1 的栈指针可以被 t2、t3 共享
参考答案与原文问题

按线程执行上下文的考点,预期选 C。 各线程有自己的栈指针,保存自己的调用位置;代码和全局数据通常由同一进程的线程共享。

原文 B 的“全局变量只能被共享”表述不完整、含义不清,此处原样保留,不能把它悄悄改成另一个错误选项。若 B 原意是“全局变量可以被这些线程共享”,它也成立,因此这道题的单选严谨性受该处措辞影响。C 的“不能共享”按独立维护栈指针理解,不等于禁止读取其他线程提供的栈内存地址。

三态模型

运行、就绪和等待三态及其转换

状态 含义 典型后续转换
运行 正在处理器上执行 用完时间片或被抢占后就绪;等待 I/O、资源或事件时阻塞
就绪 已具备继续执行的条件,等待处理器 被调度后运行
阻塞/等待 需要的事件或条件尚未满足 事件完成后先变为就绪,再等待调度

在单个执行核心的简化模型中,同一时刻**至多**有一个执行实体运行,并非始终“有且只有一个用户进程运行”;处理器可能空闲,或者执行内核与中断处理。多核系统可有多个线程同时运行,同一个多线程进程也可能占用多个核心。

三态图中,等待完成只解决“能不能执行”,调度才解决“现在由谁执行”,因此阻塞通常先转就绪,不画成直接进入运行。

本课件的五态模型与挂起

课件中的运行、活跃就绪、活跃阻塞、静止就绪和静止阻塞五态

本图采用“引入挂起”的五态口径:运行、活跃就绪、活跃阻塞、静止就绪、静止阻塞。“活跃”表示可以在相应驻留条件下参与调度,“静止”表示挂起;挂起可能由内存压力、调试或系统管理引起。

  • 活跃就绪挂起后成为静止就绪;恢复后回到活跃就绪。
  • 活跃阻塞挂起后成为静止阻塞;若所等待事件先完成,转为静止就绪,仍需恢复后才参与调度。
  • 运行进程被挂起后要交出处理器,本图转到静止就绪,不存在继续占着 CPU 的“挂起运行态”。

其他教材的“五态”可能指**新建、就绪、运行、阻塞、终止**,再加两个挂起态构成七态。应先看具体状态名称,不能只按“五态”三个字套图。现代系统也不一定把整个进程完整换出到磁盘才称为暂停或挂起。

抢占与非抢占:先判断谁让出了 CPU

非抢占式调度让运行实体执行到完成、主动阻塞或主动让出处理器;抢占式调度允许系统在时间片用完、出现更高优先级就绪实体等条件下收回 CPU。抢占后,若原进程仍具备运行条件,它转为就绪;只有等待资源或事件才转为阻塞。

策略 选择规则 是否因时间片到而轮换
先来先服务 FCFS 从就绪队列中选先到者,通常按非抢占模型执行 否
时间片轮转 RR 就绪队列轮流运行,未完成者用完时间片回队尾 是
优先级调度 在可运行者中选优先级较高者 取决于题目规定为抢占式还是非抢占式

释放一台设备可以使等待该设备的进程就绪,但释放者未必同时交出 CPU。时钟中断或 I/O 中断可以触发内核检查是否需要调度;“发生中断”与“抢占了当前进程”也不等价。Android 主线程若等 I/O 会让出执行机会,若只是做长计算则可能被系统抢占,二者对应的状态原因不同。

时间片长度还影响 RR 的表现:若时间片足以让每次被调度的 CPU 运行段在到期前完成或阻塞,就不会发生时间片轮换,表现趋于 FCFS。例如 A、B 依次就绪,分别只需连续计算 3、2 ms,时间片为 5 ms,则 A 完成后才轮到 B。缩短时间片可增加交互任务获得 CPU 的机会,但过短会增加上下文切换开销,不能认为越短越好。

例题 4:FCFS 与时间片的矛盾

在单处理机系统中,采用先来先服务调度算法。系统中有 4 个进程 P1、P2、P3、P4(假设进程按此顺序到达),其中 P1 为运行状态,P2 为就绪状态,P3 和 P4 为等待状态,且 P3 等待打印机,P4 等待扫描仪。若 P1( ),则 P1、P2、P3 和 P4 的状态应分别为( )。

第一空:

  • A、时间片到
  • B、释放了扫描仪
  • C、释放了打印机
  • D、已完成

第二空:

  • A、等待、就绪、等待和等待
  • B、运行、就绪、运行和等待
  • C、就绪、运行、等待和等待
  • D、就绪、就绪、等待和运行
原题有矛盾,不能按现有题干给出无条件唯一答案

常规 FCFS 是非抢占式调度,不因时间片用完而轮换,所以第一空 A 与题干的调度算法冲突。

  • 若 P1 释放扫描仪并继续运行,P4 可从等待变为就绪;没有相符的第二组选项。
  • 若 P1 释放打印机并继续运行,P3 可从等待变为就绪;没有相符的第二组选项。
  • 若 P1 完成,P1 应进入终止状态,P2 可运行;若完成伴随资源释放,相关等待者还可能就绪。第二组选项没有终止状态。
  • 第二组 B 让两个进程同时运行,也不符合题设的单处理机模型。

只有把算法改为时间片轮转,并假设 P1 尚未完成时,才可得到 A、C:P1 就绪,P2 运行,P3、P4 继续等待。 这是对一种可能修订的解释,不是原题在 FCFS 条件下的正确答案。

专项题库练习(8 题)

本小节对应题库练习共 8 道题目,题目覆盖本节考点,答案与解析默认折叠。

题目 026

来源:知识点练习「操作系统」第 26 题(原站入口)。

进程 P 在支持多线程的操作系统中创建了多个线程。以下哪项不作为这些线程的共享执行状态?

  • A. 进程已打开的文件
  • B. 进程的代码段
  • C. 某个线程的栈指针
  • D. 进程的全局变量
答案与解析

平台答案:C。

整理解析

线程共享进程的地址空间和文件等资源,但各自保存寄存器上下文;栈指针决定该线程当前的栈位置,须独立维护,选 C。这里的“不共享”指执行状态各自独立,并不表示同一地址空间内的栈内存天然禁止其他线程访问;线程也可有线程局部存储等私有状态。

题目 047

来源:知识点练习「操作系统」第 47 题(原站入口)。

图中展示了进程控制块 PCB 及其指针、表之间的关系。第(47)空判断 PCB 的组织方式,第(48)空判断运行、就绪、阻塞进程的数量。本题回答第(47)空。

原题图

  • A. 链接方式
  • B. 索引方式
  • C. 顺序方式
  • D. Hash 方式
答案与解析

平台答案:B。

整理解析

图中先按状态建立就绪索引表、阻塞索引表,再由表项定位到各个 PCB,属于索引组织,选 B。判断依据是通过独立索引表查找 PCB,不能仅因 PCB 在图上竖直排列就判为顺序组织。

题目 048

来源:知识点练习「操作系统」第 48 题(原站入口)。

图中展示了进程控制块 PCB 及其指针、表之间的关系。第(47)空判断 PCB 的组织方式,第(48)空判断运行、就绪、阻塞进程的数量。本题回答第(48)空,选项中的数量依次对应运行、就绪、阻塞进程。

原题图

  • A. 1、2、4
  • B. 2、3、2
  • C. 1、3、3
  • D. 1、4、2
答案与解析

平台答案:C。

整理解析

运行指针直接指向 PCB1,共 1 个运行进程;就绪索引表的 3 个有效表项分别指向 PCB2、PCB3、PCB4;阻塞索引表的 3 个有效表项分别指向 PCB5、PCB6、PCB7。依次为 1、3、3,选 C,空表项不计入进程数量。

题目 065

来源:知识点练习「操作系统」第 65 题(原站入口)。

单处理机采用先来先服务调度。P1、P2、P3、P4 按此顺序到达;当前 P1 运行、P2 就绪、P3 等待打印机、P4 等待扫描仪。若 P1 发生(65),则四个进程按 P1、P2、P3、P4 顺序的状态为(66)。

请作答:第 65 题。

  • A. 时间片到

  • B. 释放了扫描仪

  • C. 释放了打印机

  • D. 已完成

答案与解析

平台答案:A。

整理解析

平台选 A,但题干与答案不自洽。标准先来先服务 FCFS 是非抢占调度,不因时间片到而把运行进程转回就绪;若采用时间片轮转,才会出现 P1 就绪、P2 运行、P3/P4 继续等待的第 66 题 C。此处保留原题的 FCFS 条件及平台答案,不能将其当作正确的 FCFS 规则。

题目 066

来源:知识点练习「操作系统」第 66 题(原站入口)。

单处理机采用先来先服务调度。P1、P2、P3、P4 按此顺序到达;当前 P1 运行、P2 就绪、P3 等待打印机、P4 等待扫描仪。若 P1 发生(65),则四个进程按 P1、P2、P3、P4 顺序的状态为(66)。

请作答:第 66 题。

  • A. 等待、就绪、等待和等待

  • B. 运行、就绪、运行和等待

  • C. 就绪、运行、等待和等待

  • D. 就绪、就绪、等待和运行

答案与解析

平台答案:C。

整理解析

平台选 C,对应“P1 就绪、P2 运行、P3/P4 等待”。这能由时间片用尽并抢占 P1 得到,但与题干的非抢占 FCFS 不符。第 65、66 题的平台组合 A/C 需要改用时间片轮转等额外前提;按原题条件不能据此推出该状态组合。

同材料可参照第 65 题。

题目 082

来源:知识点练习「操作系统」第 82 题(原站入口)。

支持多线程的操作系统中,进程 P 创建 T1、T2、T3 三个线程。下列说法错误的是( )。

  • A. T1、T2、T3 可共享 P 的代码

  • B. T1、T2 可共享 P 中 T3 的栈指针

  • C. T1、T2、T3 可共享 P 打开的文件

  • D. T1、T2、T3 可共享 P 的全局变量

答案与解析

平台答案:B。

整理解析

选 B。同进程线程共享代码、打开的文件及全局数据,但各自有独立的寄存器执行上下文,包括栈指针。线程可能通过地址访问彼此的栈内存,这不等于共享同一个执行用栈指针,操作这类共享内存仍需同步。

题目 089

来源:知识点练习「操作系统」第 89 题(原站入口)。

单处理机系统有 1 台打印机、1 台扫描仪,采用先来先服务调度。当前 P1 运行、P2 就绪、P3 等待打印机、P4 等待扫描仪。若 P1 释放扫描仪,P1、P2、P3、P4 的状态依次为( )。

  • A. 等待、 运行、等待、就绪

  • B. 运行、就绪、等待、就绪

  • C. 就绪、就绪、等待、运行

  • D. 就绪、运行、等待、就绪

答案与解析

平台答案:B。

整理解析

选 B。释放扫描仪使等待它的 P4 转为就绪;FCFS 不因此抢占 P1,所以 P1 仍运行、P2 仍就绪、P3 仍等打印机。平台称 P1“还有打印机没有运行完成”没有题干依据;保持运行的原因是释放设备不等于让出 CPU。

题目 095

来源:知识点练习「操作系统」第 95 题(原站入口)。

P1 正在运行,操作系统强行收回其占用的 CPU,改让优先级更高的 P2 运行。这种调度方式称为( )。

  • A. 中断方式

  • B. 先进先出方式

  • C. 可剥夺方式

  • D. 不可剥夺方式

答案与解析

平台答案:C。

整理解析

选 C。运行中的进程尚未主动阻塞或结束,就被调度器收回 CPU,属于可剥夺(抢占式)调度。中断可触发调度,但中断与这种调度策略不是同一概念,也不能把中断简单定义为 I/O 阻塞。

信号量、PV 操作与同步互斥

信号量用于管理许可或表示等待条件;P(wait)申请许可,V(signal)提供或归还许可。它们必须具有原子性以及正确的阻塞、唤醒协调,不能用普通共享变量随意加减来替代。

本课件采用可为负数的记录型信号量:

记录型信号量P操作减1并可能阻塞,V操作加1并可能唤醒

P(S):S = S - 1;若 S < 0,阻塞当前进程。
V(S):S = S + 1;若 S <= 0,唤醒一个等待进程。

在该约定下,负值的绝对值表示等待者数量。被 V 唤醒的进程继续完成原来那次 P,不再重复减 1。某些接口只显示非负可用许可数,不能把两种计数口径混用。

互斥访问与资源计数

使用一台打印机时在实际使用前后执行P和V

互斥保护一个临界区时,初始未占用的访问权通常为 1。若管理的是多个可替换资源实例,则可用计数信号量记录其数量;例如 2 台空闲打印机,初值为 2,不能把它和“只有一份临界区访问权”混为一谈。

临界区是访问共享数据、需要互斥保护的一段代码。保护“读取 → 检查 → 更新”必须覆盖整个操作,不能只锁最后一次赋值:例如两个线程都读到库存为 1,再各自减 1 写回,就可能各自认为购买成功。应在第一次读共享库存前 P,成功与失败两条退出路径都 V;每次执行只走其中一条释放路径,不能漏释放或重复释放。临时变量属于各线程自己的工作数据,但它来自共享值,并不能消除这段操作的竞争。

教材常用四条原则检查临界区方案:空闲让进,空闲时允许申请者进入;忙则等待,已有使用者时其他申请者等待;有限等待,避免某个申请者被无限推迟;让权等待,不能进入者交出 CPU,避免忙等。它们分别涉及能否前进、互斥、公平性和等待方式。自旋锁可以实现互斥,却不满足这里的让权等待;有互斥也不自动保证没有饥饿。

若有 m 个初始空闲实例、n 个进程,每个进程最多有一次尚未归还的申请,记录型信号量满足 m−n≤S≤m;当 n≥m 时,最坏有 n−m 个等待者。一般根据当前值读状态可用 空闲许可数=max(S,0)、等待者数=max(−S,0),负值不代表物理资源消失。PV 用错顺序仍会死锁,使用了信号量并不自动保证正确。

原文思考:2 台打印机,3 个进程各需互斥使用一台,S 初值和范围是多少?

参考推导:打印机信号量的变化

在每个进程至多占有或申请一台、打印机最初全空闲的前提下,S = 2。三个进程依次 P 后,S 为 1、0、-1,第三个阻塞;已有使用者 V 后,S 从 -1 变为 0,唤醒第三个进程。

因此这道思考题在记录型表示中的范围是 -1~2。若每个进程可重复申请并同时占多台,需重新建模,不能继续使用这一范围。

同步信号量的初值由初始条件决定

单缓冲区的空位信号量S1和产品信号量S2

图中的 S1 表示空位、初值 1;S2 表示产品、初值 0。生产者先 P(S1) 取得空位,再放入产品并 V(S2);消费者先 P(S2) 等产品,再取出并 V(S1) 归还空位。

同步信号量并不总从 0 开始,也不是所有同步操作都必须先执行 V。 前驱尚未完成的通知可设 0;容量 N、初有 k 个产品的缓冲区,通常设 empty=N-k、full=k;互斥锁初始可用则设 mutex=1。初值本身就能提供许可。

图中的简化流程针对单槽、单生产者和单消费者的交替访问;扩展为一般多生产者、多消费者缓冲区时,还要保护共享下标等临界区,并避免持锁等待空位或产品。

详细模型和先申请数量许可、后取得互斥锁的原因,复用信号量与 PV 操作专题。

例题 5:负数信号量

假设系统中有 n 个进程共享 3 台扫描仪,并采用 PV 操作实现进程同步与互斥。若系统信号量 S 的当前值为 -1,进程 P1、P2 又分别执行了 1 次 P(S) 操作,那么信号量 S 的值应为( )。

  • A、3
  • B、-3
  • C、1
  • D、-1
参考答案与推导

选 B。 按题目采用的记录型信号量规则,两次 P 各减 1:-1 - 1 - 1 = -3。假定中间没有其他 P/V 操作,此时有 3 个进程等待,不是存在“负三台扫描仪”。

专项题库练习(8 题)

本小节对应题库练习共 8 道题目,题目覆盖本节考点,答案与解析默认折叠。

题目 009

来源:知识点练习「操作系统」第 9 题(原站入口)。

n 个进程共同使用两台打印机,用 P、V 操作实现同步与互斥。表示打印机资源的信号量 S 可以取哪些值?

  • A. −2~n
  • B. −(n−1)~1
  • C. −(n−1)~2
  • D. −(n−2)~2
答案与解析

平台答案:D。

整理解析

按每个进程至多有一次尚未归还的打印机申请、P/V 成对执行的模型,S 初值为 2;全部 n 个进程均提出申请时,S = 2−n = −(n−2)。所以范围是 [2−n, 2],选 D;n ≥ 2 时最多有 n−2 个进程等待。纠错:平台解析末句写成 n−2,漏了负号。

题目 021

来源:知识点练习「操作系统」第 21 题(原站入口)。

流水线上有 2 名工人 P1、P2 和 1 名检验员 P3。P1 初加工后把半成品放入 B1;P2 从 B1 取出继续加工,再把成品放入 B2;P3 从 B2 取出检验。B1 最多存 n 件半成品,B2 最多存 m 件成品。图示同步方案采用 6 个信号量 S1~S6,其中 S3、S6 初值均为 0。第(21)空判断 S1、S5 的作用及初值;第(22)空求 S2、S4 的初值。本题回答第(21)空,各选项中的顺序均为 S1、S5。

原题图

  • A. 分别为同步、互斥信号量,初值为 0、1
  • B. 均为同步信号量,初值为 0、0
  • C. 均为互斥信号量,初值为 1、1
  • D. 均为互斥信号量,初值为 0、1
答案与解析

平台答案:C。

整理解析

图中 P(S1)/V(S1) 包围对 B1 的存取,P(S5)/V(S5) 包围对 B2 的存取;它们分别保护两个共享箱子的临界区,属于互斥信号量。初值均为 1,表示每个箱子的存取临界区一次只允许一个进程进入,选 C。初值若为 0,首次存取就会被阻塞。

题目 022

来源:知识点练习「操作系统」第 22 题(原站入口)。

流水线上有 2 名工人 P1、P2 和 1 名检验员 P3。P1 初加工后把半成品放入 B1;P2 从 B1 取出继续加工,再把成品放入 B2;P3 从 B2 取出检验。B1 最多存 n 件半成品,B2 最多存 m 件成品。图示同步方案采用 6 个信号量 S1~S6,其中 S3、S6 初值均为 0。第(21)空判断 S1、S5 的作用及初值;第(22)空求 S2、S4 的初值。本题回答第(22)空,两个初值依次对应 S2、S4。

原题图

  • A. n、0
  • B. m、0
  • C. m、n
  • D. n、m
答案与解析

平台答案:D。

整理解析

P1 放入 B1 前 P(S2),P2 从 B1 取出后 V(S2),因此 S2 统计 B1 的空位;同理 S4 统计 B2 的空位。S3、S6 是已放入物品的计数,初值均为 0 表示两箱起初为空,所以 S2 = n、S4 = m,选 D。

题目 037

来源:知识点练习「操作系统」第 37 题(原站入口)。

n 个进程共享 3 台扫描仪,使用 P、V 操作同步与互斥。当前信号量 S = −1;随后 P1 和 P2 各执行一次 P(S),没有其他操作穿插时,S 变为多少?

  • A. 3
  • B. −3
  • C. 1
  • D. −1
答案与解析

平台答案:B。

整理解析

按可取负值的计数信号量定义,P 操作先将 S 减 1,再在结果为负时阻塞调用者。因此两次 P 后 S = −1−1−1 = −3,选 B,表示此时有 3 个等待者。阻塞不撤销已经完成的计数递减。

题目 052

来源:知识点练习「操作系统」第 52 题(原站入口)。

铁路售票系统有 n 个终端,每个终端由进程 Pi(i=1,2,…,n)管理。单元 Tj(j=1,2,…,m)保存某日某趟列车的剩余票数,Temp 是 Pi 的临时工作单元,x 是用户购买张数。按图示流程,用 P、V 操作实现同步与互斥:信号量 S 的初值为(52);流程中的 (a)、(b)、© 依次应填(53)。

题目配图

请作答:第 52 题。

  • A. n-1

  • B. 0

  • C. 1

  • D. 2

答案与解析

平台答案:C。

整理解析

选 C。S 用作保护剩余票数“读取—检查—扣减—写回”整体操作的互斥锁,初值为 1。它表示允许同时进入该临界区的进程数,不是票数、终端数 n 或票数单元数 m。

题目 053

来源:知识点练习「操作系统」第 53 题(原站入口)。

铁路售票系统有 n 个终端,每个终端由进程 Pi(i=1,2,…,n)管理。单元 Tj(j=1,2,…,m)保存某日某趟列车的剩余票数,Temp 是 Pi 的临时工作单元,x 是用户购买张数。按图示流程,用 P、V 操作实现同步与互斥:信号量 S 的初值为(52);流程中的 (a)、(b)、© 依次应填(53)。

题目配图

请作答:第 53 题。

  • A. V(S)、P(S)和P(S)

  • B. P(S)、P(S)和V(S)

  • C. V(S)、V(S)和P(S)

  • D. P(S)、V(S)和V(S)

答案与解析

平台答案:D。

整理解析

选 D。(a) 在读取共享票数前执行 P(S);票不足的 (b) 分支和成功扣票的 © 分支都要执行 V(S)。每次只经过一个释放分支,否则可能漏解锁或错误增加许可。原解析把初值归因于单元数不准确,依据应是临界区互斥。

同材料可参照第 52 题。

题目 069

来源:知识点练习「操作系统」第 69 题(原站入口)。

P、V 是操作系统提供的原语。利用 PV 操作能够( )。

  • A. 保证系统不会死锁

  • B. 使资源得到互斥使用

  • C. 提高资源利用率

  • D. 推迟进程使用共享资源的时间

答案与解析

平台答案:B。

整理解析

选 B。将互斥信号量初值设为 1,进入临界区前 P、离开时 V,可控制共享资源的互斥使用;用法不当仍会死锁。PV 是信号量操作,不是“一次发送一个消息”;互斥资源也属于共享资源,原解析对这两点的表述有误。

题目 081

来源:知识点练习「操作系统」第 81 题(原站入口)。

n 个进程(n≥5)共享 5 个可用资源 R,并使用 PV 操作管理。对应信号量 S 的取值范围为( )。

  • A. -1~n-1

  • B. -5~5

  • C. -(n-1)~1

  • D. -(n-5)~5

答案与解析

平台答案:D。

整理解析

选 D。按有符号计数信号量、每进程最多持有或等待 1 个 R 的教材模型,初值和最大值为 5;5 个进程持有资源、其余 n−5 个等待时,S=−(n−5)。负值的绝对值表示等待数。若允许单进程多次未配对申请,题目给出的范围便不能直接套用。

前趋图与 PV 操作

前趋图,也常写作前驱图,用有向边表示任务间的先后依赖。A → D 表示 D 必须等 A 的相应任务完成后才能继续,并不表示 A 和 D 之间存在资源分配。

包饺子任务从全部串行改为三个准备任务并发

A 绞肉、B 切葱末、C 切姜末可以并发;D 搅拌要等三者完成;E 包饺子再等 D。

A、B、C汇合到D,D再指向E的依赖图

用Sa、Sb、Sc、Sd实现准备、搅拌、包饺子的两种表示

采用**每条依赖边设置一个信号量**的直接翻译法时,各信号量初值为 0;前驱任务完成后执行 V,后继任务开始前执行 P。多条入边要等齐,多条出边要分别通知。

任务 开始前 完成后
A 绞肉 无 V(Sa)
B 切葱末 无 V(Sb)
C 切姜末 无 V(Sc)
D 搅拌 P(Sa); P(Sb); P(Sc) V(Sd)
E 包饺子 P(Sd) 无

“有几条边就必须有几个信号量”仅是这套构造方法的规则,不是所有同步实现的最小数量定理。某些结构可用计数、屏障等方案实现;考试已指定一边一信号量时,按配对关系作答即可。

前趋图也可以同时表达作业自身的阶段顺序与设备占用顺序。例如每个作业都要输入 Iᵢ、计算 Cᵢ、输出 Oᵢ,便有 Iᵢ→Cᵢ→Oᵢ;若只有一台输入设备且已确定服务先后,还要添加输入阶段之间的顺序边。CPU、输入设备、输出设备是不同资源,因此“下一作业输入”和“上一作业计算”可以重叠;同一台设备上的两个阶段则不能同时占用。填图时先按资源辨认行或列,再检查同一作业的前后依赖,不能只凭节点编号猜位置。

例题 6:四进程前趋图

进程 P1、P2、P3 和 P4 的前趋图如下所示。若用 PV 操作控制进程 P1~P4 并发执行的过程,则需要设置 5 个信号量 S1、S2、S3、S4 和 S5,且初值都等于 0。下图中 a、b 和 c 处应分别填写( );d、e 和 f 处应分别填写( )。

例题6:P1到P2和P3、P3到P2、P2和P3到P4的前趋关系

例题6:四个进程的PV填空位置a到f

第一空:

  • A、V(S1)V(S2)、P(S1)V(S3) 和 V(S4)
  • B、P(S1)V(S2)、P(S1)P(S2) 和 V(S1)
  • C、V(S1)V(S2)、P(S1)P(S3) 和 V(S4)
  • D、P(S1)P(S2)、V(S1)P(S3) 和 V(S2)

第二空:

  • A、P(S2)、V(S3)V(S5) 和 P(S4)P(S5)
  • B、V(S2)、P(S3)V(S5) 和 V(S4)P(S5)
  • C、P(S2)、V(S3)P(S5) 和 P(S4)V(S5)
  • D、V(S2)、V(S3)P(S5) 和 P(S4)V(S5)
参考答案与逐边推导

选 C、A。 特别看清图中间的箭头是 P3 → P2,不是 P2 → P3。

边 信号量 前驱通知 后继等待
P1 → P2 S1 P1 的 a:V(S1) P2 的 b:P(S1)
P1 → P3 S2 P1 的 a:V(S2) P3 的 d:P(S2)
P3 → P2 S3 P3 的 e:V(S3) P2 的 b:P(S3)
P2 → P4 S4 P2 的 c:V(S4) P4 的 f:P(S4)
P3 → P4 S5 P3 的 e:V(S5) P4 的 f:P(S5)

所以 a 发两个通知,b 等两个条件,c 发一个通知;d 等一个条件,e 发两个通知,f 等两个条件。信号量名称本身没有固定含义,关键是每条依赖两端使用同一个信号量。

专项题库练习(26 题)

本小节对应题库练习共 26 道题目,题目覆盖本节考点,答案与解析默认折叠。

题目 015

来源:知识点练习「操作系统」第 15 题(原站入口)。

P1~P5 的先后依赖关系和待补的并发执行流程分别见两图。使用 P、V 操作及 5 个信号量 S1~S5 控制执行,这 5 个信号量初值均为 0。第(15)空对应 a、b、c;第(16)空对应 d、e;第(17)空对应 f、g。本题回答第(15)空,三项操作按 a、b、c 的顺序列出。

原题图1

原题图2

  • A. V(S1);P(S1);V(S2)V(S3)
  • B. P(S1);V(S1);V(S2)V(S3)
  • C. V(S1);V(S2);P(S1)V(S3)
  • D. P(S1);V(S2);V(S1)V(S3)
答案与解析

平台答案:A。

整理解析

P2 必须等待 P1,因此 P1 结束处 a 发出 V(S1),P2 开始处 b 执行 P(S1)。P2 完成后要分别放行 P3、P4,故 c 为 V(S2)V(S3),选 A。纠错:平台解析首句把通知 P2 的前驱写成 P3;原图明确是 P1→P2。

题目 016

来源:知识点练习「操作系统」第 16 题(原站入口)。

P1~P5 的先后依赖关系和待补的并发执行流程分别见两图。使用 P、V 操作及 5 个信号量 S1~S5 控制执行,这 5 个信号量初值均为 0。第(15)空对应 a、b、c;第(16)空对应 d、e;第(17)空对应 f、g。本题回答第(16)空,两个操作按 d、e 的顺序列出。

原题图1

原题图2

  • A. V(S2);P(S4)
  • B. P(S2);V(S4)
  • C. P(S2);P(S4)
  • D. V(S2);V(S4)
答案与解析

平台答案:B。

整理解析

P3 的前驱是 P2,所以在入口 d 用 P(S2) 等待 P2 完成;P3 又是 P5 的前驱,因此出口 e 用 V(S4) 通知 P5,选 B。纠错:共享的平台解析首句误写成 P3 通知 P2,原图的对应依赖是 P1→P2。

题目 017

展开题目 017(先作答,再查看解析)

来源:知识点练习「操作系统」第 17 题(原站入口)。

P1~P5 的先后依赖关系和待补的并发执行流程分别见两图。使用 P、V 操作及 5 个信号量 S1~S5 控制执行,这 5 个信号量初值均为 0。第(15)空对应 a、b、c;第(16)空对应 d、e;第(17)空对应 f、g。本题回答第(17)空,两项操作按 f、g 的顺序列出。

原题图1

原题图2

  • A. P(S3);V(S4)V(S5)
  • B. V(S3);P(S4)P(S5)
  • C. P(S3);P(S4)P(S5)
  • D. V(S3);V(S4)V(S5)
答案与解析

平台答案:C。

整理解析

P4 要等 P2,故入口 f 用 P(S3)。P5 必须同时等到 P3 和 P4 完成,因此入口 g 要分别取得 S4、S5 的完成信号,即 P(S4)P(S5),选 C。纠错:共享的平台解析把 P1→P2 的通知方误写为 P3,以原图为准。

题目 028

展开题目 028(先作答,再查看解析)

来源:知识点练习「操作系统」第 28 题(原站入口)。

P1~P5 的前趋关系与待补操作的执行流程见两图。用 P、V 操作和 5 个信号量 S1~S5 控制并发,所有信号量初值为 0。第(28)空填 a、b,第(29)空填 c、d,第(30)空填 e、f。本题回答第(28)空,各选项按 a、b 的顺序列出。

原题图1

原题图2

  • A. V(S1)P(S2);V(S3)
  • B. P(S1)V(S2);V(S3)
  • C. V(S1)V(S2);V(S3)
  • D. P(S1)P(S2);V(S3)
答案与解析

平台答案:C。

整理解析

图中 P1 完成后要放行 P2、P3,故 a 用 V(S1)V(S2);P2 完成后放行 P4,故 b 用 V(S3),选 C。纠错:信号量名称不是按进程编号强制分配的,应与题图给出的等待操作及各条依赖边保持一致;本图已有 P2 等待 S1、P4 等待 S3 等约束。

题目 029

展开题目 029(先作答,再查看解析)

来源:知识点练习「操作系统」第 29 题(原站入口)。

P1~P5 的前趋关系与待补操作的执行流程见两图。用 P、V 操作和 5 个信号量 S1~S5 控制并发,所有信号量初值为 0。第(28)空填 a、b,第(29)空填 c、d,第(30)空填 e、f。本题回答第(29)空,各选项按 c、d 的顺序列出。

原题图1

原题图2

  • A. P(S2);P(S4)
  • B. P(S2);V(S4)
  • C. V(S2);P(S4)
  • D. V(S2);V(S4)
答案与解析

平台答案:B。

整理解析

P3 要等 P1 完成,所以入口 c 执行 P(S2);P3 完成后要通知 P5,出口 d 执行 V(S4),选 B。纠错:共享解析所称按节点编号给信号量命名不是通用规则;名称可换,关键是每条依赖的通知与等待使用同一个信号量。

题目 030

展开题目 030(先作答,再查看解析)

来源:知识点练习「操作系统」第 30 题(原站入口)。

P1~P5 的前趋关系与待补操作的执行流程见两图。用 P、V 操作和 5 个信号量 S1~S5 控制并发,所有信号量初值为 0。第(28)空填 a、b,第(29)空填 c、d,第(30)空填 e、f。本题回答第(30)空,各选项按 e、f 的顺序列出。

原题图1

原题图2

  • A. P(S4);V(S4)V(S5)
  • B. V(S5);P(S4)P(S5)
  • C. V(S3);V(S4)V(S5)
  • D. P(S3);P(S4)V(P5)
答案与解析

平台答案:B。

整理解析

P4 完成后须通过 S5 通知 P5,所以 e 为 V(S5);P5 要同时等 P3、P4 完成,入口 f 为 P(S4)P(S5),选 B。信号量编号只需与依赖边一致,并无按进程编号强制命名的规则。原文疑点:D 项末尾写作 V(P5),而题设 P5 是进程名,未定义为信号量;此处保留原选项,未推测改成 V(S5)。 原选项的这一写法已核实。

题目 034

展开题目 034(先作答,再查看解析)

来源:知识点练习「操作系统」第 34 题(原站入口)。

系统只有 1 个 CPU、1 台输入设备和 1 台输出设备。4 个作业 T1、T2、T3、T4 按优先级调度,优先级依次为 T1 > T2 > T3 > T4。每个 Ti(i = 1、2、3、4)都有输入 Ii、计算 Ci、输出 Pi 三段,并须按 Ii→Ci→Pi 执行。图中给出并发执行的前驱关系:第(34)空填①、②,第(35)空填③、④、⑤。本题回答第(34)空,各选项按①、②的顺序列出。

原题图

  • A. I2、P2
  • B. I2、C2
  • C. C1、P2
  • D. C1、P3
答案与解析

平台答案:C。

整理解析

由图上已有的 I1、I2、I4,C2、C3 和 P1、P3 可识别三行分别是输入、计算、输出。①紧接 I1 且位于 C2 之前,是 C1;②接收 C2 的完成关系并位于 P1、P3 之间,是 P2。因此选 C。

题目 035

展开题目 035(先作答,再查看解析)

来源:知识点练习「操作系统」第 35 题(原站入口)。

系统只有 1 个 CPU、1 台输入设备和 1 台输出设备。4 个作业 T1、T2、T3、T4 按优先级调度,优先级依次为 T1 > T2 > T3 > T4。每个 Ti(i = 1、2、3、4)都有输入 Ii、计算 Ci、输出 Pi 三段,并须按 Ii→Ci→Pi 执行。图中给出并发执行的前驱关系:第(34)空填①、②,第(35)空填③、④、⑤。本题回答第(35)空,各选项按③、④、⑤的顺序列出。

原题图

  • A. C2、C4、P4
  • B. I2、I3、C4
  • C. I3、P3、P4
  • D. I3、C4、P4
答案与解析

平台答案:D。

整理解析

③在输入行的 I2 与 I4 之间,应为 I3;④在计算行且承接 I4、C3,应为 C4;⑤在输出行,承接 C4、P3,应为 P4。依次为 I3、C4、P4,选 D。图中的横向关系约束同一设备使用,斜向关系约束同一作业的阶段顺序。

题目 042

展开题目 042(先作答,再查看解析)

来源:知识点练习「操作系统」第 42 题(原站入口)。

P1~P5 的前趋关系和并发执行流程见两图。用 P、V 操作以及 5 个信号量 S1~S5 保证这些依赖,所有信号量初值均为 0。第(42)空填 a、b,第(43)空填 c、d,第(44)空填 e、f。本题回答第(42)空,各选项按 a、b 的顺序列出。

原题图1

原题图2

  • A. V(S1);P(S2)V(S3)
  • B. P(S1);V(S2)V(S3)
  • C. V(S1);V(S2)V(S3)
  • D. P(S1);P(S2)V(S3)
答案与解析

平台答案:B。

整理解析

P2 入口 a 要等待 P1 发出的 S1,因此用 P(S1);P2 完成后分别通过 S2、S3 放行后继 P3、P4,出口 b 为 V(S2)V(S3),选 B。P4 还须等待 P3 的另一条前驱约束,不能只收到 S3 就执行。

题目 043

展开题目 043(先作答,再查看解析)

来源:知识点练习「操作系统」第 43 题(原站入口)。

P1~P5 的前趋关系和并发执行流程见两图。用 P、V 操作以及 5 个信号量 S1~S5 保证这些依赖,所有信号量初值均为 0。第(42)空填 a、b,第(43)空填 c、d,第(44)空填 e、f。本题回答第(43)空,各选项按 c、d 的顺序列出。

原题图1

原题图2

  • A. P(S2);P(S4)
  • B. V(S2);P(S4)
  • C. P(S2);V(S4)
  • D. V(S2);V(S4)
答案与解析

平台答案:C。

整理解析

P3 必须等待 P2,所以入口 c 用 P(S2)。原图的 P3 后继是 P4,P3 完成后通过出口 d 的 V(S4) 通知 P4,选 C。虽与其他前趋题使用相同操作符号,依赖边和选项顺序不同,不能据此当作重复题。

题目 044

展开题目 044(先作答,再查看解析)

来源:知识点练习「操作系统」第 44 题(原站入口)。

P1~P5 的前趋关系和并发执行流程见两图。用 P、V 操作以及 5 个信号量 S1~S5 保证这些依赖,所有信号量初值均为 0。第(42)空填 a、b,第(43)空填 c、d,第(44)空填 e、f。本题回答第(44)空,各选项按 e、f 的顺序列出。

原题图1

原题图2

  • A. P(S4);V(S5)
  • B. V(S5);P(S4)
  • C. V(S4);P(S5)
  • D. V(S4);V(S5)
答案与解析

平台答案:A。

整理解析

P4 有 P2、P3 两个前驱。流程已给出 P(S3) 等待 P2,所以 e 还要执行 P(S4) 等待 P3;P4 完成后在 f 用 V(S5) 通知 P5,选 A。这里 P5 只直接等待 P4,与第 15~17 题的汇合位置不同。

题目 060

展开题目 060(先作答,再查看解析)

来源:知识点练习「操作系统」第 60 题(原站入口)。

P1、P2、P3、P4、P5 的前趋关系与使用 PV 操作的并发程序见两图,图中 S1~S6 初值均为 0。程序的①、②应分别填(60),③、④应分别填(61),⑤、⑥应分别填(62)。

题目配图

题目配图

请作答:第 60 题。

  • A. V(S1)和P(S2)

  • B. P(S1)和V(S2)

  • C. V(S1)和V(S2)

  • D. V(S2)和P(S1)

答案与解析

平台答案:D。

整理解析

本问选 D。S1 对应 P1→P2,S2 对应 P1→P3。P1 完成后已有 V(S1),故①补 V(S2);P2 开始前必须等 P1,②为 P(S1)。边上的同步信号量初值为 0,前驱执行 V、后继执行 P,不能仅看 P/V 的数量而忽略信号量对应关系。

题目 061

展开题目 061(先作答,再查看解析)

来源:知识点练习「操作系统」第 61 题(原站入口)。

P1、P2、P3、P4、P5 的前趋关系与使用 PV 操作的并发程序见两图,图中 S1~S6 初值均为 0。程序的①、②应分别填(60),③、④应分别填(61),⑤、⑥应分别填(62)。

题目配图

题目配图

请作答:第 61 题。

  • A. V(S3)和V(S5)

  • B. P(S3)和V(S5)

  • C. V(S3)和P(S5)

  • D. P(S3)和P(S5)

答案与解析

平台答案:B。

整理解析

本问选 B。P3 同时依赖 P1、P2,程序已用 P(S2) 等待 P1,③还需 P(S3) 等待 P2;P3 完成后通过④ V(S5) 通知 P5。

同材料可参照第 60 题。

题目 062

展开题目 062(先作答,再查看解析)

来源:知识点练习「操作系统」第 62 题(原站入口)。

P1、P2、P3、P4、P5 的前趋关系与使用 PV 操作的并发程序见两图,图中 S1~S6 初值均为 0。程序的①、②应分别填(60),③、④应分别填(61),⑤、⑥应分别填(62)。

题目配图

题目配图

请作答:第 62 题。

  • A. P(S6)和P(S5)V(S6)

  • B. V(S5)和V(S5)V(S6)

  • C. V(S6)和P(S5)P(S6)

  • D. P(S6)和P(S5)P(S6)

答案与解析

平台答案:C。

整理解析

本问选 C。P4 完成后⑤执行 V(S6)。P5 必须等 P3 和 P4 都完成,⑥依次执行 P(S5)、P(S6);这里两个 P 的作用是等待两项前驱条件,不是申请两个互斥锁。

同材料可参照第 60 题。

题目 071

展开题目 071(先作答,再查看解析)

来源:知识点练习「操作系统」第 71 题(原站入口)。

P1、P2、P3、P4、P5 的前趋图及 PV 并发程序如下,程序中的 S1~S6 初值均为 0。①、②应分别填(71),③、④应分别填(72),⑤、⑥应分别填(73)。

题目配图

题目配图

请作答:第 71 题。

  • A. V(S1)和P(S2)P(S3)

  • B. P(S1)和V(S1)V(S2)

  • C. V(S1)和V(S2)V(S3)

  • D. P(S1)和V(S1)P(S2)

答案与解析

平台答案:C。

整理解析

本问选 C。S1 对应 P1→P2,故①为 V(S1)。P2 完成后分别用 S2、S3 通知 P3、P4,②为 V(S2)、V(S3)。应按每条依赖边核对信号量,平台所说“不需要区别信号量”不是普遍成立的解法。

题目 072

展开题目 072(先作答,再查看解析)

来源:知识点练习「操作系统」第 72 题(原站入口)。

P1、P2、P3、P4、P5 的前趋图及 PV 并发程序如下,程序中的 S1~S6 初值均为 0。①、②应分别填(71),③、④应分别填(72),⑤、⑥应分别填(73)。

题目配图

题目配图

请作答:第 72 题。

  • A. V(S4)V(S5)和P(S3)

  • B. V(S3)V(S4)和V(S5)

  • C. P(S4)P(S5)和V(S5)

  • D. P(S4)P(S5)和V(S4)

答案与解析

平台答案:A。

整理解析

本问选 A。P3 完成后要通知 P4、P5,③为 V(S4)、V(S5)。P4 已用 P(S4) 等待 P3,④还应以 P(S3) 等待 P2,才能同时满足两个前驱条件。

同材料可参照第 71 题。

题目 073

展开题目 073(先作答,再查看解析)

来源:知识点练习「操作系统」第 73 题(原站入口)。

P1、P2、P3、P4、P5 的前趋图及 PV 并发程序如下,程序中的 S1~S6 初值均为 0。①、②应分别填(71),③、④应分别填(72),⑤、⑥应分别填(73)。

题目配图

题目配图

请作答:第 73 题。

  • A. P(S6)和P(S5)V(S6)

  • B. V(S5)和V(S5)V(S6)

  • C. P(S6)和P(S5)P(S6)

  • D. V(S6)和P(S5)P(S6)

答案与解析

平台答案:D。

整理解析

本问选 D。P4 完成后⑤用 V(S6) 通知 P5;P5 的两个前驱是 P3、P4,所以⑥为 P(S5)、P(S6)。注意这里的图与第 60~62 题不同,不能只记选项字母。

同材料可参照第 71 题。

题目 086

展开题目 086(先作答,再查看解析)

来源:知识点练习「操作系统」第 86 题(原站入口)。

P1、P2、P3、P4、P5、P6 的前驱图与进程执行图如下。用 PV 操作控制并发执行,设置 S1~S6 共 6 个信号量,初值均为 0。图中 a、b 应分别填(86),c、d 应分别填(87),e、f 应分别填(88)。

题目配图

题目配图

请作答:第 86 题。

  • A. V(S1)和P(S2)V(S3)

  • B. P(S1)和P(S2)V(S3)

  • C. V(S1)和V(S2)V(S3)

  • D. P(S1)和V(S2)V(S3)

答案与解析

平台答案:D。

整理解析

本问选 D。P2 要等待 P1,所以 a=P(S1);P2 完成后分别通知 P3、P4,所以 b=V(S2)、V(S3)。S1~S6 初值为 0,使后继在前驱尚未完成时等待。

题目 087

展开题目 087(先作答,再查看解析)

来源:知识点练习「操作系统」第 87 题(原站入口)。

P1、P2、P3、P4、P5、P6 的前驱图与进程执行图如下。用 PV 操作控制并发执行,设置 S1~S6 共 6 个信号量,初值均为 0。图中 a、b 应分别填(86),c、d 应分别填(87),e、f 应分别填(88)。

题目配图

题目配图

请作答:第 87 题。

  • A. P(S2)和P(S4)

  • B. V(S4)和P(S3)

  • C. P(S2)和V(S4)

  • D. V(S2)和V(S4)

答案与解析

平台答案:B。

整理解析

本问选 B。P3 完成后通过 c=V(S4) 通知 P5;P4 开始前通过 d=P(S3) 等待 P2。应核对依赖边和信号量名称,不能仅按“先 P 后 V”的外形选答案。

同材料可参照第 86 题。

题目 088

展开题目 088(先作答,再查看解析)

来源:知识点练习「操作系统」第 88 题(原站入口)。

P1、P2、P3、P4、P5、P6 的前驱图与进程执行图如下。用 PV 操作控制并发执行,设置 S1~S6 共 6 个信号量,初值均为 0。图中 a、b 应分别填(86),c、d 应分别填(87),e、f 应分别填(88)。

题目配图

题目配图

请作答:第 88 题。

  • A. P(S4)V(S5)和V(S6)

  • B. P(S4)V(S5)和P(S6)

  • C. P(S4)P(S5)和V(S6)

  • D. P(S4)P(S5)和P(S6)

答案与解析

平台答案:C。

整理解析

本问选 C。P5 的前驱是 P3、P4,需 e=P(S4)、P(S5) 等到两者都完成;P5 完成后通过 f=V(S6) 通知 P6。两个等待操作必须对应两条不同依赖。

同材料可参照第 86 题。

题目 090

展开题目 090(先作答,再查看解析)

来源:知识点练习「操作系统」第 90 题(原站入口)。

P1、P2、P3、P4、P5、P6 的前趋图和 PV 并发程序见图;程序中的 S1~S6 初值均为 0。①、②应分别填(90),③、④应分别填(91),⑤、⑥应分别填(92)。

题目配图

题目配图

请作答:第 90 题。

  • A. V(S1)和P(S2)P(S3)

  • B. V(S1)和V(S2)V(S3)

  • C. P(S1)和P(S2)V(S3)

  • D. P(S1)和V(S2)V(S3)

答案与解析

平台答案:D。

整理解析

本问选 D。P2 执行前①=P(S1),等待 P1;完成后②=V(S2)、V(S3),分别通知 P3、P4。这里控制的是前趋同步,V 表示发出完成通知,并非每个信号量都代表一个实体资源。

题目 091

展开题目 091(先作答,再查看解析)

来源:知识点练习「操作系统」第 91 题(原站入口)。

P1、P2、P3、P4、P5、P6 的前趋图和 PV 并发程序见图;程序中的 S1~S6 初值均为 0。①、②应分别填(90),③、④应分别填(91),⑤、⑥应分别填(92)。

题目配图

题目配图

请作答:第 91 题。

  • A. V(S3)和P(S3)

  • B. V(S4)和P(S3)

  • C. P(S3)和P(S4)

  • D. V(S4)和P(S4)

答案与解析

平台答案:B。

整理解析

本问选 B。P3 完成后以③=V(S4) 通知 P5;P4 执行前以④=P(S3) 等待 P2。图中的 S4 连向 P5,不能用它来等待 P4 的前驱。

同材料可参照第 90 题。

题目 092

展开题目 092(先作答,再查看解析)

来源:知识点练习「操作系统」第 92 题(原站入口)。

P1、P2、P3、P4、P5、P6 的前趋图和 PV 并发程序见图;程序中的 S1~S6 初值均为 0。①、②应分别填(90),③、④应分别填(91),⑤、⑥应分别填(92)。

题目配图

题目配图

请作答:第 92 题。

  • A. V(S6)和P(S5)

  • B. V(S5)和P(S6)

  • C. P(S5)和V(S6)

  • D. P(S5)和V(S5)

答案与解析

平台答案:A。

整理解析

本问选 A。P5 完成后⑤=V(S6);P6 还要等待 P4,因此⑥=P(S5),再执行图中已有的 P(S6),确保 P4、P5 均完成。

同材料可参照第 90 题。

题目 096

展开题目 096(先作答,再查看解析)

来源:知识点练习「操作系统」第 96 题(原站入口)。

P1、P2、P3、P4、P5、P6 的前趋图和控制其并发执行的 PV 程序如下,图中 S1~S8 初值均为 0。①、②应分别填(96),③、④应分别填(97),⑤、⑥应分别填(98)。

题目配图

题目配图

请作答:第 96 题。

  • A. V(S1)V(S2)和P(S2)P(S3)

  • B. V(S1)P(S2)和V(S3)P(S4)

  • C. V(S1)V(S2)和V(S3)V(S4)

  • D. P(S1)P(S2)和V(S2)V(S3)

答案与解析

平台答案:C。

整理解析

本问选 C。P1 完成后要通知 P2、P3,①=V(S1)、V(S2);P2 完成后通知 P3、P4,②=V(S3)、V(S4)。图中是 8 条依赖、8 个初值为 0 的同步信号量,应逐边对应。

题目 097

展开题目 097(先作答,再查看解析)

来源:知识点练习「操作系统」第 97 题(原站入口)。

P1、P2、P3、P4、P5、P6 的前趋图和控制其并发执行的 PV 程序如下,图中 S1~S8 初值均为 0。①、②应分别填(96),③、④应分别填(97),⑤、⑥应分别填(98)。

题目配图

题目配图

请作答:第 97 题。

  • A. V(S3)和V(S6)V(S7)

  • B. V(S3)和V(S6)P(S7)

  • C. P(S3)和V(S6)V(S7)

  • D. P(S3)和P(S6)V(S7)

答案与解析

平台答案:C。

整理解析

本问选 C。P3 已有 P(S2) 等待 P1,还需③=P(S3) 等待 P2;P4 完成后通过④=V(S6)、V(S7) 分别通知 P5、P6。

同材料可参照第 96 题。

题目 098

展开题目 098(先作答,再查看解析)

来源:知识点练习「操作系统」第 98 题(原站入口)。

P1、P2、P3、P4、P5、P6 的前趋图和控制其并发执行的 PV 程序如下,图中 S1~S8 初值均为 0。①、②应分别填(96),③、④应分别填(97),⑤、⑥应分别填(98)。

题目配图

题目配图

请作答:第 98 题。

  • A. V(S6)和P(S7)P(S8)

  • B. P(S8)和P(S7)P(S8)

  • C. P(S8)和P(S7)V(S8)

  • D. V(S8)和P(S7)P(S8)

答案与解析

平台答案:D。

整理解析

本问选 D。P5 已等待 P3、P4,完成后⑤=V(S8) 通知 P6;P6 的前驱是 P4、P5,故⑥=P(S7)、P(S8)。前驱图中的等待是完成条件同步,不应把每个 P 都叫作“锁定资源”。

同材料可参照第 96 题。

死锁与资源分配图

死锁条件与处理方法

资源死锁指一组执行实体中的每个成员都在等待由该组其他成员才能提供的资源或条件,从而无法继续。不能把所有长时间等待都当成死锁:等待一个正常进行的 I/O、长期未被调度造成的饥饿,与循环资源等待不同。

死锁四个必要条件与预防、避免、检测解除等方法

经典可重用资源模型中的四个必要条件是:互斥、保持并等待、不可剥夺、循环等待。预防通过破坏其中至少一个条件来约束资源使用;避免如银行家算法在分配时检查安全性;检测与解除允许问题出现后再发现、回收资源或终止相关进程。

  • 一次性申请所需资源,针对保持并等待条件。
  • 按统一顺序申请资源,针对循环等待条件。
  • 不安全不等于已经死锁:不安全状态意味着无法保证所有进程按最大需求完成。
  • “等待不可能发生的事件”可能是程序错误或缺少通知,分析时仍应交代具体依赖,不能只凭“等很久”下结论。

四个必要条件的具体含义是:互斥资源一次只让一个进程使用;保持并等待是持有旧资源时继续等待新资源;不可剥夺是资源不能被强制收回,只能由持有者释放;循环等待是进程之间形成闭合的等待链。预防要求从规则上破坏其中至少一个,资源有多实例时仅看到环仍不足以证明已死锁。

资源图化简检查的是**当前请求**;银行家安全性检查使用的是各进程声明的**最大需求减去已分配量**。安全序列表示存在一种让所有进程依次满足需求、完成并释放资源的次序,不是要求它们必须按这个顺序调度。两种检查都要模拟完成后归还资源,但所用需求不同,不能把一次快照可化简等同于已证明所有未来请求都安全。

同类资源的数量边界

设 m 个进程各最多需要 w 个可替换的同类资源,资源可分次申请、持有时继续等待,不能抢占,进程拿齐后能够完成并释放,且没有其他阻塞依赖。

所有进程都还没拿够时,最多持有 m × (w - 1) 个资源。
保证不会发生此类资源死锁的最少资源数:m × (w - 1) + 1。

五个进程各有三个资源时再增加一个即可让某个进程完成

原文示例:5 个进程,每个需要 4 个同类资源。 15 个资源可能让每个进程各占 3 个、都差 1 个;16 个则能让至少一个进程拿齐并释放。因此,按此模型可能死锁的最大总资源数为 15,保证不死锁的最小值为 16。

这是对所有可能分配情况的数量保证,不是同时满足所有需求的 5 × 4 = 20,也不是某种严格串行分配策略所需的最少数量。多类资源或不同最大需求需重新分析。完整推导复用死锁资源计算专题。

例题 7:可能死锁的最小需求

某计算机系统中互斥资源 R 的可用数为 8,系统中有 3 个进程 P1、P2 和 P3 竞争 R,且每个进程都需要 i 个 R,该系统可能会发生死锁的最小 i 值为( )。

  • A、1
  • B、2
  • C、3
  • D、4
参考答案与推导

选 D。 题目没有给出既有分配,按 8 个是供三进程争用的资源总量理解。要使资源全被占有而每个进程仍未拿够,需有:

1
2
3
3 × (i - 1) >= 8
i >= 11/3
最小整数 i = 4

可用分配 (3,3,2) 验证:每个进程总需求 4,都还未拿够,剩余资源为 0。若 i=3,三者未拿够时最多占 6 个,仍能让至少一个进程取得资源并完成。

如果另一道题的“可用数”明确表示某时刻的剩余空闲量,且还存在已分配资源,就不能直接把该空闲量当作资源总量套式。

如何读进程资源图

进程圆圈、资源矩形、资源实例、分配边和申请边

  • 圆圈表示进程,矩形表示资源类型,矩形内的小圆点表示实例。
  • 资源 → 进程:已分配;进程 → 资源:正在请求。
  • 先算每类资源的空闲数,再看某进程当前请求能否被满足。

一个进程已持有一个R1并申请另一个,资源共有两个实例

上图 R1 总数为 2,已分配 1 个,还有 1 个可用。P 的请求可满足;若 P 完成后释放所持资源,两个 R1 都可重新使用。

化简时,反复寻找当前请求可被空闲资源满足的进程,模拟其完成并归还已有分配。能消去所有进程,说明此快照下不存在所描述的资源死锁;不能继续化简时,需要检查剩余依赖。有环并不总意味着死锁:当资源类型有多个实例时,环是必要线索,仍须看是否有可用实例让进程继续。

例题 8:可化简的资源图

在如下所示的进程资源图中,( )。

例题8:R1有两个实例、R2有三个实例的进程资源图

  • A、P1、P2、P3 都是非阻塞节点,该图可以化简,所以是非死锁的
  • B、P1、P2、P3 都是阻塞节点,该图不可以化简,所以是死锁的
  • C、P1、P2 是非阻塞节点,P3 是阻塞节点,该图不可以化简,所以是死锁的
  • D、P2 是阻塞节点,P1、P3 是非阻塞节点,该图可以化简,所以是非死锁的
参考答案与资源核对

选 D。 按箭头逐项整理:

进程 已分配 R1、R2 正在申请 R1、R2 初始请求能否满足
P1 (1,0) (0,1) 能
P2 (0,1) (1,0) 不能
P3 (1,1) (0,1) 能

总资源 (2,3),已分配 (2,2),所以空闲为 (0,1)。P1、P3 的当前请求各自都可满足,但只有 1 个空闲 R2,不能理解成可以同时承诺给两者。

例如依次让 P1 → P2 → P3 完成,空闲资源在各进程完成后依次变成 (1,1)、(1,2)、(2,3)。该图可完全化简。P2 此时暂时等待,不代表它永远不能继续,也不代表系统已经死锁。

专项题库练习(8 题)

本小节对应题库练习共 8 道题目,题目覆盖本节考点,答案与解析默认折叠。

题目 002

来源:知识点练习「操作系统」第 2 题(原站入口)。

系统有 6 个可用的 R 类资源,3 个进程竞争这些资源,每个进程均需 i 个 R。第(2)空询问可能出现死锁的最小 i;第(3)空询问信号量 S = −2 时,空闲 R 的数量和等待 R 的进程数。本题回答第(2)空。

  • A. 1
  • B. 2
  • C. 3
  • D. 4
答案与解析

平台答案:C。

整理解析

按资源可逐个申请、占有后可继续等待且不能被强行收回的通常模型,3 个进程若各持有 i−1 个资源仍不能完成,就可能把 6 个资源全部占住。条件为 3(i−1) ≥ 6,最小 i = 3,选 C。此时每个进程各占 2 个、还等 1 个;这是可能死锁,并非任何调度都会死锁。

题目 003

来源:知识点练习「操作系统」第 3 题(原站入口)。

系统有 6 个可用的 R 类资源,3 个进程竞争这些资源,每个进程均需 i 个 R。第(2)空询问可能出现死锁的最小 i;第(3)空询问信号量 S = −2 时,空闲 R 的数量和等待 R 的进程数。本题回答第(3)空,选项中的两个数依次表示空闲资源数、等待进程数。

  • A. 0、0
  • B. 0、1
  • C. 1、0
  • D. 0、2
答案与解析

平台答案:D。

整理解析

采用可取负值的计数信号量约定:S < 0 时无空闲资源,等待者有 −S 个。因此 S = −2 对应 0 个空闲 R、2 个等待进程,选 D。负号不表示资源总数为负,也不表示系统中已不存在 R。

题目 013

来源:知识点练习「操作系统」第 13 题(原站入口)。

观察下图的进程—资源分配关系:第(13)空判断 P1、P2、P3 当前是否阻塞,第(14)空判断资源图能否化简及其顺序。本题回答第(13)空。

原题图

  • A. P1、P2、P3 均阻塞
  • B. P1 阻塞,P2、P3 不阻塞
  • C. P1、P2 阻塞,P3 不阻塞
  • D. P1、P2 不阻塞,P3 阻塞
答案与解析

平台答案:C。

整理解析

原图中 R1 的 2 个实例和 R2 的 3 个实例均已分配,R3 的 2 个实例中还有 1 个空闲。P1 仍申请 R2,P2 仍申请 R1,暂不能满足;P3 申请的 R3 可以分配。因此 P1、P2 阻塞,P3 不阻塞,选 C。

题目 014

来源:知识点练习「操作系统」第 14 题(原站入口)。

观察下图的进程—资源分配关系:第(13)空判断 P1、P2、P3 当前是否阻塞,第(14)空判断资源图能否化简及其顺序。本题回答第(14)空。

原题图

  • A. 可化简,顺序为 P1→P2→P3
  • B. 可化简,顺序为 P3→P1→P2
  • C. 可化简,顺序为 P2→P1→P3
  • D. 不可化简,因为 P1、P2、P3 的资源请求均不能满足
答案与解析

平台答案:B。

整理解析

先用空闲的 1 个 R3 满足 P3,让它完成并释放持有的 R1、R2 等资源;随后即可满足 P1 对 R2 的请求,再满足 P2 对 R1 的请求。故图可完全化简,选 B。P3→P2→P1 也可行,但不在选项中;起点不能选当前尚无法满足请求的 P1 或 P2。

题目 025

来源:知识点练习「操作系统」第 25 题(原站入口)。

根据下图的资源分配和申请关系,判断 P1、P2、P3 是否阻塞,以及整个资源图能否化简、是否死锁。

原题图

  • A. P1、P2、P3 均不阻塞,资源图可化简,未死锁
  • B. P1、P2、P3 均阻塞,资源图不可化简,已死锁
  • C. P1、P2 不阻塞,P3 阻塞;资源图不可化简,已死锁
  • D. P2 阻塞,P1、P3 不阻塞;资源图可化简,未死锁
答案与解析

平台答案:D。

整理解析

图中 R1 的 2 个实例已用完,R2 的 3 个实例尚余 1 个。P2 请求 R1,暂不能满足;P1、P3 各请求 1 个 R2,任取其中一个都可先完成并释放资源,再使其他进程完成,因此选 D。纠错:“阻塞”仅表示当前请求无法立即满足,不等于一执行就陷入死锁;图中的 P2 就可以在其他进程释放资源后继续。

题目 040

来源:知识点练习「操作系统」第 40 题(原站入口)。

系统有 3 个并发进程竞争同类资源 R,每个进程均需 5 个 R 才能完成。至少提供多少个 R,才能保证不会因竞争这些资源而死锁?

  • A. 12
  • B. 13
  • C. 14
  • D. 15
答案与解析

平台答案:B。

整理解析

在资源可逐个申请、不可强行收回且进程完成后释放的通常模型中,12 个资源可能被三个进程各持有 4 个,使它们都还缺 1 个。增加到 13 个时,至少有一个进程能凑齐 5 个并完成释放,余下进程可依次完成。因此最小为 3×(5−1)+1 = 13,选 B。

题目 059

来源:知识点练习「操作系统」第 59 题(原站入口)。

系统有 8 个可用的同类互斥资源 R,由 P1、P2、P3 三个进程竞争,每个进程都需要 i 个 R。可能发生死锁的最小 i 是( )。

  • A. 1

  • B. 2

  • C. 3

  • D. 4

答案与解析

平台答案:D。

整理解析

选 D。3 个进程各最多占有 i−1 个资源而仍未满足需求时,若 3(i−1)≥8,就可能把资源耗尽并全部等待。最小整数 i=4;可构造占有量 3、3、2 且都继续申请的死锁状态。i=3 时至少一个进程能满足需求并释放资源;i≥4 只是可能死锁,并非必然。

题目 077

来源:知识点练习「操作系统」第 77 题(原站入口)。

系统有 P1、P2、P3 三个进程及 R1、R2 两类资源,两个资源分配状态分别如图①、图②。关于两图能否化简,正确的是( )。

题目配图

  • A. 图①、图②都可化简

  • B. 图①、图②都不可化简

  • C. 图①可化简,图②不可化简

  • D. 图①不可化简,图②可化简

答案与解析

平台答案:C。

整理解析

选 C。图①剩余资源为 R1=1、R2=0,P1 无待满足请求,可先完成并释放各 1 个 R1、R2;之后可满足 P2,再满足 P3,因而可完全化简。图②的 R1、R2 均已分完,而每个进程都有未满足请求,没有可先完成的进程,不能化简。

内存管理:分页、分段与段页式

先区分连续分配与分页。 固定分区中分给进程却未用完的空间是内部碎片;动态分区按需切出连续空间,回收后散布在已用区之间的小空闲区属于外部碎片。下列策略都针对可变大小的空闲分区,每次分配后要更新剩余区再处理下一次请求:

策略 本次选哪个足够大的空闲区
首次适应 按地址从低到高找第一个
循环首次适应 从上次查找位置继续,必要时回到表首
最佳适应 选能容纳请求的最小区
最坏/最差适应 选最大的区

例如按地址排列的三个空闲区大小为 [16,42,26] KiB,彼此被已用区隔开,依次申请 14、12 KiB,每次从选中区的低地址端分配:

策略 分配 14 后 再分配 12 后
首次适应 [2,42,26] [2,30,26]
最佳适应 [2,42,26] [2,42,14]
最坏适应 [16,28,26] [16,16,26]

最坏适应第二次仍选第一轮剩下的 28 KiB,而不是继续使用原来的大小排序。循环首次适应还须知道查找指针的起点和更新约定;大小并列时也需读题给规则。回收时只有**物理地址相邻**的空闲区才能直接合并;总空闲量足够而没有单个足够大的区时,仍可能分配失败。策略的总体效果依赖请求序列,不能仅凭名称认定最佳适应在所有情况下最好;概念对照见操作系统纲要。

分页与地址转换

分页把进程逻辑地址空间分成固定大小的页,把物理内存分成同样大小的页框,通过页表建立映射。

用户逻辑页通过页表映射到分散的物理页框

1
2
3
页号 = 逻辑地址 // 页大小
页内偏移 = 逻辑地址 % 页大小
物理地址 = 页表查得的页框号 × 页大小 + 页内偏移

这里的“页号 + 页内地址”表示地址字段的组合,不能把页号与偏移直接算术相加。页大小为 2^k 字节时,低 k 位是页内偏移。

图中页 2 映射到页框 6,页大小若为 4 KB,则逻辑地址 10 1100 1101 1110₂ 转成 110 1100 1101 1110₂;低 12 位不变。其他题目使用自己的页表,不能沿用这一映射。

分页便于离散分配,避免要求整个进程占用连续物理空间;仍可能存在末页内部碎片、页表空间和地址转换开销。分页本身不等于虚拟存储:请求分页结合按需装入、缺页处理等机制,才允许未全部驻留内存的程序继续执行。抖动是页面频繁换入换出造成的性能问题,不是所有分页系统必然出现的现象。

程序使用虚拟/逻辑地址,MMU 等机制转换到物理地址;不是“高级语言阶段使用逻辑地址,一运行就只使用物理地址”。详细计算复用分页与地址转换专题。

页表共享、TLB 与缺页

每个进程按自己的页表解释逻辑页号。同一个逻辑页号在不同进程中可以映射不同页框;不同进程的不同逻辑页也可以映射到同一物理页框,从而共享内存。例如进程甲的页 2 与进程乙的页 7 都映射页框 9,表示共享同一页;两者的逻辑页号无须相等。写权限和同步规则还需单独设置。

TLB 缓存最近使用的地址映射。TLB 未命中后若页表表明页面已驻留,只需查页表并补充映射;若合法访问的页面未驻留,则触发缺页处理,由操作系统调入页面、必要时置换其他页、更新页表后重试访问。Cache 缓存指令或数据,TLB 缓存地址转换结果;二者的未命中都不等于必然发生磁盘 I/O。

页表状态位、访问位和修改位

页表中的页框号、驻留状态位、访问位和修改位

字段 本课件约定 作用
状态位 1 在内存,0 不在内存 判断当前是否有驻留映射;访问不驻留页可能触发缺页
访问位 1 近期被访问,0 近期未访问 为页面置换提供访问历史线索
修改位 1 已修改,0 未修改 脏页淘汰通常需要写回,干净页可避免这次写回

一个访问位不足以给出精确的最近使用顺序,也不能凭它直接断言执行 LRU。TLB 未命中只是地址转换缓存未命中,与缺页不同。

页面置换先在允许替换的**驻留页**中选候选。FIFO 根据装入先后淘汰,LRU 根据最近实际使用的先后淘汰,Clock 用访问位近似使用历史;只给访问位不能还原完整的 LRU 顺序。若题目按访问位、修改位分类,通常优先选近期未访问且未修改的页;在访问情况相同且目标是减少当次写回时,干净页比脏页代价低。具体算法的扫描顺序、锁定页等条件仍会影响选择,不能把“干净页优先”当作所有置换算法的统一规则。

例题 9:十六进制逻辑地址转换

某计算机系统页面大小为 4K,进程的页面变换表如下所示。若进程的逻辑地址为 2D16H,该地址经过变换后,其物理地址应为( )。

例题9:页0到3分别映射物理块1、3、4、6

  • A、2048H
  • B、4096H
  • C、4D16H
  • D、6D16H
参考答案与推导

选 C。 按字节编址,4 KB = 1000H,低 12 位即最后 3 个十六进制数字为偏移。

1
2
3
4
页号 = 2D16H // 1000H = 2
页内偏移 = D16H
查本题页表:页2 → 物理块4
物理地址 = 4 × 1000H + D16H = 4D16H

选 D 是误用了正文另一张示意图中“页2→页框6”的映射;必须查当前题目的表。

例题 10:缺页时淘汰哪一页

进程 P 有 5 个页面,页号为 0~4,页面变换表及状态位、访问位和修改位的含义如下图所示。若系统给进程 P 分配了 3 个存储块,当访问的页面 3 不在内存时,应该淘汰表中页号为( )的页面。

例题10:在内存的页0未修改,页2和页4已修改

  • A、0
  • B、1
  • C、2
  • D、4
参考答案、推导与算法条件

按访问位、修改位分类并优先淘汰同等访问情况下干净页的预期规则,选 A。

  • 驻留页只有 0、2、4;页 1 本来就不在内存,不能通过“淘汰它”腾出页框。
  • 三个驻留页的访问位都是 1,无法仅凭这一位区分最近访问先后。
  • 页 0 的修改位为 0;页 2、4 的修改位为 1。按上述偏好,页 0 可避免写回,优先淘汰。

原题未明确置换算法及扫描位置。 选 A 是按此类考题通常隐含的分类偏好作答,不是任意 FIFO、LRU 或 Clock 实现都必然选 0;仅凭表中这些位不足以确定所有算法的淘汰结果。

分段与地址合法性

分段按程序的逻辑单元划分,例如代码段、数据段和栈段,段长可以不同。在纯分段模型中,每段通常需要连续的物理空间。

不同长度的逻辑段及其基址、段长和内存位置

逻辑地址为 (段号, 段内偏移)。先检查段号有效,再检查 0 <= 偏移 < 段长;合法时 物理地址 = 段基址 + 偏移。例如图中第 0 段长 30K,(0,25K) 合法,(0,35K) 越界,偏移恰好等于 30K 也越界。

分段便于按逻辑单元共享和保护,缺点是外部碎片和空间分配管理开销。它不保证程序各段修改永远互不影响;共享关系和程序依赖仍需分析。

例题 11:合法段地址

设某进程的段表如下所示,逻辑地址( )可以转换为对应的物理地址。

例题11:五个段的基地址和段长

  • A、(0,1597)、(1,30)和(3,1390)
  • B、(0,128)、(1,30)和(3,1390)
  • C、(0,1597)、(2,98)和(3,1390)
  • D、(0,128)、(2,98)和(4,1066)
参考答案与越界检查

选 B。 段长依次为 600、50、100、2988、960。

  • A、C 中 (0,1597) 的偏移 1597 不小于段长 600,越界。
  • D 中 (4,1066) 的偏移 1066 不小于段长 960,越界。
  • B 中 128<600、30<50、1390<2988,全部合法。

若继续计算 B 的物理地址,依次为 1598+128=1726、486+30=516、1327+1390=2717。判断越界比较的是**段长**,不是基地址。

段页式与地址字段

段页式先按逻辑分段,再把每个段分页;用段表找到该段页表,再用页号找到物理页框。

段表指向各段页表,再由页表映射物理内存

16位段页式地址:段号15至14位,页号13至9位,偏移8至0位

在上面的 16 位示例中:段号 2 位,最多 4 段;页号 5 位,每段最多 32 页;页内地址 9 位,按字节编址时页大小为 512 B。位数按“高位号 − 低位号 + 1”计算。

段页式兼顾逻辑单元的共享保护与分页分配,但增加了表结构和转换开销;硬件与 TLB 可降低开销,不能笼统说执行速度必然“大大下降”。

原文三问的回答:两个等大程序不一定有相同段数;不同段不一定有相同页数;在本题统一页大小的模型中,各页大小相同。实际硬件可支持多种页大小,不能无限推广最后一句。

例题 12:段页式寻址能力

假设段页式存储管理系统中的地址结构如下图所示,则系统( )。

例题12:段号31至24位,页号23至13位,页内地址12至0位

  • A、最多可有 256 个段,每个段的大小均为 2048 个页,页的大小为 8K
  • B、最多可有 256 个段,每个段最大允许有 2048 个页,页的大小为 8K
  • C、最多可有 512 个段,每个段的大小均为 1024 个页,页的大小为 4K
  • D、最多可有 512 个段,每个段最大允许有 1024 个页,页的大小为 4K
参考答案与位数推导

选 B。

1
2
3
段号:31~24,共8位 → 最多 2^8 = 256 段
页号:23~13,共11位 → 每段最多 2^11 = 2048 页
页内地址:12~0,共13位 → 每页 2^13 B = 8 KB

地址字段规定的是**最大表示能力**,不要求每个段都装满 2048 页,因此 A 的“均为”不成立。

专项题库练习(10 题)

本小节对应题库练习共 10 道题目,题目覆盖本节考点,答案与解析默认折叠。

题目 004

来源:知识点练习「操作系统」第 4 题(原站入口)。

某分页系统每页大小为 4K,页号与物理块号的映射见图。把逻辑地址 1D16H 转换为物理地址,应得到哪一个十六进制地址?

原题图

  • A. 1024H
  • B. 3D16H
  • C. 4D16H
  • D. 6D16H
答案与解析

平台答案:B。

整理解析

4K = 212,页内偏移占 12 位,即十六进制的低 3 位。1D16H 的页号为 1,偏移为 D16H;原图中页 1 对应物理块 3。物理地址为 3×1000H + D16H = 3D16H,选 B。

题目 010

来源:知识点练习「操作系统」第 10 题(原站入口)。

某段页式存储系统按图划分逻辑地址。以下关于可用段数、每段页数和页面大小的描述,哪项与该位段结构一致?

原题图

  • A. 最多 2048 段,每段固定为 2048 页,每页 2K
  • B. 最多 2048 段,每段最多 2048 页,每页 2K
  • C. 最多 1024 段,每段固定为 1024 页,每页 4K
  • D. 最多 1024 段,每段最多 1024 页,每页 4K
答案与解析

平台答案:D。

整理解析

原图的段号为第 31~22 位、页号为第 21~12 位,各有 10 位,因此段数和每段页数的上限都是 210 = 1024。页内地址为第 11~0 位,共 12 位,页面大小为 212 = 4K。位数限制的是容量上限,不要求每段固定占满,故选 D。

题目 018

展开题目 018(先作答,再查看解析)

来源:知识点练习「操作系统」第 18 题(原站入口)。

一个进程有 4 个页面,页号为 0~3,系统为其分配 3 个存储块。页表及状态位、访问位、修改位的定义见图。现在准备访问尚未在内存中的页 1;应淘汰哪一页,才能使本次淘汰的代价最小?

原题图

  • A. 0
  • B. 1
  • C. 2
  • D. 3
答案与解析

平台答案:D。

整理解析

候选页是已在内存中的 0、2、3;三者访问位都为 1,无法据此区分。页 0、2 的修改位为 1,替换时需保存改动;页 3 的修改位为 0,可直接丢弃其内存副本,额外写回开销最小,选 D。纠错:访问位为 1 只说明记录期间被访问过,不能推出平台所说的“都是刚刚被访问过”。

题目 036

展开题目 036(先作答,再查看解析)

来源:知识点练习「操作系统」第 36 题(原站入口)。

某段页式存储系统的地址位段划分见图。以下哪项正确说明段数上限、每段页数及页面大小?

原题图

  • A. 最多 256 段,每段固定为 2048 页,每页 8K
  • B. 最多 256 段,每段最多 2048 页,每页 8K
  • C. 最多 512 段,每段固定为 1024 页,每页 4K
  • D. 最多 512 段,每段最多 1024 页,每页 4K
答案与解析

平台答案:B。

整理解析

原图段号占第 31~24 位,共 8 位,可表示 256 段;页号占第 23~13 位,共 11 位,每段最多 2048 页;页内地址占第 12~0 位,共 13 位,每页为 8192,即 8K。字段宽度只限定上限,不要求各段占满,选 B。

题目 041

展开题目 041(先作答,再查看解析)

来源:知识点练习「操作系统」第 41 题(原站入口)。

分页系统每页大小为 4K,页号与物理块号的对应关系见图。进程访问逻辑地址 2D16H,转换后应得到哪个物理地址?

原题图

  • A. 2048H
  • B. 4096H
  • C. 4D16H
  • D. 6D16H
答案与解析

平台答案:C。

整理解析

4K = 212,页内偏移为十六进制地址的低 3 位 D16H,逻辑页号为 2。题图中逻辑页 2 映射到物理块 4,因此物理地址是 4×1000H + D16H = 4D16H,选 C。本题的逻辑页号和选项与第4题不同,应按本题页表求解。

题目 050

展开题目 050(先作答,再查看解析)

来源:知识点练习「操作系统」第 50 题(原站入口)。

某分页系统中,进程 A、B 的页表及物理页见图,每页大小为 1K 字节。第(50)空求进程 A 的十进制逻辑地址 1024 位于哪个物理页;第(51)空假设 A 的逻辑页 4 与 B 的逻辑页 5 共享物理页 4,要求填写两者的页表映射。本题只回答第(50)空。

原题图

  • A. 8
  • B. 3
  • C. 5
  • D. 2
答案与解析

平台答案:B。

整理解析

每页 1024 字节,逻辑地址 1024 = 1×1024+0,对应逻辑页 1、页内偏移 0。原图中 A 的逻辑页 1 映射到物理页 3,因此选 B。题目问的是物理页号;若问字节物理地址,才需再计算 3×1024+0。

题目 051

展开题目 051(先作答,再查看解析)

来源:知识点练习「操作系统」第 51 题(原站入口)。

某系统使用分页存储,进程 A、B 的页表如下图。物理页大小为 1K 字节:A 中十进制逻辑地址 1024 所在的物理页号为(50);若 A 的逻辑页 4 与 B 的逻辑页 5 共享物理页 4,两张页表对应的物理页栏应分别填写(51)。

题目配图

请作答:第 51 题。

  • A. 4、4

  • B. 4、5

  • C. 5、4

  • D. 5、5

答案与解析

平台答案:A。

整理解析

本问选 A。共享同一物理页要求两个页表项都填物理页号 4,逻辑页号不必相同。前一空中 1024÷1024=1,页内偏移为 0,A 的逻辑页 1 映射物理页 3。平台解析中的“选择 B”指第 50 题,不是本问。

同材料可参照第 50 题。

题目 078

展开题目 078(先作答,再查看解析)

来源:知识点练习「操作系统」第 78 题(原站入口)。

系统页大小为 4KB,进程 P 的页表见图。P 访问的逻辑地址为十六进制 3C20H,变换后的物理地址为( )。

题目配图

  • A. 2048H

  • B. 3C20H

  • C. 5C20H

  • D. 6C20H

答案与解析

平台答案:D。

整理解析

选 D。4KB=212 B,逻辑地址的低 12 位是页内偏移,即低 3 个十六进制数码 C20H;页号为 3。表中页 3 映射物理块 6,物理地址为 6×1000H+C20H=6C20H。平台所说“第12位”“十六进制第3位”应分别理解为低12位、低3位。

题目 085

展开题目 085(先作答,再查看解析)

来源:知识点练习「操作系统」第 85 题(原站入口)。

进程 P 有 5 个页面,页号为 0~4,系统分配了 3 个存储块。页表及状态位、访问位、修改位的定义见图。访问不在内存中的页面 3 时,应淘汰页号为( )的页面。

题目配图

  • A. 0

  • B. 1

  • C. 2

  • D. 4

答案与解析

平台答案:A。

整理解析

平台选 A。内存中是页 0、2、4,访问位均为 1;页 0 未修改,页 2、4 已修改。按优先淘汰未修改页、减少回写的选择规则,页 0 代价较低。但题目没有明确置换算法,不能声称 FIFO、LRU 等算法也必然淘汰它,访问位也不能代替完整的访问次序。

题目 099

展开题目 099(先作答,再查看解析)

来源:知识点练习「操作系统」第 99 题(原站入口)。

段页式存储系统采用图中的地址划分。关于段数、每段页数及页大小,正确的是( )。

题目配图

  • A. 最多 512 段,每段均为 2048 页,每页 8K

  • B. 最多 512 段,每段最多 2048 页,每页 8K

  • C. 最多 1024 段,每段均为 1024 页,每页 4K

  • D. 最多 1024 段,每段最多 1024 页,每页 4K

答案与解析

平台答案:D。

整理解析

选 D。图中段号占第 31~22 位,共 10 位;页号占第 21~12 位,共 10 位;页内地址占第 11~0 位,共 12 位。故最多 1024 段,每段最多 1024 页,按字节编址每页 4096B=4KiB。可表示的最大页数不代表每段都必须有这么多页。

磁盘管理:时间与调度

磁道、柱面和扇区

机械磁盘的盘面、磁道、扇区、读写磁头与柱面位置

多个盘片、盘面与每条磁道划分的扇区

一个盘面上同一半径的环形区域是磁道;多个盘面上半径相同的磁道集合构成柱面。磁道和柱面不是同一个对象,但移动磁头组件改变的是半径,因此移臂距离题常用磁道号或柱面号来描述位置。

下面讨论机械磁盘的教学模型。SSD 没有机械寻道和旋转延迟,不能直接照搬此模型。

访问时间与吞吐量

一次磁盘访问时间 ≈ 寻道时间 + 旋转等待时间 + 数据传输时间

实际响应时间还可能包含请求排队、控制器处理等。转速为 r rpm 时,一圈用时 60000/r ms;如果起始相位均匀随机,平均旋转等待约为半圈 30000/r ms。

原文说旋转等待“没有算法可言”过于绝对。转动方向通常固定,但请求顺序、扇区布局、交错存放和对旋转位置的利用均可能影响等待。只给扇区编号,不给当前转动位置,通常无法算出精确的首次旋转等待。

磁盘题还要区分两种“速率”:

口径 计算
纯数据传输率 传输字节数 ÷ 实际传输时间
本次请求/文件读取的有效吞吐率 总字节数 ÷ 完成这些读取所经历的总时间,包括题设计入的寻道和等待

例如读取 1 MB 数据,传输只花 1 ms,但寻道等待另花 9 ms,则纯传输率和有效吞吐率相差 10 倍。不能拿机械等待期间也算出来的总时间,冒称设备的纯传输率。

例题 13:分散存放的文件读取时间

某磁盘磁头从一个磁道移至另一个磁道需要 10 ms。文件在磁盘上非连续存放,逻辑上相邻数据块的平均移动距离为 10 个磁道,每块的旋转延迟时间及传输时间分别为 100 ms 和 2 ms,则读取一个 100 块的文件需要( )ms 时间。

  • A、10200
  • B、11000
  • C、11200
  • D、20200
参考答案与题目采用的平均模型

按题目预期,选 D。 将“移至另一个磁道需要 10 ms”按每跨一个磁道耗时 10 ms 理解,并把给出的平均寻道成本用于每一次块读取:

1
2
3
每块平均寻道 = 10 × 10 = 100 ms
每块平均访问 = 100 + 100 + 2 = 202 ms
100 块合计 = 100 × 202 = 20200 ms

原文第一句未明确写“相邻磁道”,措辞不够严谨;这一步按选项意图取单位磁道移动成本。

另外,100 个块之间实际只有 99 次相邻块转换。若严格把题干平均距离仅用于块间转换,首块寻道时间为 t₀,则总时间为 t₀ + 99×100 + 100×(100+2) = t₀+20100 ms;题干没有提供 t₀。20200 ms 对应把首块也按平均 100 ms 计入,不能把它理解成任意初始磁头位置下的精确值。

单缓冲与双缓冲的时间线

缓冲区暂存设备与应用之间的数据,允许速度不同的双方分阶段协作。设每块读入缓冲区耗时 T,从缓冲区送到用户区耗时 M,在用户区处理耗时 C;共 n 块,磁盘每次读一块,CPU 的送出与处理串行,磁盘读入可以与 CPU 工作重叠,忽略调度开销。

模型 哪些步骤能重叠 n 块总耗时
单缓冲 同一缓冲区不能边读入边送出;送出后,下一块读入可与上一块在用户区处理重叠 T+M+C+(n−1)×[max(T,C)+M]
双缓冲 两个缓冲区轮换,下一块读入可与上一块送出、处理重叠 T+M+C+(n−1)×max(T,M+C)

公式的第一项是首块从读入到处理完成的延迟,后面是相邻块处理完成的间隔。不能只乘 n 个瓶颈时间而漏掉末块的送出和处理。

例如 4 块数据,T=8 μs、M=3 μs、C=2 μs。单缓冲时:第 1 块读入在 0~8,送出在 8~11,处理在 11~13;第 2 块从 11 开始读入,处理结束于 24。各块完成于 13、24、35、46,总计 46 μs。双缓冲时磁盘可在 8~16 读入第 2 块,CPU 同时处理第 1 块;各块完成于 13、21、29、37,总计 37 μs。

若题目说直接在唯一缓冲区里处理、没有送往用户区这一步,处理期间缓冲区仍被占用,以上单缓冲模型就不能直接套用。先标清每一步占着哪个缓冲区,再判断能否重叠。

记录交错存放:处理时磁盘仍在旋转

同一磁道的多个记录无需反复寻道,但磁盘在 CPU 处理记录期间继续转动。如果下条记录已转过磁头,就要等它再次转回来。设一圈有 m 个等长扇区、一圈耗时 R,则一个扇区经过磁头的时间为 δ=R/m。记录恰好占一扇区、必须读完再处理时,从读入开始到能够读下一条的时间是 δ+C。

例:一圈 12 ms、12 个扇区,每条读入 1 ms、处理 4 ms,开始时第 1 条恰好到磁头下。若逻辑记录顺序紧邻存放,首条在 t=5 ms 处理完,第 2 条的起点早已在 t=1 ms 经过,下一次到达是 t=13 ms,因此还要等 8 ms。连续处理 4 条共需 5+3×(8+1+4)=44 ms。

若可以安排记录的物理位置,就把相邻逻辑记录的起点间隔设为 5 个扇区。4 条可依次放在零起算位置 0、5、10、3,读入起点为 t=0、5、10、15,最终 t=20 ms 完成,达到 4×(1+4) 的下界。这就是通过交错存放消除额外旋转等待。

当整圈都要放满且步长是整数时,还要检查位置是否重复:反复加步长 k 再对 m 取模,只能走到 m/gcd(m,k) 个位置。若不足 m 个,不能简单声称所有记录都能按该步长排满并达到下界;应画出实际位置与时间线验证。

常见移臂调度算法

算法 选择方式 特点与边界
FCFS 按请求到达顺序 简单、公平性直观,但可能来回移动很远
SSTF 每次选择离当前位置最近的请求 常能减少移动,远处请求可能饥饿;等距和同柱面请求需要补充排序规则
SCAN 沿一个方向扫描,到端点后反向 需知道初始方向和磁盘范围
C-SCAN 只在一个方向服务,到端点后回到另一端重新扫描 返回段是否计入题目寻道开销应说明,不能一律忽略

LOOK、C-LOOK 在最远待处理请求处折返或回绕,与到磁盘物理端点的 SCAN、C-SCAN 有区别。原课件只列出后两种算法名称,未提供 SCAN/C-SCAN 的具体题图,不能补造其原题。

同一组请求下的 FCFS 与 SSTF

初始磁道 100,请求顺序为 55、58、39、18、90、160、150、38、184。

FCFS请求顺序及各次移臂距离

FCFS在各磁道间移动的示意图

FCFS 的距离为 45、3、19、21、72、70、10、112、146,总计 498,平均 498/9 ≈ 55.3 个磁道。

SSTF从100开始逐次选择最近磁道的距离表

SSTF调度路线示意图

SSTF 顺序为 90、58、55、39、38、18、150、160、184,距离为 10、32、3、16、1、20、132、10、24,总计 248,平均 248/9 ≈ 27.56;若四舍五入保留一位小数应为 27.6。原图写 27.5,属于截断或近似不规范。

本组 SSTF 更短,不代表它在所有输入下实现全局最优。题目若问总访问时间,还需计入旋转和传输,不能只算移动距离。

例题 14:最短移臂响应序列

假设磁盘臂位于 15 号柱面上,进程的请求序列如下表表示,如果采用最短移臂调度算法,那么系统的响应序列应为( )。

例题14:六个请求的柱面号、磁头号和扇区号

  • A、①②③④⑤⑥
  • B、⑤①②④③⑥
  • C、②③④⑤①⑥
  • D、④②③⑤①⑥
参考答案与同柱面请求的限制

四个选项中,只有 B 符合最短移臂的柱面选择。 柱面顺序为:

15 → 12 → 12 → 19 → 19 → 23 → 28
移动距离:3 + 0 + 7 + 0 + 4 + 5 = 19

15 离 12 为 3,离 19 为 4,所以先处理柱面 12 的①、⑤。A 在处理①后立即离开柱面 12,而⑤还在当前位置等待,不符合 SSTF;C、D 第一项直接去 19,也不符合。

但仅凭 SSTF,不能唯一确定①与⑤、②与④各自的内部顺序。 ⑤先于①涉及同磁道扇区的服务顺序,题目未给当前旋转位置;不能机械认定“扇区号小的一定先到”。②、④同属柱面 19、扇区号相同而磁头号不同,也需约定并列时如何处理。

因此 B 是选项中唯一符合移臂规则的候选,而题干本身不足以推出它是所有可能响应序列中的唯一序列。

专项题库练习(11 题)

本小节对应题库练习共 11 道题目,题目覆盖本节考点,答案与解析默认折叠。

题目 011

来源:知识点练习「操作系统」第 11 题(原站入口)。

文件 Docl 占 10 个磁盘块,需按块顺序读入并处理;磁盘块与缓冲区等大。每块从磁盘读入缓冲区用 10 μs,从缓冲区送到用户区用 5 μs,随后处理用 2 μs。第(11)空求单缓冲总耗时,第(12)空求双缓冲总耗时,单位均为 μs。本题回答第(11)空。

  • A. 100
  • B. 107
  • C. 152
  • D. 170
答案与解析

平台答案:C。

整理解析

一个缓冲区的读入和送出不能重叠,所以每块占用缓冲区 10+5 = 15 μs;送出后,该块的 2 μs 处理可与下一块读盘重叠。第 10 块在 150 μs 时送完,再处理 2 μs,总计 152 μs,选 C。计算采用题目的理想并行模型,不计调度等额外开销。

题目 012

来源:知识点练习「操作系统」第 12 题(原站入口)。

文件 Docl 占 10 个磁盘块,需按块顺序读入并处理;磁盘块与缓冲区等大。每块从磁盘读入缓冲区用 10 μs,从缓冲区送到用户区用 5 μs,随后处理用 2 μs。第(11)空求单缓冲总耗时,第(12)空求双缓冲总耗时,单位均为 μs。本题回答第(12)空。

  • A. 100
  • B. 107
  • C. 152
  • D. 170
答案与解析

平台答案:B。

整理解析

两个缓冲区轮换时,可一边读取下一块,一边送出并处理上一块。送出加处理仅 5+2 = 7 μs,短于读盘的 10 μs,因而读盘可连续进行。10 块读完用 100 μs,最后一块还需 5+2 μs,总计 107 μs,选 B;按题目理想模型不计额外开销。

题目 023

展开题目 023(先作答,再查看解析)

来源:知识点练习「操作系统」第 23 题(原站入口)。

文件 Doc1 共 10 个磁盘块,需要逐块读取并处理;每个缓冲区与一个磁盘块等大。每块读入缓冲区耗时 15 μs,送到用户区耗时 5 μs,在用户区处理耗时 1 μs。第(23)空求单缓冲总时间,第(24)空求双缓冲总时间,单位均为 μs。本题只回答第(23)空。

  • A. 150
  • B. 151
  • C. 156
  • D. 201
答案与解析

平台答案:D。

整理解析

单缓冲时,同一缓冲区的读入和送出不能重叠,每块占用 15+5 = 20 μs;上一块送出后的 1 μs 处理可与下一块读盘重叠。10 块读入并送出共 200 μs,末块还需处理 1 μs,所以总计 201 μs,选 D。本题采用15、5、1 μs,第11题采用10、5、2 μs,计算时应分别使用各题数据。

题目 024

展开题目 024(先作答,再查看解析)

来源:知识点练习「操作系统」第 24 题(原站入口)。

文件 Doc1 共 10 个磁盘块,需要逐块读取并处理;每个缓冲区与一个磁盘块等大。每块读入缓冲区耗时 15 μs,送到用户区耗时 5 μs,在用户区处理耗时 1 μs。第(23)空求单缓冲总时间,第(24)空求双缓冲总时间,单位均为 μs。本题回答第(24)空。

  • A. 150
  • B. 151
  • C. 156
  • D. 201
答案与解析

平台答案:C。

整理解析

双缓冲允许磁盘读取下一块,同时送出并处理上一块。送出加处理只需 5+1 = 6 μs,短于读盘的 15 μs,因此 10 次读盘可连续完成。最后一块读完后还需送出和处理,总耗时为 10×15+5+1 = 156 μs,选 C。按题目理想模型忽略调度等额外开销。

题目 027

展开题目 027(先作答,再查看解析)

来源:知识点练习「操作系统」第 27 题(原站入口)。

某磁盘共有 100 个磁道,题面给出的磁头移道耗时为 6 ms。一个含 100 块的文件非连续存储,逻辑上相邻数据块平均相隔 10 个磁道;每块的旋转延迟为 100 ms,传输需 20 ms。读取整个文件需要多少毫秒?

  • A. 12060
  • B. 12600
  • C. 18000
  • D. 186000
答案与解析

平台答案:C。

整理解析

平台按每移动 1 个磁道耗时 6 ms,并将平均 10 个磁道的寻道距离用于每次块读取,得到每块 10×6+100+20 = 180 ms,总计 100×180 = 18000 ms,选 C。题面局限:原文“从一个磁道移至另一个磁道”未明确是相邻磁道,且未给首块寻道距离。若只对块间的 99 次移动取平均,时间应为 99×60+100×120+首块寻道时间;平台数值还隐含首块也平均寻道 60 ms。

题目 075

展开题目 075(先作答,再查看解析)

来源:知识点练习「操作系统」第 75 题(原站入口)。

机械磁盘调度中,移臂调度与旋转调度通常采用哪种次序或适用方式( )?

  • A. 先做旋转调度,再做移臂调度

  • B. 访问不同柱面时,只需旋转调度

  • C. 先做移臂调度,再做旋转调度

  • D. 访问不同磁盘时,只需移臂调度

答案与解析

平台答案:C。

整理解析

选 C。机械磁盘通常先寻道,把磁头移到目标柱面,再等待目标扇区旋转到磁头下。访问不同柱面不能只靠旋转,不同驱动器间的选择也不能仅靠一次移臂完成。

题目 076

展开题目 076(先作答,再查看解析)

来源:知识点练习「操作系统」第 76 题(原站入口)。

磁盘臂当前位于 15 号柱面,各进程的柱面、磁头和扇区请求见表。若采用最短移臂调度,符合要求的响应次序为( )。

题目配图

  • A. ①②③④⑤⑥

  • B. ⑤①②④③⑥

  • C. ②③④⑤①⑥

  • D. ④②③⑤①⑥

答案与解析

平台答案:B。

整理解析

选 B。按离当前柱面最近的请求优先,柱面顺序为 15→12→19→23→28,对应请求分组 {①,⑤}→{②,④}→③→⑥,只有 B 符合。SSTF 本身不能确定同柱面内的先后;题目也没有给初始旋转位置,因此不能把⑤先于①视为唯一必然次序。

题目 083

展开题目 083(先作答,再查看解析)

来源:知识点练习「操作系统」第 83 题(原站入口)。

磁盘转速提高一倍时,下列哪项成立( )?

  • A. 平均存取时间减半

  • B. 平均寻道时间加倍

  • C. 旋转等待时间减半

  • D. 数据传输速率加倍

答案与解析

平台答案:C。

整理解析

平台选 C。转一周的时间与转速成反比,因此平均旋转等待时间减半;寻道部分不会由此减半,平均存取时间也不能一概减半。但若每圈数据量不变,盘面原始传输率确会加倍,故 D 是否成立取决于“传输速率”的口径;原解析把它一概与移臂时间挂钩不准确。

题目 093

展开题目 093(先作答,再查看解析)

来源:知识点练习「操作系统」第 93 题(原站入口)。

一个磁道分为 10 个物理块,每块存放 1 条逻辑记录。R1~R10 位于同一磁道,初始排列为图中物理块 1~10 依次对应 R1~R10。磁盘每转一周用时 10ms,磁头起始位于 R1 开头。系统按 R1 到 R10 顺序处理,使用单缓冲区,每条记录处理需 2ms。按图示排列处理全部记录的最长时间为(93);优化记录在磁道上的排列后,最短时间为(94)。

题目配图

请作答:第 93 题。

  • A. 30ms

  • B. 60ms

  • C. 94ms

  • D. 102ms

答案与解析

平台答案:D。

整理解析

本问选 D。每块读取需 10÷10=1ms,随后单缓冲区中的处理需 2ms。首条处理完用 3ms,此时已错过紧接着的下一条记录,还需等 8ms 转回来;之后每条再花 8+1+2=11ms,总计 3+9×11=102ms。这里是同一磁道上的旋转等待,不是移臂寻道,也不是“10个磁盘”。

题目 094

展开题目 094(先作答,再查看解析)

来源:知识点练习「操作系统」第 94 题(原站入口)。

一个磁道分为 10 个物理块,每块存放 1 条逻辑记录。R1~R10 位于同一磁道,初始排列为图中物理块 1~10 依次对应 R1~R10。磁盘每转一周用时 10ms,磁头起始位于 R1 开头。系统按 R1 到 R10 顺序处理,使用单缓冲区,每条记录处理需 2ms。按图示排列处理全部记录的最长时间为(93);优化记录在磁道上的排列后,最短时间为(94)。

题目配图

请作答:第 94 题。

  • A. 30ms

  • B. 60ms

  • C. 102ms

  • D. 94ms

答案与解析

平台答案:A。

整理解析

本问选 A。每条读取、处理至少合计 1+2=3ms,10 条的下界为 30ms。把 R1~R10 依次放在零起算位置 0、3、6、9、2、5、8、1、4、7,每次处理结束时下一条恰好转到,可达到该下界。优化消除的是额外旋转等待,不是磁头沿磁道之间的移动。

同材料可参照第 93 题。

题目 100

展开题目 100(先作答,再查看解析)

来源:知识点练习「操作系统」第 100 题(原站入口)。

磁头移到相邻磁道需 2ms。某文件在磁盘上不连续存放,逻辑相邻块的平均距离为 5 个磁道;每块的旋转延迟、传输时间分别为 10ms、1ms。读取 100 个块组成的文件,需要( )ms。

  • A. 1100

  • B. 1200

  • C. 2100

  • D. 2200

答案与解析

平台答案:C。

整理解析

按平台的平均访问模型选 C。每块计入平均寻道 5×2=10ms、旋转等待 10ms、传输 1ms,100 块共 100×21=2100ms。题目只给相邻块的平均距离,首块初始位置未说明;该结果隐含首块也按同样平均寻道计费,不能把它当作任意初始位置下的精确时间。

I/O 设备管理

I/O请求自上向下、完成响应自下向上的分层结构

自上而下的层次 典型职责
用户级 I/O 软件 库接口、格式化和缓冲、发出 I/O 请求
设备无关的系统软件 统一接口、设备名与资源管理、通用缓冲和错误处理等
设备驱动程序 把请求转换为具体设备操作,设置寄存器或队列、检查状态
中断处理程序 处理设备完成或异常通知,确认中断、更新状态并促使后续处理继续
硬件 实际执行数据传输和设备操作

上面前四层是软件,硬件单列。I/O 完成后可能唤醒等待进程、工作线程或继续异步回调,具体由系统实现决定;原文“唤醒设备驱动程序”是教学简化,驱动程序不一定对应一个睡眠中的独立线程。I/O 也不一定全部采用阻塞接口或中断方式。

**SPOOLing(假脱机)**用磁盘中的输入/输出井及作业队列接收请求,再由后台服务操作设备。例如两个程序分别提交打印文件后可以继续工作,打印服务依次取出任务驱动同一台打印机,使独占设备在逻辑上可由多个进程共享。打印机仍逐项服务,并未因此同时打印两份任务;请求写入队列也不等于纸面输出已完成。普通内存缓冲主要协调数据流与速度差,SPOOLing 还通过排队和后台服务提供这种设备共享效果。

例题 15:I/O 软件层次

I/O 设备管理软件一般分为 4 个层次,如下图所示。图中①②③分别对应( )。

例题15:用户进程和硬件之间的三个待填层次

  • A、设备驱动程序、虚设备管理、与设备无关的系统软件
  • B、设备驱动程序、与设备无关的系统软件、虚设备管理
  • C、与设备无关的系统软件、中断处理程序、设备驱动程序
  • D、与设备无关的系统软件、设备驱动程序、中断处理程序
参考答案与解析

选 D。 从靠近用户到靠近硬件依次是:设备无关软件、设备驱动程序、中断处理程序。设备无关层处理通用规则,驱动把规则落到具体设备,中断处理响应设备信号。

专项题库练习(3 题)

本小节对应题库练习共 3 道题目,题目覆盖本节考点,答案与解析默认折叠。

题目 032

来源:知识点练习「操作系统」第 32 题(原站入口)。

用户用键盘或鼠标操作并进入应用系统时,通常是哪类程序先接收到设备产生的输入信息?

  • A. 命令解释程序
  • B. 中断处理程序
  • C. 用户登录程序
  • D. 系统调用程序
答案与解析

平台答案:B。

整理解析

在题目采用的中断驱动 I/O 模型中,设备事件先由底层中断处理接收,再经驱动和输入子系统向上交付,应用程序之后才取得输入,因此选 B。“通常”是对该处理链的概括,不意味着所有设备或实现都必须为每次输入产生独立中断。

题目 055

来源:知识点练习「操作系统」第 55 题(原站入口)。

I/O 设备管理软件通常分为 4 个层次,图中另列底层硬件。①、②、③依次对应哪些软件层( )?

题目配图

  • A. 设备驱动程序、虚设备管理、设备无关系统软件

  • B. 设备驱动程序、设备无关系统软件、虚设备管理

  • C. 设备无关系统软件、中断处理程序、设备驱动程序

  • D. 设备无关系统软件、设备驱动程序、中断处理程序

答案与解析

平台答案:D。

整理解析

选 D。自上而下的软件层为用户级 I/O、设备无关层、设备驱动、中断处理;硬件不计入这 4 层。设备无关层提供统一接口,驱动负责设备具体操作,中断处理响应完成或异常事件。

题目 074

来源:知识点练习「操作系统」第 74 题(原站入口)。

下列关于 I/O 软件的表述,正确的是( )。

  • A. 公开 I/O 实现细节,方便用户使用设备

  • B. 隐藏 I/O 实现细节,为用户提供物理接口

  • C. 隐藏 I/O 实现细节,方便用户使用设备

  • D. 公开 I/O 实现细节,用户可用逻辑地址访问设备

答案与解析

平台答案:C。

整理解析

选 C。I/O 软件向上提供较统一的逻辑接口,隐藏设备寄存器、时序和具体驱动等细节,便于应用使用设备。向用户暴露物理细节不是这层抽象的主要目的。

文件、目录与路径

文件结构与控制信息

文件可理解为具有名称、在逻辑上相关的一组信息。逻辑结构关注应用看到的记录或字节流;物理结构关注数据如何组织到存储块中。

结构 核心特点
连续分配 数据占连续块,定位方便,扩展与外部碎片需要处理
链接分配 块可离散,用链接记录顺序;普通链式组织随机访问较慢
索引分配 通过索引定位数据块,支持离散存放和随机访问,同时付出索引空间与访问成本

FAT 是**显式链接分配**:文件的首簇号由目录等元信息给出,后继簇号集中保存在文件分配表里。例如首簇为 4,FAT[4]=11、FAT[11]=6、FAT[6]=结束标记,则数据按 4→11→6 的顺序组成文件。它没有要求数据簇连续;与把后继指针存在每个数据块内的隐式链接不同,也不是 inode 的直接/间接索引。FAT 表项按簇号查后继,不能把文件的第 k 个逻辑块直接当成 FAT[k]。

文件控制块 FCB 描述文件属性,例如标识与位置、长度、权限、时间戳等。目录项用于组织“名称到文件”的关系;实际文件系统可能把名称与元数据拆开,如目录项保存名称和 inode 编号、inode 保存其他元数据。因此,目录项、FCB、inode 不能在所有系统中直接画等号。

打开计数、等待队列和当前偏移等使用信息常由内存中的打开文件表或相关对象维护,不一定全部永久保存在磁盘 FCB 中。只读、隐藏、系统等文件属性也依文件系统而异。

目录结构

  • 一级目录:所有文件置于同一层,名称冲突较多;这是组织方式,不是禁止任何实现上的共享机制。
  • 二级目录:主文件目录 MFD 下有用户目录 UFD,可在不同用户目录中使用同名文件。
  • 多级/树形目录:允许嵌套组织文件,不等于“恰好三级”。硬链接等共享关系可使真实结构比纯树更复杂。

Windows 双击文件时通常按扩展名、文件类型关联及用户设置选择应用;文件关联不等于存储结构。

Linux 在同一个挂载命名空间中以 / 作为统一根,其他文件系统挂载到这棵目录树上;/root 通常只是 root 用户的主目录。用户身份、主目录与文件系统根是三个不同概念。

目录保存名称到文件对象的定位关系,因此其损坏可能让许多仍有数据块的文件无法按名称找到。空闲空间管理元数据则决定哪些块能再分配:错误也可能造成重复分配、覆盖数据或空间泄漏。评价崩溃影响要看损坏范围及日志、备份等恢复机制,不能只看是否属于用户数据文件。

例题 16:目录损坏的影响

若系统在将( )文件修改的结果写回磁盘时发生崩溃,则对系统的影响相对较大。

  • A、目录
  • B、空闲块
  • C、用户程序
  • D、用户数据
参考答案与适用范围

按教材考点选 A。 目录维护文件的组织和定位关系,其损坏可能让多个文件无法按名称找到,影响范围通常超过单个普通文件。

这不是实际故障严重性的绝对排序。空闲空间元数据不一致也可能导致重复分配或空间泄漏,关键用户数据损坏也可能影响巨大;日志、写时复制、备份等会改变崩溃后的恢复能力。

绝对路径、相对路径与全文件名

以斜杠为根、包含D1和D2目录的树形结构

在图中的 Unix 风格路径下,当前目录为 /D1 时,F2 的绝对路径为 /D1/W2/F2,相对路径为 W2/F2。

  • 绝对路径从文件系统根或指定的绝对根开始。 Unix 风格以 / 开头;Windows 还涉及盘符根、UNC 路径等规则。
  • 相对路径从当前工作目录或其他指定基准目录开始。 它完全可以含 /,如 W2/F2、../D2/F3。
  • 路径可以指向目录,也可以包含最后的文件名;教材的“全文件名”通常指含文件名的完整绝对路径。

所以原文“绝对路径有 /,相对路径没有 /”错误。Unix 风格应看**是否以 / 开头**,而不是路径中有没有斜杠。“绝对路径必须从盘符开始”也不适用于 Unix;Windows 的 C:foo 本身也不是 C:\foo 那样的完整绝对路径。

例题 17:rw.dll 的完整名称

若某文件系统的目录结构如下图所示,假设用户要访问文件 rw.dll,且当前工作目录为 swtools,则该文件的全文件名为( ),相对路径和绝对路径分别为( )。

例题17:swtools下flash目录中的rw.dll及其他共享连接

第一空:

  • A、rw.dll
  • B、flash/rw.dll
  • C、/swtools/flash/rw.dll
  • D、/Programe file/Skey/rw.dll

第二空:

  • A、/swtools/flash/ 和 /flash/
  • B、flash/ 和 /swtools/flash/
  • C、/swtools/flash/ 和 flash/
  • D、/flash/ 和 swtools/flash/
参考答案与读图过程

选 C、B。 从当前工作目录 swtools 沿 flash → rw.dll 即可找到目标。

  • 含文件名的完整绝对路径:/swtools/flash/rw.dll。
  • 本题第二空只问到文件所在目录:相对目录路径 flash/,绝对目录路径 /swtools/flash/。
  • 若问含文件名的相对路径,则应写 flash/rw.dll。

原图还画出其他目录通向同一文件节点的连接,因此严格说含有共享关系,并非完全没有多父节点的树。这里按选项指定的 swtools/flash 访问路线作答,不需要猜测共享链接的具体实现。

专项题库练习(4 题)

本小节对应题库练习共 4 道题目,题目覆盖本节考点,答案与解析默认折叠。

题目 031

来源:知识点练习「操作系统」第 31 题(原站入口)。

在 Windows 中,双击文件 IMG_20160122_103.jpg 后,系统依据预先建立的哪种机制选择打开该图像的程序?

  • A. 文件
  • B. 文件关联
  • C. 文件目录
  • D. 临时文件
答案与解析

平台答案:B。

整理解析

文件关联把文件类型及相应的打开操作映射到处理程序。系统据此选择用于 .jpg 文件的默认应用,选 B。目录负责组织文件位置,并不决定由哪个程序打开。

题目 045

来源:知识点练习「操作系统」第 45 题(原站入口)。

以下哪项正确描述 Linux 的根目录?

  • A. 只有一个根目录,写作 /root
  • B. 存在多个根目录,以 / 加各自目录名表示
  • C. 只有一个根目录,写作 /
  • D. 存在多个根目录,直接用各自目录名表示
答案与解析

平台答案:C。

整理解析

在同一个文件系统命名空间中,目录树以 / 为统一根;其他文件系统通过挂载接入这棵树。/root 通常是 root 用户的主目录,不是根目录本身,选 C。

题目 054

来源:知识点练习「操作系统」第 54 题(原站入口)。

系统把哪类文件的修改写回磁盘时发生崩溃,通常会造成较大范围的影响( )?

  • A. 目录

  • B. 空闲块

  • C. 用户程序

  • D. 用户数据

答案与解析

平台答案:A。

整理解析

按题目比较选 A。目录及相关元数据决定文件的命名、定位和组织关系,损坏可能影响多个文件的可达性。但损害大小仍取决于文件系统及日志恢复机制;平台称空闲块管理损坏通常不会丢数据过于绝对,错误分配也可能导致数据被覆盖。

题目 058

来源:知识点练习「操作系统」第 58 题(原站入口)。

Linux 中,用来修改文件权限设置的命令是( )。

  • A. attrib

  • B. modify

  • C. chmod

  • D. change

答案与解析

平台答案:C。

整理解析

选 C。chmod 更改文件的权限位。平台对其他词的说明有误:attrib 通常是 Windows 的文件属性命令,Linux 管理密码有效期的是 chage,不是选项中的 change;modify 也不是标准的文件权限修改命令。

索引文件与空闲空间管理

直接、一级间接和多级间接索引

索引节点中的直接索引及一级、二级、三级间接索引

直接地址项直接指向数据块;一级间接地址项指向保存数据块地址的索引块;二级间接先指向保存一级索引块地址的块,以此类推。

若索引块大小 B、每个地址项大小 a,则每索引块可放 n = floor(B/a) 个完整地址项;一个一级间接入口可指向 n 个数据块,一个二级入口可指向 n² 个数据块。最大文件长度统计的是**可寻址的数据容量**,索引块本身不算文件内容。

正文示意图的直接项数量与下面题目不同,应分别按图或题干计数。完整寻址过程复用索引文件结构专题。

不足一个地址项的剩余字节不能再算一项。例如索引块 512 B、每项 3 B,实际只有 floor(512/3)=170 项;纯二级索引可定位 170² 个数据块,而不是使用带小数的地址项数平方。若 inode 有 D 个直接入口、S 个一级入口、T 个二级入口,则可定位数据块数为 D+S×n+T×n²,再乘数据块大小得到文件容量。

判断访问层次时,按累计范围找逻辑块号:直接部分覆盖 0~D−1,一级部分覆盖 D~D+S×n−1,二级从 D+S×n 开始。地址项编号是 inode 内的位置,逻辑块号是文件内容中的顺序,两者在间接索引区不再一一对应。若问磁盘读取次数,在 inode 已驻留且索引块均未缓存的模型下,直接、一级、二级访问分别还需读 1、2、3 块;缓存命中或还需读取 inode 时要另算。

例题 18:混合索引的访问层次与容量

某文件系统采用索引节点管理,其磁盘索引块和磁盘数据块大小均为 1KB 字节且每个文件索引节点有 8 个地址项 iaddr[0]~iaddr[7],每个地址项大小为 4 字节,其中 iaddr[0]~iaddr[4] 采用直接地址索引,iaddr[5] 和 iaddr[6] 采用一级间接地址索引,iaddr[7] 采用二级间接地址索引。若用户要访问文件 userA 中逻辑块号为 4 和 5 的信息,则系统应分别采用( ),该文件系统可表示的单个文件最大长度是( )KB。

第一空:

  • A、直接地址访问和直接地址访问
  • B、直接地址访问和一级间接地址访问
  • C、一级间接地址访问和一级间接地址访问
  • D、一级间接地址访问和二级间接地址访问

第二空:

  • A、517
  • B、1029
  • C、65797
  • D、66053
参考答案与索引容量推导

选 B、D。 逻辑块号从 0 开始,5 个直接地址项覆盖块 0~4;块 5 进入第一个一级间接范围。

1
2
3
4
5
每个索引块的地址项数 = 1024 / 4 = 256
直接数据块数 = 5
两个一级间接入口 = 2 × 256 = 512 个数据块
一个二级间接入口 = 256² = 65536 个数据块
最大长度 = (5 + 512 + 65536) × 1 KB = 66053 KB

iaddr[5] 是索引节点里的地址项编号,文件逻辑块 5 是内容中的块编号;此处数值相同,不代表一级间接只管理块 5。它实际上覆盖逻辑块 5~260,第二个一级入口覆盖 261~516,二级入口从块 517 开始。

位示图

空闲空间管理方法及16位、32位分组的位示图

位示图用一位表示一个物理块的分配状态。本题约定 0 空闲、1 已占用;其他系统也可能采用相反约定,必须先看定义。

若块号、字号和位号均从 0 开始,每字 w 位:

字号 = 物理块号 // w
位号 = 物理块号 % w

原图同时出现 16 位和 32 位示意,不能固定“除以 16”。也要看表头位号:图中位号从左到右递减,余数对应的是标注的位号,不是从左向右数的第几个格子。

N 个物理块需 N 个有效位;以完整字保存,需要 ceil(N/w) 个字。位示图只说明空间是否已分配,不记录文件名、数据块顺序或文件归属;索引负责“文件的数据在哪里”。详见磁盘位示图专题。

由磁盘总容量求位示图大小时,先统一容量单位,再依次计算:块数=容量/块大小、有效位数=块数、所需字数=ceil(块数/字长位数)。例如 12 GiB 磁盘、每块 2 MiB,共 6144 块;64 位字组织的位示图需 96 个字,即 768 B。块大小决定磁盘被切成多少块,机器字长决定每个管理字能记录多少块,不要把物理块大小当作位示图每位的存储开销。

例题 19:2053 号块的字号

某文件管理系统在磁盘上建立了位示图(bitmap),记录磁盘的使用情况。若磁盘上物理块的编号依次为:0、1、2、……;系统中的字长为 32 位,位示图中字的编号依次为:0、1、2、……,每个字中的一个二进制位对应文件存储器上的一个物理块,取值 0 和 1 分别表示物理块是空闲或占用。假设操作系统将 2053 号物理块分配给某文件,那么该物理块的使用情况在位示图中编号为( )的字中描述。

  • A、32
  • B、33
  • C、64
  • D、65
参考答案与整除核对

选 C。 2053 = 64 × 32 + 5,所以字号为 64,位号为 5。

题目明确字号从 0 开始,因此填写 64。若按自然语言从头数,它是第 65 个字,但那不是此题要求的编号。分配后对应位应为 1。

专项题库练习(11 题)

本小节对应题库练习共 11 道题目,题目覆盖本节考点,答案与解析默认折叠。

题目 007

来源:知识点练习「操作系统」第 7 题(原站入口)。

文件系统用位示图记录磁盘块的占用情况。一个字为 32 位,每个物理块为 4MB;物理块和位示图的字都从 0 开始编号(0、1、2、…)。第(7)空求物理块 16385 对应的字编号;第(8)空求容量为 1000GB 的磁盘需要多少个位示图字。本题回答第(7)空。

  • A. 128
  • B. 256
  • C. 512
  • D. 1024
答案与解析

平台答案:C。

整理解析

每一位对应一个物理块,每个 32 位字记录 32 块。16385 = 512×32 + 1,故对应字编号 512,选 C;它是从 1 起数的第 513 个字。题干虽写“第几个字”,但已明确字从 0 编号,应按编号作答。

题目 008

来源:知识点练习「操作系统」第 8 题(原站入口)。

文件系统用位示图记录磁盘块的占用情况。一个字为 32 位,每个物理块为 4MB;物理块和位示图的字都从 0 开始编号(0、1、2、…)。第(7)空求物理块 16385 对应的字编号;第(8)空求容量为 1000GB 的磁盘需要多少个位示图字。本题回答第(8)空。

  • A. 1200
  • B. 3200
  • C. 6400
  • D. 8000
答案与解析

平台答案:D。

整理解析

按该题采用的二进制容量口径,1GB 按 1024MB 计算:块数为 1000×1024÷4 = 256000,位示图需 256000 位,字数为 256000÷32 = 8000,选 D。单位说明:这里的 GB/MB 实际沿用 GiB/MiB 的换算;若严格使用十进制 GB/MB,则需向上取整为 7813 个字,与给定选项不符。

题目 038

展开题目 038(先作答,再查看解析)

来源:知识点练习「操作系统」第 38 题(原站入口)。

一台计算机的字长为 32 位,文件系统用位示图记录磁盘占用。磁盘容量为 300GB,每个物理块为 1MB;该位示图需要多少个字?

  • A. 1200
  • B. 3200
  • C. 6400
  • D. 9600
答案与解析

平台答案:D。

整理解析

每块用 1 位,一个字有 32 位。按本题 1GB = 1024MB 的惯用二进制口径,块数为 300×1024÷1 = 307200,位示图占 307200÷32 = 9600 个字,选 D。若 GB、MB 严格按十进制单位使用,则是 9375 个字;题目采用的是前一种单位约定。

题目 039

展开题目 039(先作答,再查看解析)

来源:知识点练习「操作系统」第 39 题(原站入口)。

某文件系统以位示图管理磁盘空间。计算机字长为 32 位,磁盘容量为 300GB,物理块大小为 4MB。表示全盘占用情况需要多少个位示图字?

  • A. 1200
  • B. 2400
  • C. 6400
  • D. 9600
答案与解析

平台答案:B。

整理解析

按题目采用的 1GB = 1024MB 口径,物理块数为 300×1024÷4 = 76800;每字的 32 位可表示 32 块,故需 76800÷32 = 2400 个字,选 B。本题块大小为4MB,与第38题不同,计算时应使用本题数据。若严格按十进制 GB/MB,则需向上取整为 2344 个字。

题目 049

展开题目 049(先作答,再查看解析)

来源:知识点练习「操作系统」第 49 题(原站入口)。

某文件系统使用多级索引,每个磁盘块为 1K 字节,一个块号占 3 字节。若采用二级索引,可寻址的文件最大长度是多少 K 字节?

  • A. 1024
  • B. 2048
  • C. 116281
  • D. 232562
答案与解析

平台答案:C。

整理解析

1K 按 1024 字节计,每个索引块只能放下 floor(1024÷3) = 341 个完整块号,还剩 1 字节。两级索引最多定位 341×341 个数据块,每块 1K 字节,故最大文件长度为 116281K 字节,选 C。纠错:平台写成 (1024/3)×(1024/3) 而未取整,会得到错误数值;两级都必须按完整索引项向下取整。索引块本身不计入文件数据长度。

题目 063

展开题目 063(先作答,再查看解析)

来源:知识点练习「操作系统」第 63 题(原站入口)。

文件系统用位示图记录磁盘占用情况:物理块、位示图中的字都从 0 开始编号;机器字长为 32 位,每一位对应一个物理块,0 表示空闲,1 表示占用。把物理块 2053 分配给文件后,应在位示图编号为( )的字中记录。

  • A. 32

  • B. 33

  • C. 64

  • D. 65

答案与解析

平台答案:C。

整理解析

选 C。物理块号和字编号都从 0 起算,直接做 2053÷32=64 余 5,因此记录在编号 64 的字中、按零起算的第 5 位。它是顺序上的第 65 个字,注意“编号”和“第几个”不同。

题目 064

展开题目 064(先作答,再查看解析)

来源:知识点练习「操作系统」第 64 题(原站入口)。

文件系统采用索引节点法,每个文件有 8 个地址项,每项 4 字节:5 项直接索引、2 项一级间接索引、1 项二级间接索引。索引块与数据块均为 1KB。访问逻辑块号 1 和 518 时,依次使用( )。

  • A. 直接地址索引和一级间接地址索引

  • B. 直接地址索引和二级间接地址索引

  • C. 一级间接地址索引和一级间接地址索引

  • D. 一级间接地址索引和二级间接地址索引

答案与解析

平台答案:B。

整理解析

选 B。每个索引块可放 1024÷4=256 个地址。直接索引覆盖逻辑块 0~4;两个一级间接项覆盖 5~516;二级间接从 517 开始。因此块 1 用直接索引,块 518 用二级间接索引。

题目 067

展开题目 067(先作答,再查看解析)

来源:知识点练习「操作系统」第 67 题(原站入口)。

位示图用于记录磁盘块是否占用。机器字长为 64 位,磁盘容量为 1024GB,物理块大小为 4MB,位示图共需( )个字。

  • A. 1200

  • B. 2400

  • C. 4096

  • D. 9600

答案与解析

平台答案:C。

整理解析

选 C。按存储题常用的二进制容量换算,块数为 1024×1024÷4=262144。每块占 1 位、每字 64 位,因此需要 262144÷64=4096 个字。

题目 079

展开题目 079(先作答,再查看解析)

来源:知识点练习「操作系统」第 79 题(原站入口)。

某文件系统用索引节点管理文件,磁盘索引块、数据块均为 1KB。每个文件的索引节点有 iaddr[0]~iaddr[7] 共 8 个地址项,每项 4 字节;iaddr[0]~iaddr[4] 是直接索引,iaddr[5]、iaddr[6] 是一级间接索引,iaddr[7] 是二级间接索引。访问文件 userA 的逻辑块 4、5,分别采用(79);单个文件可表示的最大长度为(80)KB。

请作答:第 79 题。

  • A. 直接地址访问和直接地址访问

  • B. 直接地址访问和一级间接地址访问

  • C. 一级间接地址访问和一级间接地址访问

  • D. 一级间接地址访问和二级间接地址访问

答案与解析

平台答案:B。

整理解析

本问选 B。逻辑块编号从 0 开始,5 个直接地址覆盖 0~4,所以块 4 直接访问;块 5 已进入第一个一级间接索引的范围,需要查一级索引块。此处是一个索引节点内的多个地址项,并非多个索引节点。

题目 080

展开题目 080(先作答,再查看解析)

来源:知识点练习「操作系统」第 80 题(原站入口)。

某文件系统用索引节点管理文件,磁盘索引块、数据块均为 1KB。每个文件的索引节点有 iaddr[0]~iaddr[7] 共 8 个地址项,每项 4 字节;iaddr[0]~iaddr[4] 是直接索引,iaddr[5]、iaddr[6] 是一级间接索引,iaddr[7] 是二级间接索引。访问文件 userA 的逻辑块 4、5,分别采用(79);单个文件可表示的最大长度为(80)KB。

请作答:第 80 题。

  • A. 517

  • B. 1029

  • C. 65797

  • D. 66053

答案与解析

平台答案:D。

整理解析

本问选 D。每个索引块容纳 1024÷4=256 个地址,数据块总数为 5+2×256+256×256=66053,每块 1KB,故文件数据最大长度为 66053KB。索引块本身占用的空间不计入文件内容长度。

同材料可参照第 79 题。

题目 084

展开题目 084(先作答,再查看解析)

来源:知识点练习「操作系统」第 84 题(原站入口)。

机器字长为 128 位,磁盘容量为 2048GB,每个物理块大小为 8MB。采用位示图记录磁盘块使用情况,共需( )个字。

  • A. 1024

  • B. 2048

  • C. 4096

  • D. 8192

答案与解析

平台答案:B。

整理解析

选 B。按二进制单位换算,块数为 2048×1024÷8=262144,每块用 1 位标记。字长为 128 位,需要 262144÷128=2048 个字,即 32768 字节。

Linux 文件权限

读取权限位

ls -l /tmp/123

普通文件的rw-r--r--权限按所有者、所属组、其他用户分组

图中的 -rw-r--r-- 表示普通文件,所有者可读写,所属组可读,其他用户可读。

位置 含义
首字符 - 普通文件、d 目录、l 符号链接等
第 1 组三位 所有者 user 的权限
第 2 组三位 所属组 group 的权限
第 3 组三位 其他用户 other 的权限

登录 root 运行 ls,不会自动让被查看文件归 root 所有。 需要读 ls -l 输出中的所有者、所属组字段,才能知道这三组权限对应谁。原文仅给权限字符串,就把所有者和所属组都认作 root,缺少依据。

普通权限判断也不是把三组权限全部叠加:通常先匹配所有者,再匹配组,否则按其他用户处理;ACL 等机制可能扩展这套规则。

数字权限与 chmod

rwx对应7、rw-对应6等数字权限表

r=4、w=2、x=1,每组相加得到一位八进制数字。例如 rw-r--r-- = 644,rwxr-xr-x = 755。

chmod 644 example.txt
chmod 755 example.sh

原文 chmod 777 某文件 会把基本权限设为所有者、组、其他用户均可读写执行。它是演示数字表示,不应当作所有文件的默认设置;若意图是“在原有权限上给所有人增加某项”,符号写法如 chmod a+r example.txt 更直接。

文件与目录上同一字母的作用不同:

权限 普通文件 目录
r 读取内容 列出目录中的名称
w 修改内容 配合 x 等条件创建、删除或重命名目录项
x 尝试作为程序执行,仍受格式和系统规则约束 搜索/遍历目录,访问其中已知名称

删除文件主要看父目录的权限及粘滞位等规则,不是只看该文件的写权限。只读文件在父目录允许的情况下也可能被删除。

root/特权进程是普通权限模型的重要例外:具备相应能力时可绕过许多自主访问控制检查,但不是无条件绕过所有限制;普通文件执行仍涉及执行位规则,此外还可能受挂载选项、只读文件系统、不可变属性、SELinux 等机制约束。不能仅凭 --- 就断言 root 一定无法读取,也不能说 root 对所有文件都必然能执行。

复习重点与易错辨析

以下保留原课程的知识提要图;图中的星级是该课件的复习提示,不代表官方固定分值。

操作系统课程知识提要与课件标注的复习星级

看到的题干线索 优先检查
线程私有、资源共享 区分地址空间共享与各自维护执行上下文
运行、就绪、等待 等待条件是否满足;是否经过处理器调度;单核还是多核
P、V、负数信号量 初值代表什么,采用哪种计数定义,中间是否有其他操作
前趋箭头 前驱完成后 V,后继开始前 P;多前驱要等齐
保证不死锁、可能死锁 看资源模型、总数还是剩余量,别把所有需求同时拿满当作最小保证
资源分配图 先读箭头方向,再算空闲量,反复尝试化简
逻辑地址、页表 拆页号和偏移,查当前题目的页框映射
段号、偏移 先验证偏移严格小于段长,再加基址
位数、最大段数 高位减低位加一;容量是上限,不是每段实际长度
磁盘移臂与旋转 距离、初始位置、方向、同柱面排序和首次等待是否给全
全文件名、相对路径 从哪里出发,是否包含最终文件名;相对路径也可含斜杠
直接/间接索引 数直接入口、每块地址项和间接层数,只统计数据容量
位示图、字号 编号起点、每字位数、整除取商与余数
文件权限 区分所有者与登录用户、文件与目录、普通用户与特权例外

原章节回顾提到的“磁盘优化存储问题”,可结合本章“记录交错存放:处理时磁盘仍在旋转”的教学示例与已嵌入的知识点练习学习。关键是区分读入、处理和等待,不能把同磁道上的旋转等待算成寻道时间。

来源与整理说明

资料来自希赛《2026 版本软件设计师考试精讲班视频教程讲义电子版》,由本次任务在课件页面调用 Obsidian Web Clipper 后读取正文输入框。整理日期:2026-09-28。

原课件 原页面
课程内容提要 161687
操作系统概述 161689
进程管理 161690
存储管理 161691
设备管理 161692
文件管理 161693
文件权限 161694
章节回顾 161695

配图保留原课件内容并下载为本地文件;图内不准确表述已在相邻文字中解释,不代表整理者认可其中所有简化结论。原题未给出或表述不清的条件均据实标注。

评论