计算机操作系统27,28

发布时间:2026/9/23 11:27:57

计算机操作系统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淘汰最近最长时间没使用页面。利用局部性。缺页次数计算画表模拟。十五、最终口诀页面置换最佳看未来 先进看进入 最近看过去
延伸阅读

更多相关文章

2026/9/19 11:43:28

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

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

2026/9/19 21:34:55

光伏逆变器无功响应建模与分布式电源优化配置

1. 光伏电站无功响应特性与分布式电源配置的挑战在新能源电力系统中,光伏电站的无功响应能力直接影响着电网的电压稳定性。传统观点认为光伏逆变器只能提供有限的无功支撑,但现代光伏电站通过智能逆变器控制已经可以实现毫秒级的动态无功响应。这种快速的…

2026/9/23 11:23:17

电商数据分析驱动跨界合作:从用户重叠到增量评估的实战方法论

做了这么多年电商数据分析,我最深的一个感受是:这个岗位的价值早就不该只停留在“日报、周报、活动复盘”上了。你花一整晚跑出来的转化漏斗,老板看完点点头,第二天晨会该干嘛还干嘛。但有一天我换了个思路,把分析视角…

2026/9/23 11:23:17

3个核心算法手写实现,搞定迅雷快传资源搜索面试难题

3个核心算法手写实现,搞定迅雷快传资源搜索面试难题 面试被问原理答不上来,那种尴尬感真的让人头皮发麻。很多候选人面对“迅雷快传资源搜索”这类高频场景,只能背八股文,一旦追问底层逻辑,立马哑火。今天不整虚的,直接带你 手写实现…

2026/9/23 11:23:17

大学生个人小结一文搞懂:转岗微服务避坑指南

大学生个人小结一文搞懂:转岗微服务避坑指南 很多应届生盯着语法书看了三个月,闭着眼都能敲出 for 循环,可一让搭个能跑通的项目就卡壳。这种“会写代码却不会做系统”的割裂感,是转岗大厂最痛的点。今天这篇大学生个人小结,不灌鸡汤,直接拆解微服…

2026/9/23 11:23:17

整机与单板硬件测试方案拆解:电源、时钟、信号与降额实战

简介:这份硬件测试方案文档面向硬件开发、测试工程师及电子相关专业学习者,聚焦整机与单板两类测试场景,帮助读者建立从测试原则到判定准则的完整规范认知。资源包内含1个doc文件,约7.95MB,共76页,内容涵盖…

2026/9/23 11:23:17

GFPGAN源码解析:Python深度学习人脸修复实战指南

简介:本资源为基于Python深度学习框架的GFPGAN图片修复算法实现源码,面向具备一定Python编程与深度学习基础、希望深入研究图像修复与生成对抗网络的开发者及研究人员。项目聚焦面部图像的高质量修复与美化,可应用于老旧照片修复、数字取证及…

2026/9/23 11:18:17

3步搞定电容计算:前端项目避坑速查手册

3步搞定电容计算:前端项目避坑速查手册 很多刚转行做前端或者嵌入式开发的朋友,手里拿着厚厚的电容计算公式,脑子一热就想去写代码。结果呢?语法背得滚瓜烂熟,一到项目现场就抓瞎。为什么?因为你没搞懂电容在真实电路里的脾气,更没学会怎么把物理量变…

2026/9/22 10:02:42

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/22 9:07:39

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/23 0:01:54

3个实战技巧搞定形式英语:从看教程到跑通性能优化

3个实战技巧搞定形式英语:从看教程到跑通性能优化 看了一堆教程还是不会写项目?别慌,这种“眼高手低”的困境在开发者圈子里太常见了。很多人以为卡点在语法,其实真正拦路虎是缺乏将知识点串联成完整链路的能力。今天咱们不聊虚的,直接拿【形式英语】这…

2026/9/22 16:34:32

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/22 20:01:30

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/22 13:25:41

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码