news 2026/5/17 7:38:48

计算机中级-数据库系统工程师-操作系统-存储管理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
计算机中级-数据库系统工程师-操作系统-存储管理
一、存储管理
1. 存储管理考点
  • 重点内容:虚拟存储管理和页面置换算法是核心考点,分页/分段/段页式存储管理考查较少且题目简单
2. 基本概念
1)存储器层次结构
  • 层次关系:寄存器 → L1高速缓存 → L2高速缓存 → 主存 → 磁盘存储器 → 磁带/光盘存储器
  • 特性对比:从上到下存取速度递减(寄存器最快)、存储容量递增、价格递减
2)逻辑地址
  • 定义:程序员使用的符号命名地址(如a13),又称虚拟地址/相对地址
  • 特点:非主存真实地址,仅作为编程时的虚拟标识
3)物理地址
  • 定义:主存中真实存在的绝对地址(如0000H)
  • 编址方式:按字节编制,每个存储单元有唯一地址
4)地址重定位
  • 转换过程:将程序的逻辑地址转换为物理地址
  • 静态重定位:
    • 时机:程序装入主存时一次性完成转换
    • 特点:运行期间地址不再变化
  • 动态重定位:
    • 时机:程序运行期间动态转换
    • 特点:更灵活但需要硬件支持
3. 分区存储管理
1)基本概念
  • 核心思想:将主存划分为若干区域,每个区域分配给一个作业使用
  • 固定分区
    • 分配方式:系统初始化时预先划分好存储区域
    • 缺点:
      • 分区大小固定(如10KB/区)
      • 作业大小与分区不匹配时产生内部碎片(如8KB作业占用10KB分区)
  • 可变分区
    • 分配方式:作业装入时动态划分存储空间
    • 特点:
      • 分区大小等于作业实际需求
      • 需要配合分配算法(最佳适应/最差适应等)
    • 问题:长期运行会产生外部碎片
  • 可重定位分区
    • 核心机制:允许已分配分区在内存中移动
    • 优势:通过碎片整理(类似"靠拢"操作)合并小碎片为大可用空间

应用场景:解决外部碎片问题,提高内存利用率

    • 注:本笔记严格依据课程内容整理,未包含后续未讲解的存储管理方案(如分页/分段存储),所有时间戳与幻灯片内容均保持对应关系。重点突出了存储器层次特性、地址转换机制以及三种分区方式的对比特征。
4. 分页存储管理
1)分页存储管理原理
  • 空间划分:
    • 进程地址空间被划分为大小相等的区域称为页
    • 主存空间被划分为与页大小相同的物理块(页框)
    • 例如:1MB内存划分为1024个1KB的块
  • 分配方式:
    • 进程的页可以离散地装入不相邻的物理块中
    • 如:第0页放入第2块,第1页放入第4块,第2页放入第5块等
  • 页表作用:
    • 记录页号与物理块号的映射关系
    • 系统为每个进程建立页表,确保能快速找到页面对应的物理块
    • 地址结构:
      • 逻辑地址由页号和页内地址组成
      • 类比书本:页号相当于书页号,页内地址相当于页内行号
      • 不同进程的页大小可以不同(如进程A每页1KB,进程B每页2KB)
2)页式存储管理的地址映射
  • 转换步骤:
    • 通过页表始址寄存器找到页表起始位置
    • 用页表长度寄存器检查页号是否越界(页号<页表长度)
    • 通过页号在页表中查找对应的物理块号
    • 将物理块号与页内地址拼接形成物理地址
  • 示例说明:
    • 逻辑地址4(页号)256(页内地址)
    • 查页表得页号4对应块号15
    • 最终物理地址为15(块号)256(页内地址)
    • 实际系统中地址通常用二进制或十六进制表示
  • 关键寄存器:
    • 页表始址寄存器:存储页表在主存中的起始地址
    • 页表长度寄存器:存储页表长度,用于地址越界检查
5. 分段存储管理
1)段式存储管理的地址变换
  • 基本概念:将用户程序或作业的地址空间按内容划分为段,如主程序段、子程序段、数据段等,每个段的长度不等但占用连续分区。
  • 存储分配:进程中的各个段可以离散地分配到主存的不同分区中,系统为每个进程建立段映射表(段表)。
  • 段表结构:包含段号、段长L和基址三个字段,其中基址表示该段在主存中的起始地址。
  • 地址转换步骤:
    • 段号验证:比较逻辑地址中的段号s与段表长度L,若s≥L则发生地址越界
    • 段表查询:通过段表起始地址找到对应段表项,获取段长和基址
    • 段内地址验证:比较段内地址d与段长L,若d≥L则发生地址越界
    • 物理地址计算:物理地址=基址+段内地址d
  • 关键区别:
    • 与分页的区别1:分段按内容划分,段长不等;分页按固定大小划分
    • 与分页的区别2:地址转换时采用相加而非拼接方式
    • 段表特殊性:需要同时存储段长和基址信息
  • 转换示例:
    • 逻辑地址(2,98)转换过程:
      • 验证段号2有效
      • 查询段表得段长100、基址90
      • 验证段内地址98<100有效
      • 计算物理地址90+98=188
  • 错误检测:
    • 逻辑地址(4,100)错误原因:段内地址100>段长96
    • 逻辑地址(3,300)转换结果:1327+300=1627
  • 存储特点:
    • 每段必须连续存放,但不同段可离散分配
    • 段内地址不能跨段存储(如不能将一段分成两部分存放)
6. 段页式存储管理
1)段页式存储管理概念
  • 存储划分方式:先将整个主存划分成大小相等的存储块(页框),然后将用户程序按逻辑关系分为若干个段,再将每个段划分成页。
  • 实现过程:先分段再分页,例如主存空间被划分为12个页框,用户程序分为0段、1段、2段等,每段再划分为若干页(如0段有1页、2段有2页等)。
  • 综合优势:结合了页式存储和段式存储的优点,既保持了段式管理的逻辑性,又具备页式管理的物理存储效率。
  • 数据结构:需要同时维护段表和页表,其中段表记录段号、页表始址和页表长度,页表记录页号和物理块号的对应关系。
2)段页式存储管理的地址变换机构
  • 逻辑地址结构:包含段号、段内页号和页内地址三部分。
  • 地址转换过程:
    • 通过段号在段表中查找对应的页表始址和页表长度
    • 根据页表始址找到页表,再通过页号在页表中查找物理块号
    • 将物理块号与页内地址拼接形成物理地址
  • 特点:需要进行两次查表操作(段表和页表),但最终物理地址的页内地址部分直接取自逻辑地址。
7. 虚拟存储管理
1)程序局部性原理
  • 基本概念:程序执行时呈现的局部性规律,即在一段时间内程序的执行和访问都局限于某个区域。
  • 时间局限性:
    • 某条指令执行后,不久很可能再次被执行
    • 某个存储单元被访问后,不久很可能再次被访问
  • 空间局限性:程序访问某个存储单元后,其附近的存储单元也最有可能被访问
  • 应用意义:为虚拟存储技术提供了理论基础,使得部分装入成为可能。
2)虚拟存储器
  • 实现原理:
    • 允许作业部分装入主存即可运行
    • 其余部分暂存磁盘,需要时再装入
  • 效果:小容量主存可运行大作业,从用户角度看系统具有比实际更大的主存容量
  • 工作示例:程序可分为多个部分,先装入当前执行部分,其余保留在外存,根据局部性原理预测并预装入可能需要的部分。
8. 请求分页系统的实现
  • 核心功能:在纯分页基础上增加请求调页和页面置换功能,实现动态页面加载与替换
  • 中断机制:当访问的页面不在主存时触发缺页中断,每缺失一页产生一次中断
  • 动态特性:内存物理块与用户空间页的对应关系可动态变化,不常用的页可被置换出去
1)例题:缺页中断次数判断
  • 题目解析
    • 审题要点:COPY指令跨2页,源地址A和目标地址B各跨2页,共涉及6个页面
    • 第一问解析:当A、B操作数均不在内存时,访问每个缺失页面都会触发中断,共4次(指令页已在内存)
    • 第二问解析:总页面数6减去缺页中断次数3,得到3个页面已在内存
    • 记忆技巧:缺页中断次数=缺失页面数,内存页面数=总页面数-缺页次数
9. 页面置换算法
1)最佳置换算法
  • 原理:选择未来最长时间不被访问或永不使用的页面置换
  • 特点:理论最优但实际不可实现,需要预知未来访问序列
  • 局限性:实践中无法准确判断哪些页面将来不再使用
2)先进先出置换算法
  • 置换规则:优先淘汰最早进入内存的页面(停留时间最长)
  • 实现方式:维护页面进入队列,置换队首页面
  • 优缺点:实现简单但可能淘汰常用页面,存在Belady异常现象
3)最近最少未使用算法
  • 置换策略:淘汰最近一段时间使用频率最低的页面
  • 实现机制:为每个页面设置访问时间字段T,选择T最大的页面置换
  • 硬件需求:需要额外硬件支持记录访问时间,开销较大
4)最近未用置换算法
  • 访问位机制:每个页面设置1位标志,1表示访问过,0表示未访问
  • 置换原则:优先选择访问位为0的页面置换
  • 近似LRU:通过访问位模拟使用频率,比精确LRU实现成本更低
  • 性能特点:未访问页面未来被访问概率较低,置换风险较小
二、知识小结

知识点

核心内容

考试重点/易混淆点

难度系数

存储器层次结构

寄存器→高速缓存→主存→磁盘→磁带/光盘,速度递减容量递增

寄存器最快容量最小 vs 外存最慢容量最大

★★☆☆☆

地址重定位

逻辑地址(虚拟)→物理地址转换,分静态重定位(装入前完成)和动态重定位(运行时转换)

静态不可变 vs 动态可调整

★★★☆☆

分区存储管理

固定分区(预分配)、可变分区(动态分配)、可重定位分区(碎片整理)

可变分区产生外部碎片 vs 固定分区内部碎片

★★★☆☆

分页存储管理

进程分等长页→内存分等长块,通过页表映射,地址=页号+页内偏移

页表寄存器作用、快表(TLB)加速查询

★★★★☆

分段存储管理

按逻辑模块分段(长度不等),段表含基址+段长,地址=段号+段内偏移

段内地址需校验≤段长

★★★★☆

段页式存储

先分段再分页,需段表+页表两次查询,地址=段号+段内页号+页内偏移

综合分段分页优缺点

★★★★★

虚拟存储原理

局部性原理(时间/空间局部性),部分装入+缺页中断机制

缺页中断次数=缺失页面数

★★★★☆

页面置换算法

OPT(理想)/FIFO/LRU(时间戳)/Clock(访问位)

LRU需硬件支持 vs FIFO可能Belady异常

★★★★☆

缺页中断计算

跨页指令+操作数涉及页面数=最大中断次数,例题:copy指令产生4次中断

操作数不在内存即触发中断

★★★★★

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/17 7:36:51

Linux虚拟机 + Docker 部署本地靶场教程(个人博客原创)

原文链接&#xff1a;Linux虚拟机Docker部署本地靶场 - 云泽の小屋 本文为作者原创&#xff0c;首发于个人博客「云泽の小屋」&#xff08;zeyun.org&#xff09;。欢迎转载&#xff0c;但请注明出处。 前言&#xff1a; 在进行安全测试或靶场练习时&#xff0c;直接在本地物…

作者头像 李华
网站建设 2026/5/17 7:37:09

2025年,跨境电商的体感就一个字:卷。

站内流量变贵了、同质化更强了、爆单更难了——这是所有人的共识。但这份报告真正有价值的地方&#xff0c;不是告诉我们“有多卷”&#xff0c;而是揭示了一些反直觉的真相&#xff0c;足以改变你对整个行业的理解框架。以下五个认知偏差&#xff0c;是我在报告中反复确认后提…

作者头像 李华
网站建设 2026/4/10 16:17:55

Cursor + Playwright MCP:测试工程师的自救指南

&#x1f4dd; 面试求职&#xff1a; 「面试试题小程序」 &#xff0c;内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试&#xff0c;命中…

作者头像 李华
网站建设 2026/4/13 17:38:01

告别手动加载!一劳永逸设置RStudio全局字体(以Times New Roman为例)

一劳永逸的RStudio全局字体配置&#xff1a;从基础到高阶实践 每次打开RStudio都要重新加载字体包&#xff1f;中文显示异常&#xff1f;这些问题困扰着许多追求高效工作流的数据从业者。今天我们就来彻底解决这个痛点&#xff0c;实现真正的"一次配置&#xff0c;永久生效…

作者头像 李华