プロセスをフォークする前に十分な量のメモリをプログラムにあらかじめ割り当てておき、フォークされたプロセスでこのプールからさらにメモリを割り当て/使用したいと思います。私は、Bget、Boostなどのメモリアロケータをいくつか見てきましたが、それらを使用する方法を理解することはできません。メモリを事前に割り当てて、フォークされたプロセスで使用します。
私はフォークプロセスの使用に続いて
poolhandle = poolallocate(POOL_SIZE)
よう
PTR = allocatefromPool(poolhandle、no_of_bytes)のようなものを使用することができますそこに最も簡単な1があります
このポインタをある種のIPCを介して別のプロセスに渡すと、そのプロセスでもこのポインタにアクセスできるはずです。
正しい方向に向けることができますか? Boostが行く方法なら、あなたは私にそれを使う方法の例を教えてくれますか?
こんにちはMichael、これらの入力をいただきありがとうございます。メモリマップされたファイルは私が知っている一つのオプションですが、簡単に利用できるシンプルなアロケータを使うか、ヒープ/メモリマネージャのいくつかの並べ替えを自分で書くことは私のタスクの必要条件です。むしろ利用可能なオプションを最初に調べて、それが要件を満たしているかどうかを確認したいと思います。メモリマップされたファイル、すなわちmmapは、システムコールのカップルを含むので遅くなる可能性がありますか?(申し訳ありませんが、これを検証していません) – lucent
一般的でシンプルなヒープマネージャ/メモリアロケータ/使うことができます ?また、ブーストは実際にメモリを事前に割り当てるわけではありませんか?基本的には、私はあらかじめ大量のメモリを割り当ててから、自分の構造体、配列、int、chars..etcデータ構造体を割り当てます。また、これらのポインタを別の(フォークされた)プロセスに渡すと、そのプロセスはそのメモリにアクセスできるはずです。 – lucent