議論/プロセス間通信/2003_11_09


Top / 議論 / プロセス間通信 / 2003_11_09

メモ

現段階での実装の現実解をさぐる(2003/11/09 ひげぽん)

Monaでメッセージに使えそうなもの

目指すべきもの

直近でメッセージング機構を必要とするもの


実験実装検討

未整理・未消化

map, unmap, lock, unlock, wakeup, new システムコール
レジスタ渡し

検討1 (2003/11/10)

検討2 (2003/11/15)

  1. 送信元プロセスはメッセージを送信する
  2. メッセージはメッセージサーバーが受信しサーバー内に蓄えられる。
  3. 全てのプロセスはメッセージサーバーからメッセージを受信しなければならない
  4. 全てのプロセスがメッセージを受信完了した時点でサーバー内からメッセージが削除される。
  5. 各プロセスはメインスレッド以外に必ずメッセージ受信スレッドを持っている。
  6. このメッセージ受信スレッドがメッセージを受信し、メッセージに応じた処理を行う。自分が所属するプロセスに関連のないメッセージであれば受信後破棄するだけである

メッセージ

typedef struct {
  dword header;
  dword arg1;
  dword arg2;
  dword arg3;
} msg;

ユーザーモードでのキー入力受信イメージ

main() {
    char c = getchar();
    printf("key=%c", c);
}

コメント

  1. 受信スレッドは同期のためとめられている可能性がある
  2. ブロードキャスト前提は無理がある。
  3. メッセージは受信スレッド毎にコピーを作ってやれば問題ない

MENU

now: 1

リンク


最新の20件
2018-05-03 2017-09-29 2017-04-25 2017-01-10 2016-12-11 2016-10-04 2016-08-14 2016-06-05 2016-05-29 2016-04-15 2015-12-28 2013-02-25 2013-02-21 2013-02-20 2013-02-12 2013-02-11 2013-02-10
最新の20件
2010-02-01 2010-01-31 2010-01-30 2010-01-29 2010-01-16

Counter: 2709, today: 1, yesterday: 1

リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS

Last-modified: 2008-03-28 (金) 15:48:02 (3761d);  Modified by mona
PukiWiki 1.4.6 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji
Powered by PHP 5.2.17
HTML convert time to 0.047 sec.