WEB开发网
开发学院操作系统Linux/Unix AIX 5L 上的共享库内存占用 阅读

AIX 5L 上的共享库内存占用

 2008-11-10 08:28:28 来源:WEB开发网   
核心提示: 请注意,每个进程每次都在相同的地址加载该库,AIX 5L 上的共享库内存占用(6),不要为库中的 .o 的构成列表感到困惑,在 AIX 上,Esid 表示有效段 ID (Effective Segment ID),是位于进程地址空间范围内的段 ID(仅仅是术语,您可以共享归档库(通常是 .

请注意,每个进程每次都在相同的地址加载该库。不要为库中的 .o 的构成列表感到困惑。在 AIX 上,您可以共享归档库(通常是 .a 文件)以及动态共享库(通常是 .so 文件)。这样做的目的是能够在链接时绑定符号,就像传统的归档链接,但不需要将构成对象(归档中的 .o 文件)复制到最终二进制映像中。但是,不执行动态(或运行时)符号解析,动态共享库(.so/.sl 文件)也是如此。

还要注意,libpthreads.a 代码部分(那些标记为 read/exec 的部分)被加载到段 0xd 中。如上所述,该段在 AIX 中被指定为预留给共享库代码。也就是说,内核将该共享库的可共享段加载到在同一内核上运行的所有进程所共享的区域。

您可能注意到数据部分也加载到同一段中:共享库段 0xf。但是,这并不表示每个进程也共享 libpthreads.a 的数据部分。这一点没有明确定义(这样的安排方式无法正常工作),因为不同的进程将需要在不同的时间维护不同的数据值。段 0xf 对于每个使用 libpthreads.a 的进程是独立的,即使虚拟内存地址相同也是如此。

svmon 命令可以显示进程在虚拟内存管理器中的段 ID (Vsid)。我们将看到共享库的代码段都具有相同的 Vsid,而共享库的数据段都具有不同的 Vsid。Esid 表示有效段 ID (Effective Segment ID),是位于进程地址空间范围内的段 ID(仅仅是术语,不要为此感到困惑)。

# svmon -P 17314
-------------------------------------------------------------------------------
   Pid Command     Inuse   Pin   Pgsp Virtual 64-bit Mthrd 16MB
  17314 dtexec      20245   9479    12  20292   N   N   N
  Vsid   Esid Type Description       PSize Inuse  Pin Pgsp Virtual
    0     0 work kernel segment        s 14361 9477  0 14361
  6c01b     d work shared library text     s  5739   0  9 5786
  19be6     f work shared library data     s   83   0  1  87
  21068     2 work process private       s   56   2  2  58
  18726     1 pers code,/dev/hd2:65814     s   5   0  -   -
  40c1     - pers /dev/hd4:2          s   1   0  -   -
#
# svmon -P 20428
-------------------------------------------------------------------------------
   Pid Command     Inuse   Pin   Pgsp Virtual 64-bit Mthrd 16MB
  20428 dtlogin     20248   9479    23  20278   N   N   N
  Vsid   Esid Type Description       PSize Inuse  Pin Pgsp Virtual
    0     0 work kernel segment        s 14361 9477  0 14361
  6c01b     d work shared library text     s  5735   0  9 5782
  7869e     2 work process private       s   84   2  10  94
          parent=786be
  590b6     f work shared library data     s   37   0  4  41
          parent=7531d
  6c19b     1 pers code,/dev/hd2:65670     s   29   0  -   -
  381ae     - pers /dev/hd9var:4157       s   1   0  -   -
  40c1     - pers /dev/hd4:2          s   1   0  -   -
  4c1b3     - pers /dev/hd9var:4158       s   0   0  -   -

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:AIX 共享 内存

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接