软考初级程序员 · 三册合一 · 冲刺专用

软考冲刺合集

把「计算机网络 8 章 + 操作系统 7 章 + 软件工程 6 章」共 21 章聚到一处: 先过六类必会计算题(每张都配了逐格演示图),再过核心概念图,最后按七天计划冲刺。 本页的图全部是本册内容的浓缩版,看图就能把答案推出来。

● 21 章已完整 7 类计算题专项 14 张考点解释图 每章含练习

三册入口:21 章

三册按考纲分科,各自成册;本页是它们的总入口,考前优先看带 ★ 的章。

必会计算题专项(分值大头,逐格演示)

这六类题每年都出,套路固定。每类都先跟图走一遍,再点进章节做对应练习。

计算 1子网划分(网络第 4 章)

给 IP + 掩码,求网络地址/广播地址/可用主机范围/子网数。核心动作:把 IP 与掩码逐位做 AND。

子网划分 32 位网络位与主机位划分及完整 AND 算例
图上排:网络位/主机位划分;下排:IP、掩码、AND 三行逐位对照 + 全部结果
解题四步
  • 把 IP 与掩码都写成二进制(每字节 8 位);
  • 逐位 AND → 得到网络地址(主机位全 0);
  • 主机位全 1 → 广播地址;中间部分是可用主机(范围 = 网络+1 ~ 广播−1);
  • 可用主机数 = 2^主机位数 − 2;子网数 = 2^借位数;步长 = 256 − 掩码末段。

→ 进入网络第 4 章做练习

计算 2页式地址变换(操作系统第 3 章)

逻辑地址拆成「页号 + 页内偏移」,页号查页表换成块号,偏移原样保留。

页式存储管理地址变换过程含页表项结构与快表
逻辑地址 → 查页表(含页表项结构)→ 物理地址;快表命中可跳过查表
解题四步
  • 页号 = 逻辑地址 ÷ 页大小(向下取整);
  • 偏移 = 逻辑地址 − 页号 × 页大小;
  • 查页表得到块号(页框号);
  • 物理地址 = 块号 × 页大小 + 偏移。

→ 进入操作系统第 3 章做练习

计算 3缺页次数(FIFO / LRU / OPT,操作系统第 3 章)

给访问序列 + 页框数,逐格写页框内容,只数标「缺」的列。

页面置换算法 FIFO LRU OPT 逐格演示
同一访问序列下三种算法逐格走查:OPT 6 次 < LRU 7 次 < FIFO 9 次
解题三步
  • 按访问顺序逐格写当前页框内容;
  • 命中不标记;缺页时按算法淘汰一格,并在该列顶上标「缺」;
  • 淘汰规则:FIFO 淘汰最早进入的;LRU 淘汰最久未用的;OPT 淘汰最晚才用到的。

→ 进入操作系统第 3 章做练习

计算 4磁盘调度移动道数(操作系统第 4 章)

给当前磁头位置 + 请求队列,按算法依次移动,累加距离。

磁盘调度算法磁头移动轨迹对比
FCFS 498 道 vs SSTF 248 道:同一队列,先近后远能省一半路程
算法要点
  • FCFS:按到达顺序服务,不优化;
  • SSTF:每次选距离最近的请求(可能饿死远端);
  • SCAN(电梯):沿一个方向扫到底再折返。

→ 进入操作系统第 4 章做练习

计算 5位示图字号位号(操作系统第 5 章)

每位对应一个物理块:0 空闲、1 占用,两个方向都要会换算。

位示法管理磁盘空闲块及字号位号换算
块号 = 字号 × 字长 + 位号;反过来字号 = 块号 ÷ 字长、位号 = 块号 % 字长
唯一陷阱
  • 题目若规定「从 1 开始编号」,所有结果都要 +1——先看题干再动手。

→ 进入操作系统第 5 章做练习

计算 6McCabe 圈复杂度(软件工程第 5 章)

三种算法结果必然相同,做完一种可用另一种验算。

McCabe 圈复杂度流图与三种算法
边数−节点数+2 = 判定节点数+1 = 区域数,本例同为 3
解题要点
  • 给流图用 E − N + 2;给代码数判定个数 + 1;
  • 一个 if / while / for 各算 1 个判定;短路 &&、|| 里每个条件再各 +1;
  • 圈复杂度 = 独立路径条数 = 最少测试用例数。

→ 进入软件工程第 5 章做练习

计算 7银行家算法(操作系统第 2 章)

给 Allocation / Max / Available,问「能否分配」「求安全序列」。核心两句:Need = Max − Allocation,Need 各项都 ≤ 当前可用才能推进。

银行家算法安全性检查完整例题
完整例题:先算 Need 列 → 五步把可用量「滚大」→ 得到安全序列 P1→P3→P0→P2→P4
解题四步
  • 算 Need(Max − Allocation);
  • 找 Need ≤ Available 的进程,假设它跑完;
  • 回收资源:Available += Allocation;
  • 重复到全部结束 → 有序列则安全;某轮无人满足 → 不安全(不能分配)。

→ 进入操作系统第 2 章做练习

核心概念图(看图复述)

这四张是各册的骨架图,能自己画出来,对应的简答题就稳了。

图 1进程七状态(操作系统第 2 章)
进程状态及转换图含挂起态
三态 + 新建/终止 + 两个挂起态;阻塞只能回到就绪,不可能直接到运行

→ 第 2 章

图 2PV 操作与生产者-消费者(操作系统第 2 章)
生产者消费者问题与 PV 操作示意图
mutex 保护缓冲区,empty/full 记数量;先 P 资源、再 P 互斥

→ 第 2 章

图 3死锁的循环等待(操作系统第 2 章)
死锁的循环等待示意图
P1 占 R1 要 R2、P2 占 R2 要 R1;破坏四条件之一即可预防

→ 第 2 章

图 4TCP 三次握手与四次挥手(网络第 5 章)
TCP 三次握手与四次挥手及状态变化
握手三次、挥手四次;TIME-WAIT 等 2MSL 是必问点

→ 第 5 章

流程类图(照着流程走一遍)

这三张是「判定 + 步骤」型流程——考试时按流程逐条对号入座,就不会漏步骤、也不会答错方向。

流程 1存储层次访问流程(操作系统第 3 章)
存储层次访问流程图
寄存器 → Cache → 主存 → 外存逐级查找,命中即停;右侧是速度/容量对照表

→ 第 3 章:存储管理

流程 2缺页中断处理流程(操作系统第 3 章)
缺页中断处理流程图
查页表 → 不在内存则中断 → 有空闲块?→ 被修改过?→ 调入 → 改页表 → 重新执行该指令

→ 第 3 章:存储管理

流程 3中断处理流程(操作系统第 4 章)
中断处理流程图
请求 → CPU 是否允许中断 → 保护现场 → 识别中断源 → 执行 ISR → 恢复 → 返回断点

→ 第 4 章:设备管理

另外两张流程类图放在对应分册里:Java 从源码到运行(Java 教程第 1 章)、SQL 查询执行顺序(SQL 教学第 1 课)。

必背名单与易错

下面这些是"背了就得分"的内容,考前最后一天过一遍。

名单内容(按序)记忆口诀
OSI 七层物理层、数据链路层、网络层、传输层、会话层、表示层、应用层物 数 网 传 会 表 应
耦合七级内容、公共、外部、控制、标记、数据、非直接(由高到低,越低越好)内 公 外 控 标 数 非
内聚七级功能、顺序、通信、过程、时间、逻辑、偶然(由高到低,越高越好)功 顺 通 过 时 逻 偶
死锁四条件互斥、请求并保持、不可剥夺、循环等待四者缺一即不会死锁
维护四类改正性、适应性、完善性、预防性(完善性占比最大)改 适 完 预
测试四阶段单元测试 → 集成测试 → 确认测试 → 系统测试(外加验收 α/β)单 集 确 系
高频易错
  • 阻塞态不能直接到运行,必须先回到就绪;就绪也不能直接到阻塞。
  • PV 操作顺序:先对资源信号量 P(empty/full),再对互斥量 P(mutex);反了会死锁。
  • 位示图若题干说「从 1 开始编号」,结果全部 +1。
  • FIFO 有 Belady 异常(页框变多,缺页反而可能增加);LRU/OPT 没有。
  • 满足条件覆盖不一定满足判定覆盖(两个方向都要单独算)。
  • 四次挥手的原因是「收到 FIN 后可能还有数据要发」,所以 ACK 与己方 FIN 分两次发。

七天冲刺计划

按"先计算、后概念、再套题"的顺序,每天一小时左右。

天内容目标
第 1 天子网划分 + 位示图两处二进制类计算,各手算 3 题全对
第 2 天页式地址变换 + 缺页次数能独立写出逐格表
第 3 天磁盘调度 + McCabe四算法与三公式都能算
第 4 天进程状态 / PV / 死锁三张图能默画,生产者-消费者填空会写
第 5 天OSI 与 TCP/IP + TCP 握手七层 PDU 与设备不混
第 6 天耦合内聚 + 测试方法两张名单与覆盖强弱顺序背熟
第 7 天本页 + 网络速查表只看图与名单,全程复述一遍