虚拟内存简介

 我来答
天士凯数码17
2022-08-01 · TA获得超过2732个赞
知道小有建树答主
回答量:3605
采纳率:100%
帮助的人:191万
展开全部

为了更加有效的管理内存并减少出错,现代系统提供了一种对主存的抽象概念,叫做虚拟内存。为每个进程提供了一个私有的地址空间。作用可总结为以下三点:

虚拟内存概念分为两部分,一部分是物理内存,还有一部分是位于交换区的磁盘空间,这部分磁盘空间在内存不足时可以作为内存,将活动不频繁的数据放入磁盘中。

页表将虚拟页映射到物理页,每次地址翻译硬件将虚拟地址装换为物理地址时都会读取页表。操作系统负责维护页表的内容,以及在磁盘和DRAM之间来回传送页。实际上: 操作系统为每个进程提供了一个独立的页表,因而也就是一个独立的虚拟地址空间。

DRAM缓存不命中称之为缺页 :当发生缓存不命中时,会触发一个缺页异常,缺页异常调用内核中的缺页异常处理程序,该程序会选择一个牺牲页。

页表是带许可位的,例如SUP,VP0,VP1,VP2等,其中SUP只能在超级用户模式下访问,用户模式有读VP0和读写VP1的权限,如果一条指令违反了许可条件,那么cpu会触发一个一般保护故障,将控制传递给一个内核中的异常处理程序,linux shell一般将这种异常报告为段错误(segmentation fault)

维护64位的虚拟地址空间一张页表肯定是不够用的,所以要用多级页表,也就是在一张页表里面维护的是下一张页表的地址,多级之后会指向实际的物理地址,这个和ip协议的路由寻址有点相似。

Linux通过将一个虚拟内存区域与一个磁盘上的对象关联起来,以初始化这个虚拟内存区域的内容,这个过程叫做内存映射。

一旦一个虚拟页面被初始化了,它就在一个由内核维护的专门的交换文件之间换来换去。交换文件也被称为交换空间,或者交换区域。

少量使用Swap交换空间是不会影响性能,只有当RAM资源出现瓶颈或者内存泄露,进程异常时导致频繁、大量使用交换分区才会导致严重性能问题。另外使用Swap交换分区频繁,还会引起kswapd0进程(虚拟内存管理中, 负责换页的)耗用大量CPU资源,导致CPU飙升。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
华纳云
2024-05-22 广告
美国虚拟主机有以下特点:* **操作简单。**美国虚拟主机的界面普遍都设置的十分简洁,适合所有类型的用户使用,一些品牌还包括了一键部署功能,使小白用户也可以很容易上手。* **支持多操作系统。**美国虚拟主机普遍都支持多种操作系统,尤其是W... 点击进入详情页
本回答由华纳云提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式