阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

虚拟内存与物理内存

298次阅读
没有评论

共计 1543 个字符,预计需要花费 4 分钟才能阅读完成。

导读 当多个程序同时运行时,如何让多个应用程序共同使用物理内存资源?
如何管理内存?

当多个程序同时运行时,如何让多个应用程序共同使用物理内存资源?有两种简单的方法:

使某一个应用程序独占所有的内存资源。一个程序要运行就将另一个程序的内存数据转存到硬盘中,使要运行的程序独占所有内存资源。

缺点:硬盘读写速度很慢(相对而言),如果应用程序频繁切换,必然会造成大量时间开销。
让每一个应用程序独占一部分内存资源。多个应用程序的数据,可以一直保存在内存中,避免了硬盘读写的时间开销。

缺点:无法保证不同应用程序内存之间的隔离性,如果应用程序 A 错误读取或修改了应用程序 B 的内存数据,就会造成严重的后果。
缺点:无法保证每个应用程序分到的内存地址是连续的,这会增加程序编写的复杂度。

虚拟内存

为了使不同的应用程序高效,安全的使用内存,虚拟内存应运而生。顾名思义,虚拟内存是对物理内存的一种抽象,它介于应用程序与物理内存之间。应用程序是面向虚拟内存编写的,而不再是面向物理内存编写的。应用程序在运行时只能使用虚拟地址 CPU 负责将虚拟地址翻译成物理地址,操作系统负责设置虚拟地址到物理地址的映射。

优点:
应用程序只能看到自己的虚拟地址空间,从而保证了应用程序之间内存的隔离性,使应用程序运行更安全。
每个应用程序的虚拟内存空间是连续的、统一的,从而降低了编程的复杂性。

虚拟内存与物理内存

地址翻译:CPU 中的内存管理单元(MMU)负责将虚拟内存翻译成物理内存。为了加速地址翻译过程,MMU 中还加入了转址旁路缓存(TLB),TLB 可以缓存一部分虚拟地址到物理地址的映射,从而加速翻译。

虚拟内存是硬件提供的一种功能,而不是操作系统提供的。

分段和分页

分段和分页是 MMU 将虚拟地址翻译为物理地址的两种机制。

分段
在分段的机制下,操作系统以“段”(一段连续的物理内存)的形式来管理、分配虚拟内存和物理内存。应用程序的虚拟地址空间由若干个不同大小的段组成,比如:代码段、数据段。

每一段都是一个虚拟地址空间,虚拟地址由两部分组成:段号和段内地址。MMU 通过段表找到对应的物理段,再通过虚拟地址中的段内地址(偏移量)找到对应的物理地址。

虚拟内存与物理内存

缺点:造成物理出现外部碎片。虚拟地址中相邻的段对应到物理内存中可能就不相邻了,这样虽然实现了物理内存的离散分配,但是可能造成物理内存中相邻的段之间出现内存碎片(不足以映射给虚拟内存中的段)。

分页
将应用程序的虚拟地址空间划分成连续的,等长的虚拟页,同时物理内存也被划分为等长的,连续的虚拟页。操作系统为每一个应用程序构造页表(虚拟页到物理页的映射关系表)。分页机制下的虚拟地址由两部分构成:虚拟页号和页内偏移量。

MMU 通过应用程序的页表找到虚拟页号对应的物理地址,再通过页内偏移量找到对应的物理地址。

虚拟内存与物理内存

多级页表

上面的简单分页机制在位操作系统中,还能用,但是在 64 位操作系统中就不行了。64 位操作系统,虚拟地址长 64 位,也就是 8 个字节,64 位寻址范围是 0~2^64,如果一个虚拟页大小 4KB,那么就会有 2^64/4KB 个虚拟页,如果用一张页表来记录,一个页表项 8 字节,那么页表大小就为 2^64/4KB*8,这是一个无法接受的数字。为了压缩页表的大小,多级页表应运而生。下面是一个 4 级页表的示意图:

虚拟内存与物理内存

在多级分页机制下,0 级页表只有一个页表页,而其余每一级页表都可以拥有多个离散的页表页。虚拟地址可以分为两部分:虚拟页号和页内偏移。只不过虚拟页号可以进一步分为四个部分,依次对应其在对应级数页表中的索引。当任意一级页表中的条目为空时,就意味着该条目对应的下一级页表不需要存在,因此节省了大量空间。

分类: 计算机操作系统

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计1543字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19352
评论数
4
阅读量
8041426
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
欧洲无限速云盘免费10GB永久存储 + WebDAV部署+图床搭建,多平台联动一步到位!

欧洲无限速云盘免费10GB永久存储 + WebDAV部署+图床搭建,多平台联动一步到位!

欧洲无限速云盘免费 10GB 永久存储 + WebDAV 部署 + 图床搭建,多平台联动一步到位! 大家好,我...
颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

  颠覆 AI 开发效率!开源工具一站式管控 30+ 大模型 ApiKey,秘钥付费 + 负载均衡全...
每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年 0.99 刀,拿下你的第一个顶级域名,详细注册使用 前言 作为长期折腾云服务、域名建站的老玩家,星哥一直...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...
CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流! 大家好,我是星哥,今天才思枯竭,不写技术文章了!来吐槽一下 CSDN。...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的 NAS 中! 大家对「数据安全感」的需求越来越高 ...
每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站 - 手机博物馆 -CHAZ 3D Experience 一句话介绍:一个用 3D 方式重温...
仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

还在忍受动辄数百兆的“全家桶”监控软件?后台偷占资源、界面杂乱冗余,想查个 CPU 温度都要层层点选? 今天给...
你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你 为什么要用宝塔跑分? 宝塔跑分其实就是对 CPU、内存、磁盘、IO 做...
150元打造低成本NAS小钢炮,捡一块3865U工控板

150元打造低成本NAS小钢炮,捡一块3865U工控板

150 元打造低成本 NAS 小钢炮,捡一块 3865U 工控板 一块二手的熊猫 B3 工控板 3865U,搭...