質問

私はプロセス間の超高容量のメッセージ配信のためのマルチスレッドの共有メモリメッセージングシステムを書くことにするつもりです。メッセージは、Webサーバーのワーカースレッドから発信されます。私は、同じCPUシェア上のコアCPUのキャッシュの局所性を利用したいと思います。私はこのIPCシステムの受信側のワーカースレッドを覚ますとき、私は同じCPU上でスレッドを覚ますようにします。

言ったスレッドのコンテキストから - - 使用して

私は、Linux(genaralでprefferably POSIX)とWindows APIの呼び出しと私は、私は、実行中のスレッドIDを分類できるようになる情報を抽出するために必要bitmaskingのために必要次のstructます:

struct thread_core_id
{
    uint16_t cpu_Id;
    uint16_t core_Id;
};

両方のプラットフォームのための機能が大幅に理解されるであろう。私は、これはシステムコールなしで行うことができます願っています - 。すなわち、コンテキスト・スイッチを

- 編集 -

私は、現時点でのx86に焦点を当てたんだけど、他のアーキテクチャも同様に有用であろう。

役に立ちましたか?

解決

Linuxの場合、具体的には、あなた/proc/cpuinfo/sys/devices/system/cpu/cpu*/cacheのうち、必要な情報を取得し、sched_{s|g}etaffinity()呼び出しでそれを使用することができるはずです。すべてのプログラマが知っておくべき何noreferrer">

scroll top