- AがBにメッセージ送信する関数をコール
- Aの空間からカーネル空間にメッセージコピー [カ]
- Bがメッセージ受信する関数をコール
- カーネル空間からBの空間にメッセージコピー[カ]
コピー2回
- AがBにメッセージ送信する関数をコール
- Aの空間をreadonlyでBの空間にマッピングする[カ]
- Bが受信する関数をコール
- Bがその空間に書き込みをする
- マッピングを解除し、Bの空間にコピーする。[カ]
読み込みだけならコピー0回。
書き込むならコピー1回
後者を実現するためには、
簡単にマッピングできるインターフェース
簡単にコピーできるインターフェースが必要
現在、存在するSharedMemoryの仕組みを使えば出来そうだ。