2.3 操作系统:内存与文件
本篇定位:计算机系统基础篇的操作系统下篇。本章(内存管理 + 文件系统 + 运维命令)与 2.2 进程并发生成操作系统全貌:内存管理(页式/段式、虚拟存储、页面置换)是操作系统计算题重镇(LRU 置换 2024 年考);文件系统(结构、权限、功能)考概念辨析;运维命令(regedit/hosts/net user/安全日志)2021 起成稳定场景化考点。2027 预测 2–3 题。 数据依据:
01-真题/考点汇总/9 份计算机考点汇总;答案以专业判断为准。 阅读提示:文件权限与信息安全(DAC,7.3 身份认证)衔接;虚拟存储的地址变换是数据库/网络场景的底层概念。
一、考点定位(本章真题统计)
| 考点 | 真题锚点 | 频次 | 考法 |
|---|---|---|---|
| 虚拟存储与页面置换 | 2020 单35、2021 单26、2024 单26 | 3 年 | 页面失效地址变换、虚拟容量由地址结构决定、LRU 淘汰 |
| 文件系统 | 2019 单64、2022 多82 | 2 年 | 连续结构不利动态增长、文件系统功能 |
| 文件权限 | 2020 单24/36、2021 单25 | 2 年 3 题 | 文件夹-文件权限交集、chmod 744、DAC |
| 运维命令与日志 | 2021 单21/23/24、2023 单24、2026 单76 | 3 年 5 题 | regedit、/etc/hosts、shutdown、net user、安全日志 |
命题规律:内存管理 3 年 3 题(含 1 道 LRU 计算)、文件系统 2 年、权限 2 年 3 题、命令 3 年 5 题——运维命令是最大考点群(场景化趋势)。2027 预测:虚拟存储/页面置换(LRU/FIFO)、文件权限(chmod/权限交集)、Linux 命令。
二、知识框架(先搭骨架)
操作系统:内存与文件
├── 内存管理
│ ├── 地址:逻辑地址(程序视角)vs 物理地址(内存实际)
│ ├── 分配方式:连续分配 / 分页 / 分段 / 段页式
│ ├── 页式:页表、页号+页内偏移;页面失效→虚地址到辅存变换
│ └── 虚拟存储:容量由地址结构(CPU 地址长度)决定
│ └── 页面置换:LRU(最久未用)/FIFO/OPT
├── 文件系统
│ ├── 功能:按名存取、逻辑结构→物理结构转换、文件操作(多选)
│ ├── 物理结构:连续(不利动态增长)/链接/索引
│ ├── 目录:树形结构、路径
│ └── 权限:DAC(自主访问控制)、chmod 数字(4读2写1执行)、
│ 文件夹-文件权限取交集
└── 运维命令与日志(场景化)
├── Windows:regedit(注册表)、net user(用户)、安全日志(管理员)
├── Linux:/etc/hosts(主机名映射)、shutdown -r now(重启写盘)
└── 日志:系统/应用/安全日志(安全日志仅管理员可读)
一句话记忆:内存(逻辑物理/页式/虚拟/LRU)→ 文件(按名存取/结构/权限 chmod)→ 命令(regedit/net user/hosts/shutdown)。
三、考点详解
3.1 内存管理基础
先分清四个词(本节后面全靠它):主存=内存=主存储器(RAM/ROM 芯片,CPU 可直接访问、断电丢失);辅存=外存=辅助存储器(硬盘/SSD/U 盘/光盘/磁带,CPU 不能直接访问,必须先调入主存)。
- 判据一句:CPU 能不能直接读——能,是主存侧(寄存器/Cache/内存);不能,是辅存侧(硬盘等)。
- ⚠️ "外置硬盘"不是定义:内置硬盘同样是辅存,"外置"只是接口/位置形态;U 盘、SSD、光盘、磁带、NAS/SAN 全属辅存。
- ⚠️ 日常用语的坑:手机"128G 内存"、商家口中的"内存"其实指闪存(辅存);教材里"内存"一律=RAM(主存)。
- ⚠️ 虚拟存储只是"拿辅存当后备":辅存不是主存的一部分;缺页时搬的是"辅存→主存"(见 §3.2、2020 单35)。
精确定义:
- 逻辑地址:程序中使用的地址(相对程序起点);物理地址:内存单元的实际地址。
- 地址变换(重定位):逻辑地址 → 物理地址(由 MMU/OS 完成)。
分页存储:把内存分成大小相同的页框(物理块),程序按页装入不连续页框;页表记录逻辑页号→物理页框映射;地址 = 页号 + 页内偏移。
地址切分(页号 P / 页内偏移 W):页大小 = 2^k ⇒ 低 k 位是页内偏移 W,高位是页号 P。
- 两种等价算法:①十进制 P = 地址 ÷ 页大小(整除)、W = 地址 mod 页大小;②位运算 W = 地址 &(页大小 − 1)、P = 地址 >> k。
- 十六进制捷径(只在页大小是 16 的整数次幂时成立):4KB = 16^3 ⇒ 右起 3 个十六进制位就是 W,其余是 P;64KB = 16^4 ⇒ 4 位;1MB = 16^5 ⇒ 5 位。⚠️ 1KB(2^10)、2KB(2^11)、8KB(2^13)不是 16 的整数次幂,不能"数位",只能整除或位运算。
- 例(4KB 页、逻辑地址 0x2A5F):
0x2A5F=0010 1010 0101 1111⇒ 低 12 位1010 0101 1111= W = 0xA5F(2655)、高 4 位0010= P = 2;验算 2×4096+2655 = 10847 = 0x2A5F ✓(右起 3 位A5F是偏移、剩下的2是页号,数 3 位即可)。 - 物理地址 = 页框号 × 页大小 + W(页框号 = 页表[P]);⚠️ W 原样保留,只换页框号。
- 页号位数 = 地址总位数 − k(如 32 位地址 + 4KB 页 ⇒ 页号 20 位、页表最多 2^20 = 1M 项)。
分段存储:按程序的逻辑单位(段)划分,段长可变;段表记录段基址+段长(越界检查)。
3.2 虚拟存储
精确定义:虚拟存储器=利用局部性原理,只装入部分页面即可运行,其余在辅存(外存),需要时换入主存——"扩大"了逻辑内存。
页面失效(缺页中断)(2020 单35):访问的页不在内存 → 缺页中断 → 需进行虚地址到辅存物理地址的变换(从外存换入主存)。坑:不是"虚地址到主存地址"(主存里没有才缺页——查找方向去辅存,目的地回主存,两件事别混)。
缺页处理五步(把"去哪儿找"和"放回哪儿"分开,别混成一步):
- 访问某页 → 页表有效位=0 → 触发缺页中断(由该指令执行引起,属内部异常)。
- 查页表得该页在辅存的位置——即"虚地址 → 辅存物理地址"的变换(2020 单35 考的就是这一步)。
- 找空闲页框;无空闲则按置换算法(LRU/FIFO/OPT)淘汰一页,若被淘汰页是脏页,先写回辅存。
- 从辅存把该页调入选定的页框(主存)——⚠️ 目的地是主存,不是 CPU:CPU 只有主存地址这一条取值通路、没有外存地址线;一页 4KB 也不是"搬进 CPU"的粒度。
- 更新页表(有效位=1、填页框号)→ 重新执行被中断的那条指令 → 这次命中,CPU 按物理地址从主存正常取数。
一句话判据:CPU 只能直接读主存(§3.1)⇒ "调入主存"是缺页的必经一步。缺页链 =
辅存 → 主存页框 → CPU 寄存器,中间那一跳不能省。
虚拟存储器最大容量(2021 单26):由**计算机地址结构(CPU 地址长度/字长)**决定——n 位地址可寻址 2^n 个单元;不是由内存大小、不是由外存大小决定(外存只影响能否装入,容量上限看地址位数)。
页面置换算法(2024 单26,LRU 计算):
- LRU(最近最久未用):淘汰最长时间未被访问的页。
- FIFO(先进先出):淘汰最早进入的页。
- OPT(最佳):淘汰未来最久不用的页(理论最优,不可实现)。
例:3 个页框,访问序列 …7,8,9,8,下一次访问 6 时——当前内存 7,8,9(8 刚被访问),7 最久未用 → 淘汰 7(LRU)。
3.3 文件系统
精确定义:文件系统=负责文件的组织、存储、存取、保护的系统软件。
文件系统功能(2022 多82):按名存取、文件的逻辑结构→物理结构转换、实现文件的各种操作(创建/读/写/删)——均为文件系统功能。
文件物理结构(2019 单64):
| 结构 | 特点 |
|---|---|
| 连续结构 | 文件占连续盘块;最不利于文件长度动态增长(增删需移动/搬迁) |
| 链接结构(链式) | 盘块用指针链接;便于增长,但访问慢(需顺链) |
| 索引结构 | 建索引表;便于随机访问与增长(UNIX 混合索引) |
坑:连续结构"存取快"但"动态增长难"——2019 单64 考"最不利于长度动态增长"。
3.4 文件权限
DAC 自主访问控制(2021 单25):Windows、Unix 对文件/资源的访问采用自主访问控制(DAC)——资源属主可自主决定授权;区分 MAC(强制访问控制,安全标签)——详见 7.3 身份认证与访问控制。
chmod 数字权限(2020 单36):读=4、写=2、执行=1;chmod 744 → 所有者 7(读+写+执行)、组 4(只读)、其他 4(只读)。口诀:r=4、w=2、x=1,三位数=所有者/组/其他。
文件夹与文件权限交集(2020 单24):对文件有读+写权限、但对所在文件夹只有读权限 → 最终对文件只有读权限(取权限交集——文件访问受所在文件夹权限限制)。
3.5 运维命令与日志(场景化)
| 命令/项 | 用途 | 锚点 |
|---|---|---|
regedit | 编辑 Windows 注册表 | 2021 单21 |
/etc/hosts | Linux 主机名↔IP 映射文件 | 2021 单23 |
shutdown -r now | Linux 重启(同步数据并重启) | 2021 单24 |
net user student 1234 /add | Windows 添加用户(用户名 student 密码 1234) | 2023 单24 |
| Windows 安全日志 | 仅系统管理员可读的日志(系统/应用/性能日志普通用户可读) | 2026 单76 |
日志三兄弟(2026 单76):Windows 事件日志分系统日志、应用程序日志、安全日志——只有安全日志(登录/权限审计)仅管理员可访问。
Linux 命令补充表(2020 单23 考 history):
| 命令 | 用途 | 备注 |
|---|---|---|
history | 查看历史命令 | 2020 单23;!n 重跑第 n 条 |
ps -ef / top | 进程快照 / 实时资源占用 | 排查"谁在占 CPU" |
kill -9 PID / kill -15 PID | 强制终止(SIGKILL)/ 默认终止(TERM) | -STOP 为暂停 |
who / last / w | 在线用户 / 登录历史 / 当前活动 | 审计常用 |
df -h / du -sh | 磁盘剩余 / 目录占用 | 空间排查 |
free -m / uptime | 内存 / 系统负载 | 性能排查 |
ss -lntp / netstat -an | 端口监听与连接 | 与 5.8 网络命令呼应 |
systemctl start/stop/enable | 服务管理 | 老写法为 service |
sync | 把缓存刷入磁盘 | 关机前必做 |
Windows/Linux 系统管理工具族(补强:2026-11-03,覆盖 2021 单21、2023 单24/多91 同族):
| 用途 | Windows | Linux |
|---|---|---|
| 注册表 / 策略 | regedit.exe(注册表)/gpedit.msc(组策略) | /etc/ 下配置文件 |
| 用户与组 | net user 用户名 密码 /add、net localgroup | useradd/usermod/passwd/groupadd |
| 服务 | services.msc | systemctl |
| 日志 | eventvwr.msc(安全日志仅管理员可读) | /var/log/、journalctl |
| 磁盘 | diskmgmt.msc | fdisk、df、du |
| 计划任务 | taskschd.msc | crontab |
| 综合管理 | compmgmt.msc | — |
- 账户锁定策略(连续失败 N 次锁定)防的是暴力破解,不是木马、不是 IP 欺骗、不是缓冲区溢出。
- 人员变更(离职/换岗/交接)⇒ 立即改口令并停用账号(不是"一周内""一月内")。
- 坑:
regedit改注册表、gpedit改组策略,两者别混(2021 单21 考的就是regedit);net user … /add是添加用户(2023 单24)。
shutdown 家族边界(2021 单24 同族,易错):- shutdown -h now=关机(halt,不断电);shutdown -r now=重启;shutdown -c=取消已计划的关机。
halt=停机不断电;poweroff=停机并断电;reboot=重启。now=立即执行(不等待预定时间),不等于强制断电(强制断电是-f或直接断电)。- 关机流程:通知用户 → 停服务 →
sync落盘 → 卸载文件系统 → 断电。
3.6 地址变换与文件分配计算(补强·计算题)
分页地址变换(三步):
- 用页大小 2^k 切分逻辑地址:低 k 位=页内偏移 W、其余=页号 P;
- 查页表得页框号 F;
- 物理地址 = F × 页大小 + W。
- 例:页大小 4 KB(2^12)、逻辑地址 0x2A5F ⇒ P=2、W=0xA5F;页表[2]=5 ⇒ 物理地址=5×4096+0xA5F。
- 多级页表访存次数 = 级数 + 1(最后一次取数据);单级页表 = 2 次(查页表 + 取数)。
- 分段:按逻辑单位切分,段长可变,地址=段号+段内偏移;段页式=先分段再分页。
文件分配三型对比:
| 方式 | 优点 | 缺点 |
|---|---|---|
| 连续分配 | 顺序访问最快 | 外部碎片、难增长 |
| 链接分配 | 无外部碎片、易增长 | 只能顺序访问、指针占空间 |
| 索引分配 | 支持随机访问 | 索引块开销 |
混合(多级)索引最大文件:设块大小 B 字节、每个地址 4 字节、直接地址 n 个 ⇒ 最大块数 = n + B/4 + (B/4)² + (B/4)³(含一/二/三级间接),再乘块大小。
- 访盘次数:直接地址 1 次、一级间接 2 次、二级 3 次、三级 4 次。
位示图(空闲空间管理):字号 = 块号 ÷ 字长(取整)、位号 = 块号 mod 字长;反算:块号 = 字号×字长+位号;总字数 = ⌈总块数 ÷ 字长⌉。
四、易错坑汇总(命题人惯用陷阱)
- 缺页中断 → 虚地址到辅存变换,不是到主存(主存无该页才缺页)(2020 单35);但找到后调入的是主存页框,不是 CPU——方向与目的地是两件事。
- 虚拟存储器容量由地址结构(CPU 地址位数)决定,不是内存或外存大小(2021 单26)。
- LRU 淘汰最久未用,不是最早进入(那是 FIFO)(2024 单26)。
- 连续结构最不利文件长度动态增长(2019 单64);索引结构便于随机访问。
- chmod 数字:r=4、w=2、x=1,744=所有者 7 组 4 其他 4(2020 单36)。
- 文件夹权限限制文件权限:取交集(2020 单24)。
- Windows/Unix 文件权限 = DAC(自主),不是 MAC(2021 单25)。
- 安全日志仅管理员可读;系统/应用日志普通用户可读(2026 单76)。
- /etc/hosts 是主机名映射(不是 DNS 配置文件 /etc/resolv.conf)(2021 单23)。
- shutdown -r now 是重启并同步写盘(-r=reboot)(2021 单24)。
- "主存/辅存"与"内置/外置"不是一回事:内置硬盘也是辅存;CPU 不能直接访问辅存,外存数据必须先调入主存;日常口中的"手机 128G 内存"其实指闪存(辅存)。
五、横向扩展(防漏网:本章边界内、真题尚未考但可能补考的点)
说明:横向扩展覆盖"大纲范围内但 9 年真题未考过"的知识,标注【新增概率】供取舍。
- FIFO 与 LRU 置换对比计算【高】:给定访问序列计算缺页次数——2024 考了 LRU 淘汰,缺页率计算是 2027 高概率(含 Belady 异常:FIFO 增加页框反而缺页增多)。
- 页表项与地址变换计算【中】:页大小、页表、逻辑地址→物理地址(页号查表+偏移)——数据库/网络场景底层,可能出计算。
- 分页 vs 分段对比【高】:分页(固定大小、无逻辑意义、无外部碎片)vs 分段(可变、按逻辑单位、有外部碎片)——概念对比题高概率。
- 内存分配算法【低】:首次适应/最佳适应/最差适应——碎片相关。
- 文件目录与路径【中】:树形目录、绝对路径 vs 相对路径、当前目录——命令场景题。
- 文件保护与加密【中】:文件加密、访问控制列表(ACL)——与信息安全衔接(ACL 见 5.9 网络)。
- Linux 常用命令【高】:ls/cd/mkdir/rm/cp/mv/ps/kill/chmod——2021/2023 已考 regedit/hosts/net user,Linux 命令是 2027 重点(ps 查看进程、kill 终止进程、chmod 改权限)。
- Windows 任务管理器与性能【低】:进程/CPU/内存监控——运维场景。
- 磁盘调度算法【中】:FCFS、SSTF(最短寻道)、SCAN(电梯算法)——磁盘 I/O 优化,可能补考(衔接 2.1 磁盘)。
- 日志审计与等保【中】:日志留存(≥6 个月,衔接 7.8 网安法)、审计策略——合规场景题。
六、真题演练(代表性真题 + 解析)
例 1(2024 单26) 系统为某进程分配了 3 个页框,该进程已访问的页号序列为 1,0,2,3,2,4,5,3,7,8,9,8。若使用 LRU 算法,下一个要访问的页号为 6,此时应淘汰的页号为(口径已核)。 A. 2 B. 3 C. 7 D. 8
答案:C。逐格追踪(LRU 淘汰"上次使用"最早的页;命中会刷新该页): 1、0、2 缺页装满 {1,0,2};3 缺→淘汰 1;2 命中(刷新);4 缺→淘汰 0;5 缺→淘汰 3;3 缺→淘汰 2;7 缺→淘汰 4;8 缺→淘汰 5;9 缺→淘汰 3;8 命中(刷新)。 此时内存 {7,8,9}:8 刚用(第 12 步)、9 次之(第 11 步)、7 最久未用(第 9 步) → 访问 6 时淘汰 7,选 C。 ⚠️ 干扰项设计:A(2)、B(3)早已不在内存(分别于第 6、8 步被换出),专坑不追踪到底的人;D(8)刚命中过,恰是"最不该淘汰"的页。 ⚠️ 文本勘误:初稿误用 Silberschatz 教材经典序列 7,0,1,2,0,3,0,4 且误标答案 A(按该假题演算"访问 3 时"确实淘汰 1)——已按真题原文恢复题干与选项(1,0,2,3,2,4,5,3,7,8,9,8),答案重推为 C(淘汰 7)。
例 2(2021 单26) 虚拟存储器的最大容量取决于(口径已核)。 A. 主存容量 B. 外存容量 C. 计算机地址结构 D. CPU 速度
答案:C。虚拟存储器容量上限由**地址结构(CPU 地址位数)**决定(n 位地址可寻址 2^n);主存/外存只影响实际可用量。口诀:虚拟多大看地址、实际多少看内外存。
例 3(2020 单35) 虚拟存储中页面失效时需要(口径已核)。 A. 进行虚地址到主存物理地址的变换 B. 进行虚地址到辅存物理地址的变换 C. 重新启动系统 D. 增加内存容量
答案:B。缺页(页面失效)时目标页在辅存(外存),需进行虚地址到辅存物理地址的变换(找到外存位置换入)。口诀:缺页找外存。
例 4(2022 多82) 文件系统的主要功能包括(口径已核)。 A. 按名存取 B. 文件的逻辑结构到物理结构的转换 C. 实现对文件的各种操作 D. 直接控制硬件设备
答案:ABC。文件系统功能=按名存取 + 逻辑↔物理结构转换 + 文件操作(创建/读写/删除);D 直接控制硬件设备是设备管理(I/O 系统)的职责。口诀:文件系统管文件,不直接管硬件。
例 5(2020 单36) chmod 744 file 的权限含义是(口径已核)。
A. 所有者读+写+执行,组读+写,其他读
B. 所有者读+写+执行,组只读,其他只读
C. 所有者只读,组读+执行,其他读
D. 所有者读+写,组读+执行,其他读
答案:B。7=4+2+1(读+写+执行)、4=只读 → 所有者 7、组 4、其他 4。口诀:r=4、w=2、x=1,三位数顺序=所有者/组/其他。
例 6(2020 单24) 用户对某文件有读+写权限,但对其所在文件夹只有读权限,则用户对该文件最终(口径已核)。 A. 只有读权限 B. 有读+写权限 C. 只有执行权限 D. 无任何权限
答案:A。文件访问受所在文件夹权限限制——取权限交集(读+写 ∩ 读 = 读)。口诀:文件夹卡文件,取交集。
例 7(2026 单76) 只允许系统管理员访问的 Windows 日志是(口径已核)。 A. 系统日志 B. 应用程序日志 C. 安全日志 D. 性能日志
答案:C。安全日志(登录、权限审计等安全事件)仅管理员可读;系统/应用程序/性能日志普通用户可读。口诀:安全日志门槛高。
例 8(2023 单24) net user student 1234 /add 命令的作用是(口径已核)。
A. 删除用户 student
B. 添加用户 student 并设置密码 1234
C. 修改用户 student 的密码
D. 查看用户 student 的信息
答案:B。
net user 用户名 密码 /add= 添加用户并设置密码。场景题:识别 Windows 命令功能。
七、本章小结
- 一条主线:内存(逻辑物理/页式/虚拟/LRU)→ 文件(按名存取/结构/权限 chmod)→ 命令(regedit/net user/hosts/shutdown/日志)。
- 必背口诀:缺页找外存、虚拟看地址、LRU 淘汰最久未用、r=4 w=2 x=1、文件夹卡文件取交集、安全日志管理员专属。
- 必背区分:连续(不便增长)vs 链接(便增长慢访问)vs 索引(随机访问);分页(定长无外部碎片)vs 分段(变长按逻辑)。
- 衔接预告:文件权限(DAC)与 7.3 身份认证衔接;日志留存与 7.8 网安法衔接;磁盘调度与 2.1 存储衔接。