计算机操作系统27,28
第二十七课虚拟内存Virtual Memory一、什么是虚拟内存一句话虚拟内存是一种让程序感觉自己拥有比实际内存更大空间的技术。例如你的电脑实际8GB RAM但是程序看到几十GB地址空间为什么因为操作系统把一部分内容放内存。一部分内容放硬盘。需要时再调入。类似你的书桌。桌子只能放10本书。但是你有100本书。怎么办不会把100本全部摊桌上。而是桌上放正在看的10本。其他放书柜。需要再换。对应书桌 内存 书柜 外存硬盘 换书 页面调入调出二、为什么需要虚拟内存主要有三个原因。1. 运行大程序以前程序必须全部装入内存。现在不用。例如大型软件100GB。电脑16GB内存。仍然可以运行。因为只加载当前需要部分。2. 提高内存利用率如果10个程序。每个只用20%。以前全部加载浪费。现在只加载需要部分。可以运行更多程序。3. 保护进程每个程序拥有自己的虚拟地址空间。互不影响。三、虚拟内存的核心思想记住一句话离散装入按需调入。什么意思离散装入程序不用连续放。还是分页。按需调入需要哪一页。才加载哪一页。所以虚拟内存建立在分页基础上。四、请求分页系统★★★★★现代操作系统主要使用请求分页存储管理。名字拆开请求需要时才加载。分页程序分成页面。系统开始运行只加载部分页面。例如程序有100页。启动只加载10页。其他不加载。运行访问第50页。发现没有。怎么办产生缺页中断五、什么是缺页中断重点缺页意思当前需要的页面不在内存。例如程序访问页20。页表发现页20 × 不在内存于是发生缺页中断。流程CPU访问页面 ↓ 检查页表 ↓ 发现页面不在内存 ↓ 缺页中断 ↓ 操作系统处理 ↓ 从硬盘调入页面 ↓ 更新页表 ↓ 继续执行六、缺页中断为什么特殊普通中断例如键盘输入。CPU暂停。处理。缺页中断更复杂。因为它需要访问外存。外存很慢。所以缺页代价很高。七、页表中的关键位为了支持虚拟内存页表增加一些信息。① 状态位存在位表示页面是否在内存。例如1在内存 0不在内存② 访问字段记录页面最近是否被访问。后面页面置换算法会使用。③ 修改位表示页面是否被修改。为什么重要因为如果页面没修改。换出去不用写回硬盘。八、虚拟内存工作流程完整过程程序运行 ↓ CPU产生逻辑地址 ↓ 查页表 ↓ 页面存在 ↓ 是 ↓ 访问内存 否 ↓ 缺页中断 ↓ 寻找空闲页框 ↓ 调入页面 ↓ 更新页表 ↓ 继续运行九、局部性原理★★★★★为什么虚拟内存有效因为程序运行有规律。这个规律叫局部性原理。分两种1. 时间局部性意思最近访问过的数据很可能马上再次访问。例如循环for(i0;i100;i){sum;}sum一直使用。2. 空间局部性意思当前访问附近的数据也可能被访问。例如数组a[0]a[1]a[2]通常连续访问。因为存在局部性。所以不用一次加载全部程序。十、虚拟内存的问题虚拟内存很好。但是有一个风险。如果内存太小。程序频繁换入换出。会发生什么CPU大部分时间不是运行程序。而是在搬页面。这种现象叫抖动Thrashing例如学生桌子太小。一本书刚拿出来。马上又放回去。换另一本。一直整理。没有学习。计算机也是一样。十一、本课重点总结★★★★★必须掌握虚拟内存定义让程序逻辑上拥有比物理内存更大的空间。核心思想按需调入 离散存储请求分页需要哪页加载哪页。缺页中断页面不在内存。产生中断。局部性原理为什么虚拟内存有效时间局部性空间局部性抖动频繁页面交换。导致系统性能下降。十二、口诀虚拟内存程序不用全装入需要哪页调哪页。缺页页不在产生中断调入后继续干。局部性刚用还会用附近也可能用。第二十八课页面置换算法Page Replacement Algorithm一、为什么需要页面置换假设内存只有3个页框。现在已经装入页1 页2 页3来了页4。怎么办内存满了。必须选择一个页面换出去。这个过程叫页面置换Page Replacement二、页面置换的目标目标很简单尽量减少缺页次数。为什么因为缺页需要访问硬盘。而硬盘非常慢。所以好的算法应该预测哪个页面以后最不需要。三、算法一最佳置换算法 OPT★★★★★OPTOptimal。中文最佳置换。思想淘汰未来最长时间不会被访问的页面。注意关键词未来。例如当前内存1 2 3下一次访问4未来访问序列1 2 5 1 3 4问换谁看三个页面未来什么时候再次出现。页1马上出现。页2后面出现。页3较晚出现。所以淘汰页3。四、OPT的特点优点理论上最好。缺页次数最低。缺点现实中无法实现。为什么因为操作系统不知道未来。所以OPT主要用于比较其他算法。考试经常问哪个算法缺页最少答案OPT。五、算法二FIFO★★★★★FIFOFirst In First Out。中文先进先出。思想谁最早进入内存就淘汰谁。类似排队买票。最早排队的人先离开。例如三个页框。访问1 2 3 4过程开始空。访问1[1]访问2[1 2]访问3[1 2 3]访问4满了。谁最早页1。淘汰页1。结果[4 2 3]六、FIFO的问题Belady异常★★★★★这是考试重点。正常想内存越大。缺页越少。但是FIFO可能反而更多。这叫Belady异常。例如3个页框缺页9次。增加到4个页框缺页10次。反而增加。为什么因为FIFO只看进入时间。不看使用情况。七、算法三LRU★★★★★LRULeast Recently Used。中文最近最久未使用。思想淘汰最长时间没有被使用的页面。它比FIFO聪明。因为利用局部性原理。例如当前内存1 2 3访问页4。看最近使用情况。如果页1很久没访问。页2刚访问。页3也刚访问。淘汰页1。八、LRU为什么有效因为程序具有时间局部性。如果一个页面很久没使用。那么近期大概率也不会使用。所以LRU性能接近OPT。九、三种算法比较★★★★★算法依据优点缺点OPT未来访问最好无法实现FIFO进入时间简单可能Belady异常LRU过去访问效果好实现复杂口诀OPT看未来 FIFO看年龄 LRU看最近十、缺页次数计算方法重点考试通常给访问序列。例如页访问7 0 1 2 0 3 0 4页框3个。问FIFO缺页次数。步骤画表。例如访问 7 0 1 2 0 3 框1 7 7 7 2 2 2 框2 0 0 0 0 3 框3 1 1 1 1每次新页面进入算一次缺页。十一、一个简单例子页面1 2 3 1 4三个页框。访问1缺页。内存1访问2缺页。1 2访问3缺页。1 2 3访问1已经存在。不缺页。访问4没有。缺页。总缺页4次。十二、LRU和FIFO容易混这是很多人的坑。FIFO问谁进去最早例如进入顺序 1 2 3换1。LRU问谁最近最久没用例如最近3刚用 2刚用 1很久没用换1。可能结果一样。但是判断方法不同。十三、Clock算法了解真实系统很少直接使用纯LRU。因为记录访问时间成本高。所以出现Clock算法。思想模拟LRU。每个页面有一个访问位0 / 1访问设置1。置换寻找访问位为0的页面。408一般重点OPT、FIFO、LRU。十四、本课重点总结★★★★★必须掌握OPT淘汰未来最长时间不用。理论最优。FIFO淘汰最早进入内存页面。可能产生Belady异常。LRU淘汰最近最长时间没使用页面。利用局部性。缺页次数计算画表模拟。十五、最终口诀页面置换最佳看未来 先进看进入 最近看过去

相关新闻

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

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

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

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

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

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

2026/10/16 18:21:14 阅读更多 →
网盘直链下载助手:告别限速,9大网盘高速下载完整指南

网盘直链下载助手:告别限速,9大网盘高速下载完整指南

网盘直链下载助手:告别限速,9大网盘高速下载完整指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云…

2026/10/17 11:03:43 阅读更多 →

最新新闻

EMC设计整改与仿真应用:从PCB正向设计到实验室超标排查实战

EMC设计整改与仿真应用:从PCB正向设计到实验室超标排查实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:02:29 阅读更多 →
deepagents中间件:30行代码搞定AI Agent文件系统、记忆与上下文压缩基建

deepagents中间件:30行代码搞定AI Agent文件系统、记忆与上下文压缩基建

1. 从"手搓轮子"到"搭积木":Agent 基建的痛点到底在哪如果你最近半年在折腾 AI Agent,大概率经历过这样一个阶段:一开始兴致勃勃地写了个 ReAct 循环,觉得"不过如此";等到真正要把它做成…

2026/10/19 2:02:29 阅读更多 →
Spring AI Alibaba Graph实战:ReAct Agent与Workflow混合编排的企业级AI应用

Spring AI Alibaba Graph实战:ReAct Agent与Workflow混合编排的企业级AI应用

1. 从“能聊天”到“能干活”:企业级AI编排的真实分水岭很多团队做AI应用,第一步都是接个大模型,写个对话接口,跑通“你问我答”就以为大功告成。但真正落到企业业务里,你会发现单轮问答根本撑不起一个完整流程。比如一…

2026/10/19 2:02:29 阅读更多 →
移动端AIcoding落地成本与端云协同选型实战

移动端AIcoding落地成本与端云协同选型实战

1. 移动端 AIcoding 落地,为什么大家都在算这笔账移动端 AIcoding 这个词,最近半年在圈子里被反复提起。我最早接触这个概念是在一个跨平台工具链项目里,当时团队想把代码补全和自然语言生成代码的能力塞进手机和平板端,让开发者在…

2026/10/19 2:02:29 阅读更多 →
移动端AIcoding真实成本账:端侧适配与上下文管理占大头

移动端AIcoding真实成本账:端侧适配与上下文管理占大头

1. 这笔账为什么值得算移动端接入 AIcoding,前两年大家聊的都是“能不能做”,现在聊的是“划不划算”。我所在的团队从去年下半年开始,把一个内部代码辅助工具从桌面端往移动端搬,前后折腾了差不多两个季度,踩过的坑、…

2026/10/19 2:02:29 阅读更多 →
1~30秒参考音频克隆任意声音:Seed-VC 零样本语音转换完整零训练指南

1~30秒参考音频克隆任意声音:Seed-VC 零样本语音转换完整零训练指南

1~30秒参考音频克隆任意声音:Seed-VC 零样本语音转换完整零训练指南 【免费下载链接】seed-vc zero-shot voice conversion & singing voice conversion, with real-time support 项目地址: https://gitcode.com/GitHub_Trending/se/seed-vc 有一场会要开…

2026/10/19 2:01:28 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →