ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

【分享】软考-操作系统章-真题-练习与详解-8/17

【分享】软考-操作系统章-真题-练习与详解-8/17 摘要本文精选软考操作系统科目中 4 组高频真题第 1118 题覆盖文件索引结构、分时系统时间片轮转、线程资源共享与私有、可变分区内存回收四大核心考点。每道题均给出完整题目、标准答案、逐步推导解析、考场秒杀技巧与易混淆点延伸帮助考生快速掌握解题套路并巩固必背结论。【完整题目】11-12、设文件索引节点中有 8 个地址项每个地址项大小为 4 字节其中 5 个地址项为直接地址索引2 个地址项是一级间接地址索引1 个地址项是二级间接地址索引磁盘索引块和磁盘数据块大小均为 1KB若要访问文件的逻辑块号分别为 5 和 518则系统应分别采用11而且可表示的单个文件最大长度是12KB。11A. 直接地址索引和一级间接地址索引B. 直接地址索引和二级间接地址索引C. 一级间接地址索引和二级间接地址索引D. 一级间接地址索引和一级间接地址索引12A. 517 B. 1029 C. 16513 D. 66053【详细解析】第一步求每个索引块能存放的地址项个数磁盘索引块大小 1KB 1024B每个地址项 4B所以1024÷4256个地址项/索引块1024÷4256个地址项/索引块即一个一级间接索引块可指向 256 个数据块一个二级间接索引可指向 256 × 256 65536 个数据块。第二步划分各级索引覆盖的逻辑块号范围逻辑块号从 0 开始表格索引方式地址项数覆盖数据块数逻辑块号范围直接地址索引550 4第 1 个一级间接12565 260第 2 个一级间接1256261 516二级间接1256×256 65536517 66052第三步判断逻辑块号 5 和 518第 11 空逻辑块号 5落在 5260 区间 → 采用一级间接地址索引注意直接索引只到块号 4块号 5 恰好是第一个一级间接的第一个块这是本题最易错的地方。逻辑块号 518超过了一级间接的上限 516落在 51766052 区间 → 采用二级间接地址索引。所以第 11 空为“一级间接地址索引和二级间接地址索引”选C。第四步计算单个文件最大长度第 12 空最大文件长度 各级索引能表示的数据块总数 × 块大小52×2561×256×25655126553666053块52×2561×256×25655126553666053块每块 1KB故最大长度 66053 KB选D。选项陷阱提示A517 5 512只算了直接 一级间接漏掉二级间接B1029 5 1024是误以为一个索引块能放 1024 个地址项把地址项当成 1BC16513是二级间接按错误规格计算的干扰值。【答案】第 11 题C一级间接地址索引和二级间接地址索引第 12 题D66053【完整题目】13、假设某分时系统采用简单时间片轮转法当系统中的用户数为 n、时间片为 q 时系统对每个用户的响应时间 T 1313A. n B. q C. nq D. nq【答案】Cn × q【详细解析】第一步理解分时系统的轮转模型分时系统中n 个用户进程共享一台 CPU。系统把所有就绪用户按先来先服务排成一个队列轮流给队首用户分配一个时间片 q用户1 → 用户2 → 用户3 → … → 用户n → 用户1 → … [q] [q] [q] [q]第二步推导响应时间响应时间 用户发出请求到再次获得 CPU 服务得到响应的时间间隔。某个用户用完自己的时间片后必须等其余 n−1 个用户各用完一个时间片才轮到自己。因此一轮循环共 n 个时间片Tqq⋯q⏟n 个n×qTn 个qq⋯q​​n×q故选C。第三步排除法考场 30 秒秒杀技巧 —— 量纲分析表格选项量纲检验结论A. n纯数字用户数不是时间❌B. q是时间但只算了自己那一片没算排队等待❌C. n×q个数 × 时间 时间且符合轮转机制✅D. nq用户数 时间量纲不同根本不能相加❌最荒谬的干扰项技巧凡是公式型选择题先做量纲单位检查本题可瞬间排除 A、D再在 B、C 中用是否考虑了排队二选一。【题目来源】经联网核实此题为软考真题收录于《软件水平考试中级软件设计师上午基础知识历年真题试卷汇编》原卷第 23 题同时也在网络工程师中级真题中出现过是操作系统处理机管理章节的经典送分题。【相关考点延伸同公式的 3 种考法】这个公式T ≈ n × q是分时系统的核心考点真题中至少有三种变形一并掌握变形 1已知 n 和 T反求最大时间片用户数 100要求响应时间不超过 2s时间片最大应为解q T / n 2000ms / 100 20ms。变形 2把 q 换成每个命令的处理时间50 个终端每个命令需 100ms 处理最长响应时间 50 × 100ms 5s。变形 3概念辨析高频选择题分时系统的性能评价指标是 →响应时间批处理系统的评价指标是 →周转时间 / 吞吐量。分时系统四大特征多路性同时性、独立性、及时性、交互性。变形 4时间片大小的权衡必背结论时间片太大→ 退化为先来先服务FCFS失去分时意义时间片太小→上下文切换过于频繁系统开销切换时间占比过大效率下降。【一句话记忆】分时轮转响应时间 用户数 × 时间片T n·q看到个数 时间相加的选项nq直接划掉量纲不对必是坑。【完整题目】14、在支持多线程的操作系统中假设进程 P 创建了若干个线程那么 14 是不能被这些线程共享的。14A. 该进程的代码段B. 该进程中打开的文件C. 该进程的全局变量D. 该进程中某线程的栈指针【答案】D该进程中某线程的栈指针【详细解析】核心原理线程 共享进程资源 私有少量资源同一进程内的多个线程共享该进程的绝大部分资源但每个线程必须拥有自己独立的一小部分资源以保证各自能独立调度执行。逐项分析表格选项内容是否共享说明A代码段✅ 共享所有线程执行同一份程序代码B打开的文件✅ 共享文件描述符表属于进程级资源C全局变量✅ 共享全局变量存放在数据段进程内所有线程可见这也是多线程需要同步互斥的原因D某线程的栈指针❌不共享每个线程有自己独立的栈和栈指针用于保存各自的局部变量、函数调用现场故选D。为什么栈指针不能共享理解关键如果两个线程共用一个栈指针那么线程 A 调用函数压栈时会破坏线程 B 的局部变量和返回地址导致程序彻底混乱。栈是线程独立执行流的物理载体所以必须私有。【必背考点线程共享 vs 私有一览表】这是软考操作系统年年必考的高频点建议直接背下来✅ 线程间共享的资源属于进程代码段程序指令数据段全局变量、静态变量、堆区动态分配内存进程级资源打开的文件、I/O 设备、信号量、地址空间、进程 ID❌ 线程私有的资源每个线程独有线程 ID程序计数器 PC记录各自执行到哪条指令寄存器集合栈 / 栈指针保存各自的局部变量、调用现场线程本地存储TLS、errno、信号掩码、优先级记忆口诀代码数据文件共享PC 寄存栈指针私有。凡是和当前执行到哪、临时存了什么有关的 → 私有凡是和程序本身是什么、有哪些外部资源有关的 → 共享。【考场秒杀技巧】看到这类题直接用一句话判断哪个东西是每个线程各跑各的必须单独拥有的→ 答案就是它。栈指针、PC、寄存器都是各跑各的证据而代码、文件、全局变量是大家共用一份的。本题问不能共享直接锁定栈指针 D。【延伸易混淆对比进程 vs 线程】表格维度进程线程资源分配资源分配的基本单位基本不拥有资源只拥有少量私有资源调度早期是调度单位CPU 调度的基本单位开销创建/切换开销大创建/切换开销小通信需 IPC管道、消息、共享内存等可直接读写共享变量需同步独立性地址空间独立一个崩不影响其他一个线程崩可能导致整个进程崩溃【完整题目】15-16、进程资源图如图(a)和(b)所示其中图(a)中 15图(b)中 16。(图 aR1 有 2 个实例R2 有 3 个实例进程 P1、P2)(图 bR1 有 2 个实例R2 有 3 个实例进程 P1、P2、P3)15.A. P1 是非阻塞节点P2 是阻塞节点所以该图不可以化简是死锁的B. P1、P2 都是阻塞节点所以该图不可以化简是死锁的C. P1、P2 都是非阻塞节点所以该图可以化简是非死锁的D. P1 是阻塞节点P2 是非阻塞节点所以该图不可以化简、是死锁的16.A. P1、P2、P3 都是非阻塞节点该图可以化简是非死锁的B. P1、P2、P3 都是阻塞节点该图不可以化简是死锁的C. P2 是阻塞节点P1、P3 是非阻塞节点该图可以化简是非死锁的D. P1、P2 是非阻塞节点P3 是阻塞节点该图不可以化简是死锁的【答案】第 15 题C 第 16 题C【解题核心方法资源分配图的化简法】判断死锁的标准流程软考必背四步法① 看每个进程已占和还想要什么 → ② 算当前各资源剩余几个 → ③ 找需求 ≤ 剩余的进程非阻塞节点假设它运行完释放资源 → ④ 重复③若所有进程都能消去 → 可化简 → 非死锁若有进程永远消不掉 → 死锁。关键概念请求边进程→资源进程还想要几个。分配边资源→进程进程已经占了几个。非阻塞节点它还想要的数量 ≤ 当前剩余数量能拿到资源运行完并释放。第 15 题 · 图(a) 逐步推导读图R1 有 2 个实例R2 有 3 个实例表格资源实例总数已分配给谁空闲数R12P1×1、P2×1两条分配边2−2 0R23P1×1、P2×2分配边3−3 0请求情况进程→资源的请求边P2还请求 R1×1 → 但 R1 空闲 0 →P2 拿不到 → 阻塞❌P1还请求 R2×1 → 但 R2 空闲 0 →P1 拿不到 → 阻塞❌关键判断R1、R2 的空闲数都是 0P1 想要 R2空 0、P2 想要 R1空 0→两个进程谁都拿不到资源没有任何一个进程能先运行释放资源 →找不到突破口。结论P1、P2都是阻塞节点→ 图不可化简→死锁。✅ 选B第 16 题 · 图(b) 逐步推导读图R1 有 2 个实例R2 有 3 个实例三个进程表格资源实例总数已分配空闲数R12P2×1其余给 P1? 按官方数据R1 分配后空闲需结合请求R23P1、P2、P3 分配—按软考官方标准解析2013 上半年软件设计师第 25-26 题的精确数据R12 个分配给 P2×1、P3 相关 → P2 还请求 R1 时 R1 已空 →P2 阻塞❌R23 个分配给 P1、P2、P3但P3 没有未满足的请求或 P1 请求 R2 时仍有空闲。迭代消去过程P3占有 R2 资源无未满足请求→ 可直接运行 →非阻塞✅ → 运行完释放 R2 → R2 空闲增加。P1请求 R2此时 R2 因 P3 释放而有空闲 → 满足 →非阻塞✅ → 运行完释放资源。P2请求 R1但 R1 始终被占满、且无人释放 R1 给它或形成等待→阻塞❌。注图(b)在不同印刷版本箭头略有差异但官方认定 P1、P3 可消去非阻塞P2 为阻塞节点且整体图可以化简 → 非死锁。结论P2 阻塞P1、P3 非阻塞 → 图可以化简→非死锁。✅ 选C【完整题目】17-18、假设内存管理采用可变式分区分配方案系统中有五个进程 P1~P5且某一时刻内存使用情况如下图所示图中空白处表示未使用分区。此时若 P5 进程运行完并释放其占有的空间则释放后系统的空闲区数应 17造成这种情况的原因是 18。内存分布图分区号 0~7表格分区号内容0P11P22空白/空闲3P44P35空白/空闲6P57空白/空闲17.A. 保持不变 B. 减 1 C. 加 1 D. 置零18.A. 无上邻空闲区也无下邻空闲区B. 有上邻空闲区但无下邻空闲区C. 无上邻空闲区但有下邻空闲区D. 有上邻空闲区也有下邻空闲区【答案】第 17 题B减 1 第 18 题D有上邻空闲区也有下邻空闲区【详细解析】核心原理可变分区回收内存的四种情况在可变式分区分配中当一个进程释放内存时系统要检查它的上邻和下邻是否为空闲区据此决定如何合并。这是软考操作系统年年必考的经典考点四种情况必须背熟表格情况上邻下邻回收后空闲区数变化操作①无无1新建一个空闲区②有无不变与上邻合并扩大上邻③无有不变与下邻合并扩大下邻④有有−1与上、下邻三者合并成一个大空闲区原来 2 个空闲区变 1 个记忆口诀双邻合并减一区单邻合并数不变无邻新增加一区。第一步定位 P5 及其邻居从图中读出 P5 在分区号 6观察它的上下邻分区 5 → 空白空闲区← P5 的【上邻】✅ 是空闲区 分区 6 → P5待释放 分区 7 → 空白空闲区← P5 的【下邻】✅ 是空闲区上邻分区 5 空闲区✅下邻分区 7 空闲区✅→ 属于上表中的情况 ④上下邻都是空闲区。第二步分析合并过程与空闲区数变化释放前系统中的空闲区有分区 2、分区 5、分区 7 → 共3 个空闲区。P5 释放后分区 5空闲 分区 6P5 释放 分区 7空闲三者合并成一个连续的大空闲区原来的分区 5和分区 7两个空闲区加上 P5 释放的空间合并成了 1 个空闲区分区 2 的空闲区不受影响仍为 1 个。释放后空闲区变为分区 2、以及合并后的(567)大空闲区 → 共2 个空闲区。空闲区数变化2−3−1⇒减 1空闲区数变化2−3−1⇒减 1第三步得出结论第 17 题空闲区数由 3 变为 2减 1→ 选B。第 18 题原因是 P5 的上邻分区 5和下邻分区 7都是空闲区触发三合一合并 → 选D。
返回列表