前言:
此篇博客内容在于着重帮助读者明白在分页内存管理下,虚拟地址和物理地址转换计算是怎么进行的。
有关分页内存管理的其他知识请事先参阅有关资料。^_^
一、在计算之前需要了解如下知识:
1.对每个程序而言,就好像自己独占了内存空间从0到极限的计算机。
虚拟地址都是以0开始到某个上限结束。这是因为某个程序在何种硬件设备的机器上运行并不能事先确定(因为写出来的程序一般都会在很多计算机上运行,而每台计算机的内存占用情况事先肯定无法知晓),操作系统自然不可能对症下药地发出对于某
台机器的物理主存地址。因此,指令里面的地址是程序空间(虚拟空间)的虚拟地址(程序地址)。所以当 程序真正运行起来的时候,每个虚拟地址必然要对应着一个物理地址(实际存在)。既然要对应,那就比如存在某种对应机制。
2.分页内存管理机制将虚拟内存和物理内存都分成大小一样大的部分,我们称为页,然后按页进行内存分配.
一般页的大小有4KB、8KB、16KB。在该管理机制下内存分配单位化而且不需要空闲连续在一起即可使用
(比如第四页和第8页都空闲则可以组合起来给一个程序使用,但在分页内存管理发明之前是不可以的,因
为两段空间不连续,至于为什么~~~~~~此处不予解释,需要了解的同学可以