全球旧事资料 分类
最近看了很多关于内存管理的资料,总结异同,记录下近期学习的心得,以后,可能没这么多时间写心得了。1基本概念11物理内存在Li
ux011内核中,为了有效的使用机器中的物理内存,在系统初始化阶段内存被划分成为几个功能区域,如下图:
其中,Li
ux内核程序占据在物理内存的开始部分,接下来是供硬盘或软盘等块设备使用的高速缓冲部分(其中要扣除显卡内存和ROMBIOS所占用的内存地址范围640K1MB)。当一个进程需要读取块设备中的数据时,系统会首先把数据读到高速缓冲区中;当有数据需要用到块设备上去时,系统也是先将数据放到高速缓冲区中,然后由块设备驱动程序写到相应的设备上。内存的最后部分是供所以程序可以随时申请和使用的主内存区。内核程序在使用主内存区是,也同样首先要向内核内存管理模块提出申请,并在申请成功后方能使用。对于含有RAM虚拟盘的系统,主内存区头部还要划去一部分,供虚拟盘存放数据。12内存寻址内存是指一组有序字节组成的数组,每个字节有唯一的内存地址。内存地址则是指对存储在内存中的某个指定数据对象的地址进行定位。数据对象是指存储在内存中的一个指定数据类型的数值或字符串。80X86支持多种数据类型:1字节、2字节(1个字)、或4字节(双字或长字)的无符号整型数或带符号整型数,以及多字节字符串等。对于80X86CPU来说,其地址总线宽度为32位,因此可寻址的地址空间范围是02324GB的物理内存,这是就产生一个冲突,我们实际上使用的物理内存一般没有4GB这么大阿,怎么办,于是就引入了一个关键的技术:内存管理(MMU)。13地址转换过程中3个特殊地址的概念虚拟地址VAVirtualAddress是指由程序产生的由段选择符和段内偏移地址两个部分组成的地址。因为这两部分组成的地址并没有直接用来访问物理内存,而是需要通过分段地址变换机制处理或映射后才对应到物理内存地址上,因此这种地址被称为虚拟地址。VA空间由GDTGlobalDescriptorTable映射的全局地址空间和由LDTLocalDescriptorTable映射的局部地址空间组成。选择符的索引部分由13个bit
f表示加上区分GDT和LDT的1个比特位TI低2个bit为RPLRequestor’sPrivilegeLevel因此I
tel,80X86CPU共可以索引21416384个选择符。若每段的长度都取最大值4G,则最大虚拟地址空间范围是163844G64T。逻辑地址LogicalAddress是指由程序产生的与段相关的偏移地址部分,即程序员编程所用的地址以及CPU通过指令访问主存时所产生的地址。用多道程序设计技术后,往往在主存r
好听全球资料 返回顶部