您当前的位置:首页 > 电脑百科 > 电脑知识

虚拟内存结构了解一下

时间:2019-09-20 11:28:57  来源:  作者:

你知道虚拟内存吗?虚拟内存结构了解一下

内存是什么?

内存对于用户来说就是一个字节数组,我们可以根据地址来访问到某个字节或者某些字节:

你知道虚拟内存吗?虚拟内存结构了解一下

很久之前的内存

很久很久之前,一台机器上只放置一个程序,操作系统仅仅作为一个函数库存在。对于内存来说,除去操作系统的代码和数据占用的一些空间外,其余空间全部分配给正在运行的那个程序,画个图就是这样:

你知道虚拟内存吗?虚拟内存结构了解一下

我们把运行着的程序称之为进程。

同时运行多个程序的内存

后来人们觉得同时在一台计算机上只运行一个程序太亏了,就设计了一个可以同时运行多个程序的机制。不过内存条只有一个,所以这些用户程序只能共享同一个内存条,只能把内存的不同部分划分给不同的用户程序,画个图就像是这样:

你知道虚拟内存吗?虚拟内存结构了解一下

这样子的话也有一些问题:

  • 不同用户程序只能使用给他们规定好的那部分内存,也就是程序员在敲代码的时候就应该小心翼翼的计算自己使用的内存有没有占到别人家的地儿,这样对码农很不友好有木有。
  • 如果哪个心眼儿坏的家伙故意去读取别人家的程序使用的内存,这不就暴露了么,更严重的,这个坏家伙直接把别人家程序正在使用的内存的某些字节给更新掉,这就是天坑了~
  • 能使用的内存空间都给规定好了,太少了有木有~

虚拟内存

操作系统是个老好人,使命就是解决所有用户感到麻烦的事情。设计操作系统的大叔觉得,如果让用户直接去操作内存的话,用户也不知道其他人到底使用了内存的哪些字节,自己可以使用哪些字节,如果要做到这一点的话人们在开发程序的时候还要聚到一起开个会,把每个人该用哪块内存都规定好,即使规定好了用户还得小心翼翼的避免使用了不属于自己的那部分内存。干脆,干脆就不让用户直接操作内存了,让用户在编程序的时候直接把内存想象成一个非常非常大的字节数组就好了,,自己在这个字节数组上可以随便折腾,他们把这个非常大的字节数组称之为虚拟内存,由操作系统完成从虚拟内存的虚拟地址到真实内存的真实地址之间的映射工作。画个图就像这样:

你知道虚拟内存吗?虚拟内存结构了解一下

这样还有问题,用户越来越多,即使每个用户都使用非常少的内存空间,那加起来占用的内存空间都可能超过了真实内存的大小,更何况某些丧心病狂的程序员写的程序里本身就使用了超过真正内存大小的空间,这可怎么办。这难不倒设计操作系统的大叔们,他们机智的把硬盘也拉了进来。

你知道虚拟内存吗?虚拟内存结构了解一下

操作系统完成由虚拟内存地址到真实内存地址或者磁盘地址之间的映射工作,这样子给用户提供的虚拟内存的地址空间就可以非常非常大,用户程序中那些很久都用不到的内存空间可以被操作系统给搞到磁盘上边存储,什么时候需要用了,又从磁盘中加载到真实内存中,重要的是这个过程全部是操作系统自动完成的,对于我们这些码农来说,编写程序就像是在一个炒鸡大的字节数组上将某个地方的数据搬到另一个地方,或者将某个地方的数据经过CPU的某种加工之后再放到某个字节数组的某个地方,整个过程so easy,完全不用担心有没有读取/覆盖掉别人正在使用的内存空间。

对于windows操作系统来说,虚拟内存所需的磁盘空间从系统盘,一般是C盘分配,当你的C盘剩余空间很少时就会导致很卡~

虚拟内存结构

我们说对于敲代码的码农来说,虚拟内存就是一个超级大的字节数组,不过这个字节数组也是被划分为多个部分的,并不是每个地方用户都可以访问,一般的虚拟内存结构长这样:

你知道虚拟内存吗?虚拟内存结构了解一下

用户需要调用函数的时候,一般都会生成一个称之为栈帧的结构,从而导致虚拟内存中的栈空间增长。

用户需要单独申请内存空间时,就会从堆空间分配,从而导致虚拟内存中的堆空间增长。

这里需要强调的一点是,我们平时所说的操作系统内核不是一个进程,而是指操作系统的代码。



Tags:虚拟内存   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
电脑虚拟内存怎么设置?1分钟快速增加内存!
“我电脑里的内存好像不太够用,因此,我想在电脑里增加一些虚拟内存。不知道我应该怎么操作呢?有什么比较简单的此操作方法吗?” 虚拟内存是计算机系统内存管理的一种技术,它为程...【详细内容】
2024-02-06  Search: 虚拟内存  点击:(64)  评论:(0)  加入收藏
虚拟内存对于游戏性能的影响及优化方法
虚拟内存作为计算机系统中的一个重要组成部分,对于游戏性能的影响也不可忽视。本文将介绍虚拟内存对于游戏性能的影响,并提供一些优化方法,以帮助玩家提升游戏的流畅度和体验。...【详细内容】
2023-11-02  Search: 虚拟内存  点击:(263)  评论:(0)  加入收藏
windows11系统电脑的虚拟内存设置方法
电脑如果同时打开多个应用程序或者是在看电影游戏过程中常发现有时卡的很,电脑卡顿的问题千千万万,有一条就是虚拟内存似乎不够或不合理。内存占用率太高只有设置虚拟内存才可...【详细内容】
2023-07-09  Search: 虚拟内存  点击:(133)  评论:(0)  加入收藏
虚拟内存 & I/O & 零拷贝
作者:mosun,腾讯 PCG 后台开发工程师一、虚拟内存 1.1 虚拟内存引入我们知道计算机由 CPU、存储器、输入/输出设备三大核心部分组成,如下:CPU 运行速度很快,在完全理想的状态下,存...【详细内容】
2022-10-13  Search: 虚拟内存  点击:(306)  评论:(0)  加入收藏
坐井观天的:进程 | 虚拟内存 | 虚拟地址
“ 进程、线程有什么区别?虚拟地址和物理地址有什么区别?让我们用一只青蛙的视角,来解读它们背后的秘密”进程、线程、虚拟地址、物理地址,这些名词既熟悉也陌生!似乎无论看多少...【详细内容】
2022-10-08  Search: 虚拟内存  点击:(240)  评论:(0)  加入收藏
彻底搞懂虚拟内存,虚拟地址,虚拟地址空间
程序经过编译后,变成了可执行的文件,可执行文件主要包括代码和数据两部分,代码是只读的,数据则是可读可写的。可执行文件由操作系统加载到内存中,交由CPU去执行,现在问题来了,CPU怎...【详细内容】
2021-04-25  Search: 虚拟内存  点击:(523)  评论:(0)  加入收藏
Linux内核虚拟内存管理之匿名映射缺页异常分析
前面讲到过写时复制缺页异常(COW),一般用于父子进程之间共享页,而我们会常见一种缺页异常是匿名映射缺页异常,今天我们就来讨论下这种缺页异常,让大家彻底理解它。注:本文使用linux-5.0内核源代码。文章分为以下几节内容:...【详细内容】
2020-09-10  Search: 虚拟内存  点击:(285)  评论:(0)  加入收藏
虚拟内存 和 page fault 的解释
Linux 内核给每个进程都提供了一个独立的虚拟地址空间,并且这个地址空间是连续的。这样进程就可以很方便地访问内存,更确切地说是访问虚拟内存。1、什么是虚拟内存假设某个进...【详细内容】
2020-08-17  Search: 虚拟内存  点击:(767)  评论:(0)  加入收藏
聊聊虚拟内存
大家好,我是良许。熟悉计算机的小伙伴都知道,我们常说的主机三大件分别是主板,CPU,内存,可见内存在计算机主机中的角色也非同一般,喜欢 DIY 主机的小伙伴对这三大件的了解更是精益...【详细内容】
2020-08-11  Search: 虚拟内存  点击:(300)  评论:(0)  加入收藏
虚拟内存技术的前世今生
在20世纪60年代及70年代早期,计算机内存十分昂贵,而随着计算机的发展,计算机应用程序越来越大,系统内存无法满足应用程序的需求,虚拟内存技术应运而生,它可使内存耗量大的软件运行...【详细内容】
2020-03-17  Search: 虚拟内存  点击:(718)  评论:(0)  加入收藏
▌简易百科推荐
云计算和边缘计算
云计算和边缘计算是两种不同的计算模型,它们各有特点,适用于不同的场景和需求。云计算是一种基于互联网的计算模型,它将计算资源、存储资源和应用服务集中在云端,用户可以通过网...【详细内容】
2024-03-01    简易百科  Tags:云计算   点击:(31)  评论:(0)  加入收藏
云计算与边缘计算:有何不同?
公共云计算平台可以帮助企业充分利用全球服务器来增强其私有数据中心。这使得基础设施能够扩展到任何位置,并有助于计算资源的灵活扩展。混合公共-私有云为企业计算应用程序...【详细内容】
2024-02-28  通信产品推荐官    Tags:云计算   点击:(24)  评论:(0)  加入收藏
量子计算机是什么?跟现在的计算机相比优缺点是什么?
量子计算机是什么?跟现在的计算机相比优缺点是什么? 随着科技的不断发展,计算机技术也取得了巨大的进步。然而,随着摩尔定律的趋近于极限,传统的计算机技术面临着许多挑战。这时...【详细内容】
2024-02-23    简易百科  Tags:量子计算机   点击:(45)  评论:(0)  加入收藏
量子计算机:未来电脑的革命性技术
在科技的广袤天空中,量子计算机如一颗璀璨的新星,以其独特的光芒预示着未来电脑的革命性变革。这项令人瞩目的技术不仅代表着计算机科学的最前沿,更承载着人类对于速度和效率的...【详细内容】
2024-02-23  小浩长得帅    Tags:量子计算机   点击:(48)  评论:(0)  加入收藏
为什么计算机需要十六进制?
今天简单聊聊十六进制。实际上计算机本身是不需要十六进制的,计算机只需要二进制,需要十六进制的是人。每个十六进制中的数字代表4个比特,你可以非常直观的从十六进制中知道对...【详细内容】
2024-02-22  码农的荒岛求生  微信公众号  Tags:计算机   点击:(52)  评论:(0)  加入收藏
多模态RAG应用:跨越文本与图片的智能交互
近年来,多模态RAG(Retrieval-AugmentedGeneration)应用的兴起引发了人们对人工智能技术发展方向的广泛关注。传统的RAG应用主要基于文本的输入和输出,而随着GPT4-V的发布,多模态R...【详细内容】
2024-01-29  况成放    Tags:多模态RAG   点击:(82)  评论:(0)  加入收藏
量子计算机真相揭秘,一篇文章颠覆你的认知
你看过《三体》吗?在刘慈欣笔下,三体人用一种叫“智子”的黑科技干扰了人类的实验,从而锁死了人类的技术。而在现实世界,一把无形的“锁”其实也悄然逼近了我们,它就是芯片。随着...【详细内容】
2024-01-23  天才简史  今日头条  Tags:量子计算机   点击:(28)  评论:(0)  加入收藏
生成对抗网络(GAN)在计算机视觉领域中的应用
生成对抗网络(GAN)是一种在计算机视觉领域中广泛应用的深度学习模型。它由一个生成器网络和一个判别器网络组成,通过对抗训练的方式实现图像的生成和判别。GAN在计算机视觉中的...【详细内容】
2024-01-15  数码小风向    Tags:生成对抗网络   点击:(78)  评论:(0)  加入收藏
如何免费生成logo?
Logo设计对于一个品牌来说非常重要,它是品牌的身份标识,可以帮助人们迅速识别和记住一个品牌。同时还可以帮助建立品牌认知度,传达出品牌的专业形象。无论是大公司还是刚起步的...【详细内容】
2024-01-05  阳仔问文    Tags:logo   点击:(97)  评论:(0)  加入收藏
自然语言处理中的句法分析方法研究与实现
自然语言处理(NLP)中的句法分析方法是NLP领域的重要研究内容之一,它旨在通过对句子结构的分析和理解,揭示句子中单词之间的语法关系,为后续的语义理解和信息提取提供基础支撑。本...【详细内容】
2024-01-04  毛晓峰    Tags:自然语言处理   点击:(60)  评论:(0)  加入收藏
相关文章
    无相关信息
站内最新
站内热门
站内头条