AIX 5L 上的共享库内存占用
2008-11-10 08:28:28 来源:WEB开发网核心提示: 现在,如您所知,AIX 5L 上的共享库内存占用(2),任何操作系统都可能同时运行数百个程序,即使其中每个系统都能访问 4GB 的内存范围,HP-UX® 将地址空间划分为 4 个象限(quadrants),如果使用 chatr 命令并采用 +q3p enable 和 +q4p en
现在,如您所知,任何操作系统都可能同时运行数百个程序。即使其中每个系统都能访问 4GB 的内存范围,这并不表示它们各自拥有 4GB 的物理内存分配。这是不切实际的。实际上,操作系统在适量物理内存和文件系统中被指定为交换(或分页)空间的区域之间实现了非常复杂的代码和数据交换方案。而且,虽然每个进程能够访问 4GB 的内存空间,但其中大部分空间都不会被使用。因此,操作系统仅为每个特定进程加载或交换所需数量的代码和数据。
图 1. 虚拟内存的概念图
该机制通常称为虚拟内存和虚拟地址空间。
在可执行文件运行时,操作系统的虚拟内存管理器查看文件包含的代码和数据,并决定将其中哪些部分加载到内存或交换空间中,或从文件系统引用。同时,虚拟内存管理器建立一些结构以将物理位置映射到 4GB 范围内的虚拟位置。其中 4GB 范围表示进程的最大理论范围(有时包括用于表示它的 VMM 结构),被称为进程的虚拟地址空间。
在 AIX 上,将 4GB 虚拟地址空间划分为 16 个 256MB 的段。这些段具有预定的功能,下面对其中一些段进行说明:
段 0 预留给内核相关数据。
段 1 预留给代码。
段 2 预留给堆栈和动态内存分配。
段 3 预留给内存映射文件,即 mmap。
段 d 预留给共享库代码。
段 f 预留给共享库数据。
与之相比,HP-UX® 将地址空间划分为 4 个象限(quadrants)。如果使用 chatr 命令并采用 +q3p enable 和 +q4p enable 选项进行指定,则象限 3 和象限 4 可用于共享库映射。
更多精彩
赞助商链接