操作系统:Linux虚拟内存知识介绍
发布时间 - 2025-07-09 00:00:00 点击率:次今天我将为大家介绍linux虚拟内存的相关知识,希望对大家有所帮助!
1、虚拟内存毫无疑问,虚拟内存是操作系统中至关重要的概念之一。主要原因在于内存的“战略地位”。CPU速度极快,但其容量有限且功能单一,而其他I/O硬件虽然支持多种功能,但相对于CPU而言速度较慢。因此,它们之间需要一种缓冲,这就是内存发挥作用的地方。
在现代操作系统中,多任务处理已成为标准。多任务并行显著提高了CPU的利用率,但也引发了多个进程对内存操作的冲突问题,虚拟内存的概念正是为了解决这一问题而提出的。
上图是对虚拟内存最简单直观的解释。
操作系统拥有一块物理内存(中间部分),有两个进程(实际可能更多)P1和P2,操作系统悄悄地分别告诉P1和P2,我的整个内存都是你的,随便用,管够。但实际上,操作系统只是给了它们一个序号。当P1和P2真正开始使用这些内存时,系统才开始通过拼凑各个块来满足进程的需求,P2以为自己在使用A内存,实际上已经被系统悄悄重定向到真正的B内存了。甚至,当P1和P2共用C内存时,他们也不知道。
操作系统通过这种欺骗进程的手段实现了虚拟内存。对于P1和P2等进程来说,它们都以为自己占用了整个内存,而自己使用的物理内存的具体地址,它们并不知道也不需要关心。
2、分页和页表虚拟内存是操作系统中的概念,对于操作系统来说,虚拟内存就是一张对照表,当P1获取A内存中的数据时,应该去物理内存的A地址查找,而要查找B内存中的数据时,应该去物理内存的C地址。
我们知道系统中的基本单位是Byte字节,如果将每个虚拟内存的Byte都对应到物理内存的地址,每个条目至少需要8字节(32位虚拟地址->32位物理地址),在4G内存的情况下,就需要32GB的空间来存储对照表,这样的大小已经超出了物理地址的容量,因此操作系统引入了“页(Page)”的概念。
在系统启动时,操作系统将整个物理内存以4K为单位划分为各个页。之后进行内存分配时,都是以页为单位进行的,这样虚拟内存页对应物理内存页的映射表就大大缩小了,4G内存
只需要8M的映射表即可,一些未使用的虚拟内存也不需要保存映射关系,而且Linux还为大内存设计了多级页表,可以进一步减少内存消耗。操作系统将虚拟内存到物理内存的映射表称为“页表”。
3、内存寻址和分配我们知道通过虚拟内存机制,每个进程都以为自己占用了全部内存,当进程访问内存时,操作系统会将进程提供的虚拟内存地址转换为物理地址,再去对应的物理地址上获取数据。CPU中有一种硬件,称为“内存管理单元MMU(Memory Management Unit)”,专门用于翻译虚拟内存地址。CPU还为页表寻址设置了缓存策略,由于程序的局部性,其缓存命中率能达到98%。
# linux
# 操作系统
# 虚拟内存
# 也不
# 用了
# 还为
# 以为自己
# 该去
# 对照表
# 都是
# 这一
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询
Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验
智能起名网站制作软件有哪些,制作logo的软件?
如何在IIS中新建站点并配置端口与物理路径?
微信小程序 五星评分(包括半颗星评分)实例代码
Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】
html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】
Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册
Laravel如何处理CORS跨域请求?(配置示例)
iOS UIView常见属性方法小结
如何获取PHP WAP自助建站系统源码?
JavaScript中的标签模板是什么_它如何扩展字符串功能
Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
PHP正则匹配日期和时间(时间戳转换)的实例代码
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
Laravel事件监听器怎么写_Laravel Event和Listener使用教程
如何在腾讯云服务器上快速搭建个人网站?
如何基于云服务器快速搭建个人网站?
如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】
香港服务器网站推广:SEO优化与外贸独立站搭建策略
HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】
详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
如何快速搭建二级域名独立网站?
HTML 中如何正确使用模板变量为元素的 name 属性赋值
焦点电影公司作品,电影焦点结局是什么?
Win11关机界面怎么改_Win11自定义关机画面设置【工具】
Java解压缩zip - 解压缩多个文件或文件夹实例
Laravel怎么为数据库表字段添加索引以优化查询
三星网站视频制作教程下载,三星w23网页如何全屏?
网站制作价目表怎么做,珍爱网婚介费用多少?
如何在云主机快速搭建网站站点?
如何快速生成可下载的建站源码工具?
Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议
Laravel如何保护应用免受CSRF攻击?(原理和示例)
Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】
Laravel怎么在Blade中安全地输出原始HTML内容
如何确保FTP站点访问权限与数据传输安全?
香港服务器网站卡顿?如何解决网络延迟与负载问题?
如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】
Python函数文档自动校验_规范解析【教程】
Linux网络带宽限制_tc配置实践解析【教程】
网易LOFTER官网链接 老福特网页版登录地址
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
如何用虚拟主机快速搭建网站?详细步骤解析
如何在自有机房高效搭建专业网站?
网站建设保证美观性,需要考虑的几点问题!
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
如何正确下载安装西数主机建站助手?
下一篇:坐飞机流程及注意事项
下一篇:坐飞机流程及注意事项

