8

ライブラリの初期化中にのみ使用される ELF 共有ライブラリに多くのコードがあります (静的初期化子から呼び出されます)。このコードを独自のセクションに入れる場合 (または、.init セクションに入れることもできます)、__attribute__((section(".mysection")))ライブラリをロードした後にこのセクションを強制的にページアウトする方法はありますか?

この質問は関連していますが、メモリが不足するとカーネルが未使用のページをページアウトするという結論が得られたため、明示的に行う必要はありません。ただし、メモリが貴重であり、ディスク (低速の USB フラッシュ ドライブ) からのコードのページングのコストが高い組み込み環境で作業しています。したがって、カーネルが最終的にページインする必要があるかもしれない他のコードをフラッシュすることを決定するのではなく、二度と使用されないことがわかっているこのコードを明示的にフラッシュしたいと思います。

カーネルにメモリの特定の領域をページインまたはページアウトするように要求するシステムコールについて読んだことを覚えていると思いますが、これへの参照はどこにも見つからないので、想像したのかもしれません。そのようなものは存在しますか?

4

1 に答える 1

2

elf オーバーレイに関するドキュメントを探してください。初期化用のオーバーレイと処理用のオーバーレイがあるように、コードを配置します。シャットダウンのオーバーレイを確認することもできます。次のオーバーレイが呼び出されたときに、オーバーレイ内のコードを置き換える必要があります。

于 2010-06-02T22:55:12.613 に答える