For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
内存管理是大多数软件编程开发程序员在学习成长过程中需要重点掌握的一个计算机知识点,而本文我们就通过案例分析来简单了解一下,计算机虚拟内存概念解析。
段和页
我们明白了页,页是操作系统为了管理主存方便而划分的,对用户不可见。但是思考这种情况,假设一个页的大小是1M。但是某个程序数据加起来也就0.5M,所以在内存和磁盘进行页交换明显的浪费内存了。所以还一种划分方式是分段。上面那个例子,我将该段划分为0.5M,在内存和磁盘之间交换,这样就避免了浪费。
段是信息的逻辑单元,是根据用户需求而灵活划分的,所以大小不固定,对用户是可见的,提供的是二维地址空间。
对于段,我没找到比较好的资料,所以也没有理解的更清楚,网上的很多文章都相互抄袭。据我所了解,汇编程序员是可以直接操作段的,但是我们写高级语言的程序员有相应的API能进行段操作吗?所以对于段的相关知识,真心不了解,也希望了解的同学可以在留言区指点批评,或者留言相关的文章链接。我回头会再补充这篇博客。谢谢
swap分区的作用
熟悉linux的同学,应该知道linux有一个swap分区。Swap空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间中的信息被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。系统总是在物理内存不够时,才进行Swap交换。
你电脑打开了一个音乐播放器,但是也没播放歌曲,然后你几天不关机,也一直没关闭这个音乐播放器,随着运行的程序越来越多,内存快不够用了,所以操作系统就选择将这个音乐播放器的内存状态(包括堆栈状态等)都写到磁盘上的swap区进行保存。这样就腾出来一部分内存供其他需要运行的程序使用。你啥时候想听歌了,就找到了这个音乐播放器程序操作。此时,系统会从磁盘中的swap区重新读取该音乐播放器的相关信息,送回内存接着运行。
在window下也有类作用的硬盘空间,属于对用户不可见的匿名磁盘空间(在C盘)。
特别注意:按照字面意思,swap交换区也可以称为虚拟内存
硬盘上的swap交换区,其实就相当于承担了内存的作用(只是速度很慢罢了)。swap交换区起到了扩大内存的作用。所以从某些意义上来讲,swap区也可以叫做虚拟内存,但是这个虚拟内存是字面意思。和我们本文当中站在计算机系统的角度来解释的虚拟内存不是一个概念。所以特别注意这一点。因为有些人理解的虚拟内存,就是swap交互区。此虚拟内存非彼虚拟内存,所以明白各自的概念和作用。不然和其他人讨论虚拟内存,可能出现驴头不对马嘴的情况。
linux环境下叫做swap分区,window下这块区域没叫做swap分区,就直接按照字面意思叫做"虚拟内存"了。所以两个含义不同的虚拟内存,读者一定要搞清楚了。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。