【问题标题】:Could position independent code save memory space?位置无关代码可以节省内存空间吗?
【发布时间】:2014-05-13 23:41:50
【问题描述】:

据我了解,Position-independent 代码可以节省磁盘空间,因为它不会在编译时加载库,并且可以降低启动成本,因为它只会在需要运行时加载库代码。因此,由于每个使用相同lib函数的进程都会将其加载到其地址空间中,这种方法如何节省内存?

【问题讨论】:

    标签: operating-system dynamic-linking


    【解决方案1】:

    假设我有一个共享库,其格式可以在我使用的任何系统上工作。该共享库与位置无关。

    作为PIC,它可以映射到虚拟地址空间的任何地方。

    如果我有 10 个进程同时使用该共享库,则物理内存中可以有一个副本,其中多个虚拟地址映射到相同的物理地址。

    如果代码不是 PIC,它需要加载程序在运行时对库进行修复。这些修复不能跨进程共享,需要内存中的多个代码副本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-24
      • 1970-01-01
      • 2023-02-04
      • 2015-06-10
      相关资源
      最近更新 更多