8

我在 ELF 共享库中有很多代码,这些代码仅在库初始化期间使用(它从静态初始化程序中调用)。如果我把这段代码放在它自己的部分(或者它可以放在 .init 部分),我可以使用__attribute__((section(".mysection"))),有没有办法在库加载后强制这个部分被分页?

这个问题是相关的,但结论是内核会在内存不足时分页出未使用的页面,因此无需明确这样做。但是,我在嵌入式环境中工作,内存非常宝贵,从磁盘(慢速 USB 闪存驱动器)中分页代码的成本很高。因此,我宁愿明确地刷新这段代码,我知道它永远不会再次被使用,而不是让内核可能决定刷新一些最终可能需要重新分页的其他代码。

我确定我记得读过有关系统调用要求内核分页或分页某些内存区域的信息,尽管我在任何地方都找不到对此的任何引用,所以也许是我想象的。这样的事情存在吗?

4

1 回答 1

2

查找有关精灵覆盖的文档。安排您的代码,以便您有一个覆盖用于初始化,另一个用于处理。您可能还想查看关闭覆盖。当调用下一个叠加层时,应替换叠加层中的代码。

于 2010-06-02T22:55:12.613 回答