linux 512m内存管理,Linux虚拟内存管理 - Page Table的作用
ElemeFe
转载
关注
0点赞·90人阅读
虚拟内存的作用:
1. 扩展实际有限的物理内存,当然这种扩展是虚拟的,比如物理内存512M,对于一个需要1G空间的进程来说,照样可以运行。这增加了 *** 作系统是应用范围。
2. 使得进程中的数据空间增大,增大到多少与硬件有关,对于一个32位的芯片,进程中的数据空间可以为4G[2^32],对于64位的芯片则支持2^64大小 的空间。这一点使得进程自身可 *** 作的空间大大增加。
通俗来讲,虚拟内存的管理的核心是解决如何在小的物理内存中运行更大程序的问题。
在Linux中,解决这个问题的关键是一个叫做page table[PT页面转换表]的结构。Linux把物理内存分为了固定统一大小的块,称为page[页],一般为4KB,并且每个页都有一个编号 [page frame number]。这样一个512M大小的内存将包括128K个页。这种方式称为paging,使得 *** 作系统对内存的管理更方便。page table的作用就是将进程 *** 作的地址[虚拟地址]转换成物理地址。
其原理很简单,如下:
用一个32位芯片的系统为例[64位同理],运行的每个进程的可 *** 作数据空间为2^32,即2^20个页,设其物理内存为512M,则物理页有 2^17个,现在就说明如何将2^20个页放入2^17个页中运行。我们把进程 *** 作的地址分为两部分,第一部分为地址的高20位,第二部分为后12位,这 样很容易将第一部分理解为虚拟页标号,第二部分理解为在页中的offset。那么现在我们只需将虚拟页标号对应到物理页号即可,这个对应就是page table的工作,在这个例子中page table包括了2^20个记录,每个记录有两部分组成:20位的虚拟标号和17位的物理标号,这样CPU用进程地址的第一部分作为索引找到对应的17位 物理标号,与地址的第二部分一起便组成一个29位的地址,这个地址就是要找的物理地址。因为物理页少于虚拟页,所以page table中的有些记录的后17位是空的或无效的。
利用这个方法,使得运行的进程无需知道自己 *** 作的地址是虚拟的,和运行在一个真实的大物理内存中效果是一样的。
可以看出,在进程的运行过程中,page table必须一直保存在内存中,在上面的例子中,我们把虚拟地址分了2层,page table有2^20个记录,需要1M左右的空间,为了节省空间我们可以将地址分为3层,第一层10位,需要1K左右的空间,第二层10位,需要1K左右 的空间,第三层12位,这样在一段时间内只需要2K的空间保存page table。实际上,Alpha的芯片采用的就是这种3层的分法,Intel的芯片采用的2层的分法。
不同的发行版本具体要求不同。而且,还牵涉到是否安装图形化界面的问题。但是有几点要注意。1,纯粹的命令模式对于内存的要求要比图形化的少。
2,现在的电脑配置已经能完全适应各种系统的安装了,其中也包括了linux。
3,如果你确实想要尝试linux,那建议内存在512M到1G之间。多了更好。
4,虚拟机本身也是一个软件,它运行时也是要有内存需求的。而且,大多数人的习惯,往往不会仅仅只是使用某一个软件。比如说,一边用虚拟机安装使用linux,一边在真实的物理主机上上网,逛淘宝。而且有些东西往往是开机就运行的。例如,用户安装的杀毒软件。这些东西定要占用系统内存。所以,你的电脑如果内存实在太低的话,那就有点痛苦了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)