计算机操作系统25,26
第二十五课分页存储管理Paging一、为什么需要分页先回顾动态分区。假设内存高地址 ---------------- 程序A ---------------- 空闲10MB ---------------- 程序B ---------------- 空闲20MB ---------------- 程序C ---------------- 空闲30MB现在来了一个程序需要50MB怎么办虽然空闲10203060MB但是没有连续50MB。所以放不进去。这就是外部碎片问题。分页的思想不要要求连续。例如程序需要50MB。拆成5个10MB。可以放内存 第1块 第7块 第20块 第35块 第100块只要有空间就可以。二、分页的基本思想分页把两个东西都切小。① 程序切成页Page也叫页面。例如程序大小16KB。规定每页4KB。那么分成4页。程序 页0 页1 页2 页3② 内存切成页框Frame也叫物理块。例如内存切成4KB一块。内存 块0 块1 块2 块3 ...注意非常重要页大小 页框大小为什么因为这样一页刚好放入一个页框。三、页和页框的关系程序看到页内存实际存放页框关系程序 页0 ↓ 内存 页框5 程序 页1 ↓ 内存 页框9所以必须有一个表记录对应关系。这个表叫页表Page Table四、页表是什么简单理解就是一个地址转换表。例如程序认为自己有4页。页表记录页号 页框号 0 → 5 1 → 9 2 → 3 3 → 8意思程序访问页0。操作系统查页表。发现页0在页框5。于是去物理内存第5块找。五、逻辑地址如何转换★★★★★这是分页最重要内容。CPU产生不是物理地址。而是逻辑地址。逻辑地址分成两个部分逻辑地址 页号 页内偏移例如逻辑地址页号 2 偏移量 100意思访问第2页里面第100个字节。转换第一步查页表。找到页2对应页框。例如页2 ↓ 页框8第二步组成物理地址物理地址 页框号 页内偏移所以得到页框8 偏移100六、一个完整例子重点假设页面大小4KB某逻辑地址8196问页号偏移第一步计算页号公式页号 逻辑地址 ÷ 页面大小也就是8196 ÷ 4096因为4KB4096字节。结果页号2第二步计算偏移公式偏移 地址 mod 页面大小所以8196 mod 4096得到偏移4所以逻辑地址8196 ↓ 页号2 偏移4七、为什么分页没有外部碎片因为所有空间都是固定大小。例如每页4KB。内存全部4KB块。不会出现10MB 20MB 30MB这种不连续空洞。但是分页有新的问题。八、分页的缺点内部碎片例如页面大小4KB。程序大小10KB。需要多少页计算10÷42.5必须向上取整3页。占3×412KB实际需要10KB。浪费2KB。这就是分页产生内部碎片。九、分页 vs 分区★★★★★连续分配分页要求连续需要不需要碎片外部碎片内部碎片管理单位分区页灵活性低高十、页表为什么重要因为分页之后程序地址不能直接找到内存。必须转换逻辑地址 ↓ 页表 ↓ 物理地址没有页表操作系统不知道页放在哪里。十一、分页系统运行流程完整过程CPU产生逻辑地址 ↓ 分成 页号 页内偏移 ↓ 查页表 ↓ 得到页框号 ↓ 组合 页框号 偏移 ↓ 访问内存十二、本课重点★★★★★今天必须掌握1. 分页思想把程序分成页把内存分成页框。2. 页和页框关系页大小 页框大小3. 页表作用记录页号 → 页框号4. 地址转换逻辑地址页号 页内偏移物理地址页框号 页内偏移5. 碎片分页没有外部碎片。但是有内部碎片。第二十六课快表TLB与多级页表一、为什么需要快表 TLB先回顾分页系统。CPU产生逻辑地址页号 页内偏移然后查页表。例如页表页号页框号05192338CPU访问页2。查页2 → 页框3然后访问页框3。问题页表在哪里答案也在内存。所以过程CPU ↓ 内存查页表 ↓ 得到地址 ↓ 内存取数据需要两次内存访问。二、TLB是什么TLB全称Translation Lookaside Buffer中文快表它是什么一句话存放最近常用页表项的小型高速缓存。注意TLB不是替代页表。而是页表的缓存。类似生活例子你家有一本通讯录。里面有所有人的电话。但是你经常联系的人号码你直接记脑子里。对应通讯录 页表 脑中记忆 TLB三、使用TLB后的地址转换流程变成CPU产生逻辑地址 ↓ 查询TLB ↓ 找到 ↓ 是 ↓ 直接得到页框号 ↓ 访问内存如果TLB没有找到怎么办再查页表。完整流程CPU ↓ TLB ↓ 命中 ↓ 是 → 得到页框 ↓ 否 ↓ 查页表 ↓ 更新TLB四、TLB命中率考试重点定义CPU访问的页号在TLB中找到的概率。叫命中率。记作α。例如命中率α80%意思100次访问80次TLB找到。20次查页表。五、地址转换时间计算★★★★★这是考试常考计算。假设条件TLB访问时间20ns内存访问时间100nsTLB命中率80%求平均访问时间。情况1TLB命中流程访问TLB ↓ 访问内存时间20 100120ns情况2TLB未命中流程访问TLB ↓ 访问页表 ↓ 访问数据时间20 100 100220ns平均时间公式有效访问时间 命中率×命中时间 未命中率×未命中时间代入0.8×120 0.2×220计算9644 140ns所以平均访问时间140ns六、为什么需要多级页表现在又出现一个问题。页表本身太大。举例一个程序地址空间32位。页面大小4KB。计算页数量2^32 / 2^12 2^20页也就是约100万个页。一个进程页表可能非常巨大。但是很多地址根本没有使用。例如程序实际只用了几个区域。代码区 ↓ 堆 ↓ 栈中间大量空白。如果建立完整页表浪费巨大。所以出现多级页表七、二级页表思想核心不要一次建立全部页表只建立需要的部分。以前一级页表页号 ↓ 页表 ↓ 页框二级页表拆开。例如32位地址分成一级页号 二级页号 页内偏移结构逻辑地址 ↓ 一级页表 ↓ 二级页表 ↓ 页框八、为什么多级页表节省空间假设程序只用了一小部分地址。那么一级页表只保存存在的二级页表地址。没有使用的不创建。类似目录。一本书如果每一页都建立目录。很浪费。所以先一级目录。需要再展开二级目录。九、页表项里面有什么考试可能问。一个页表项通常包括页框号 状态位 访问权限 修改位例如状态位表示页面是否在内存。权限位表示能否读写执行。修改位表示页面是否被修改。用于页面置换。后面会讲。十、本课核心总结1. TLB是什么页表项的高速缓存。作用提高地址转换速度。2. 地址转换顺序有TLBCPU ↓ TLB ↓ 页表 ↓ 内存3. TLB命中一次访问TLB 内存。4. TLB未命中需要TLB 页表 数据5. 多级页表目的减少页表占用空间。思想用多少建多少。十一、口诀★★★★★TLB先查快表命中直接走没命中再查页表。多级页表页表太大分级保存。

相关新闻

计算机操作系统27,28

计算机操作系统27,28

第二十七课:虚拟内存(Virtual Memory)一、什么是虚拟内存? 一句话:虚拟内存是一种让程序感觉自己拥有比实际内存更大空间的技术。例如: 你的电脑: 实际: 8GB RAM但是程序&#xff1a…

2026/8/9 1:10:17 阅读更多 →
降重降AIGC率AI工具实测推荐

降重降AIGC率AI工具实测推荐

你可能刚用大模型写完论文,查重时却发现AIGC疑似率高达40%、60%,甚至更多。导师和审稿系统对AI生成内容越来越敏感,仅靠通用的降重降AIGC的AI改写很难通过检测。你急需的,是一套真正能把AIGC率降到安全线以下的方案。 经过一个月…

2026/8/9 1:10:17 阅读更多 →
5个理由告诉你为什么选择LX Music:开源跨平台音乐聚合播放器的终极指南

5个理由告诉你为什么选择LX Music:开源跨平台音乐聚合播放器的终极指南

5个理由告诉你为什么选择LX Music:开源跨平台音乐聚合播放器的终极指南 【免费下载链接】lx-music-desktop 一个基于 Electron 的音乐软件 项目地址: https://gitcode.com/GitHub_Trending/lx/lx-music-desktop 在数字音乐时代,用户常常面临平台碎…

2026/8/9 1:09:17 阅读更多 →

最新新闻

终极指南:如何完全免费解锁WeMod高级功能 - Wand-Enhancer完整教程

终极指南:如何完全免费解锁WeMod高级功能 - Wand-Enhancer完整教程

终极指南:如何完全免费解锁WeMod高级功能 - Wand-Enhancer完整教程 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer 还在为WeMod游戏修改…

2026/8/9 10:11:37 阅读更多 →
终极指南:5分钟在Blender中安装并快速上手VRM插件

终极指南:5分钟在Blender中安装并快速上手VRM插件

终极指南:5分钟在Blender中安装并快速上手VRM插件 【免费下载链接】VRM-Addon-for-Blender VRM Importer, Exporter and Utilities for Blender 2.93 to 5.2 项目地址: https://gitcode.com/gh_mirrors/vr/VRM-Addon-for-Blender 想要在Blender中轻松创建和编…

2026/8/9 10:11:37 阅读更多 →
Windows本地部署中文OpenClaw:从环境搭建到飞书机器人集成实战

Windows本地部署中文OpenClaw:从环境搭建到飞书机器人集成实战

1. 项目概述:为什么要在本地部署中文OpenClaw? 最近在AI应用圈子里,OpenClaw这个名字出现的频率越来越高。简单来说,它是一个开源的、能够将大语言模型(LLM)能力与外部工具和API连接起来的智能体框架。你可…

2026/8/9 10:11:37 阅读更多 →
网络安全实战集训:Web安全与内网渗透核心技术解析

网络安全实战集训:Web安全与内网渗透核心技术解析

1. 网络安全集训前四日核心要点复盘上周参加了某网络安全实战集训营,前四天的知识密度远超预期。每天从早9点到晚10点的高强度训练,让我这个有五年渗透测试经验的从业者都感到信息过载。现在将核心知识点和实战心得整理成文,既是对自己的复盘…

2026/8/9 10:11:37 阅读更多 →
如何快速打造个性化Windows任务栏:TaskbarX终极配置指南

如何快速打造个性化Windows任务栏:TaskbarX终极配置指南

如何快速打造个性化Windows任务栏:TaskbarX终极配置指南 【免费下载链接】TaskbarX Center Windows taskbar icons with a variety of animations and options. 项目地址: https://gitcode.com/gh_mirrors/ta/TaskbarX 你是否厌倦了Windows任务栏图标始终固定…

2026/8/9 10:11:37 阅读更多 →
AI模型生产部署实战:从异步架构到Kubernetes的工程化指南

AI模型生产部署实战:从异步架构到Kubernetes的工程化指南

1. 项目概述:从玩具到服务的必经之路“模型跑通了,API调通了,演示也做完了,然后呢?” 这几乎是每个AI项目开发者都会面临的灵魂拷问。当我们兴奋地完成了一个AI模型的训练或一个智能功能的开发,将其封装成一…

2026/8/9 10:10:37 阅读更多 →

日新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/9 0:01:47 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/9 0:01:47 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/9 0:03:48 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/9 0:01:47 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/9 0:01:47 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/9 0:03:48 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/8 17:02:44 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/9 0:45:04 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/8 17:02:44 阅读更多 →