SUNEO/007.まだ投げない


Top / SUNEO / 007.まだ投げない

ここは何か。 byEDS1275

ここはどう進めていくか。なぜそうしたかのメモを書くので、アドバイスがあればコメントをよろしくおねがいします。 (ま、いままでと変わらんですよ)

まあ、TCPの本でも読んでもちつけ。 まずは計画を練るのである。

コメント

最新の1000件を表示しています。 コメントページを参照

お名前:
  • 全然関係ないですが最近Web界隈ではepoll/kqueueなどを利用した非同期I/O多重化がホットな話題のようです。 -- ひげぽん 2006-11-21 (火) 23:56:49
    • kqueueとかぐぐってみました。恥ずかしながら、80番使うユーザーがマルチスレッド化されている場合、OS側(monaの場合サーバ)がどうなるべきなのか想像ができません....カーネルスレッドが1対1とかで立つのかなあ。 -- EDS1275 2006-11-22 (水) 00:12:50
    • OS側は常に割り込み通知でパケット到着を知るので1スレッドで複数のユーザースレッドを面倒見れそうな気がしますね。サーバーは割り込み通知が来たらパケットの内容を見て、自分が管理しているテーブルから通知すべきスレッドIDをとりだしメッセージで送るみたいな感じで。 -- ひげぽん 2006-11-22 (水) 00:17:54
    • スレをぼこぼこ増やさない方針で良さそうってことですね。しかしユーザーがI/O多重化してくれても効率よい処理をしてあげる自信はないですw  というかそもそもselectを使ってみたことがないコトに気がついた! 勉強します。 -- EDS1275 2006-11-22 (水) 00:30:31
      • 僕も最近まで知らなかったです>select -- ひげぽん 2006-11-22 (水) 14:04:29
  • がんばれがんばれ<コンフリクト! -- ひげぽん 2006-11-21 (火) 00:11:19
  • 矢印が逆だったorz -- EDS1275 2006-11-07 (火) 00:01:17
    • 図を描くのよさげですねぇ。 -- ひげぽん 2006-11-07 (火) 22:27:28
      • そうなんです、図にしてみると考えが整理できますね。しかしブロッキングをどうするかまだ決めかねています。スレが多すぎるのも抵抗あるんですけど、スレを減らしてメッセージ機構のところでブロッキングを作ると、「コネクション毎の双方向ストリーム」的な考えからちょっとはずれるので、美しくないような気もしてます。 -- EDS1275 2006-11-08 (水) 02:38:41
      • 違和感の源は、ストリームを駆動する機構まで含めてストリームと考えるか、単なるバッファと考えるかの違いかな。 -- EDS1275 2006-11-08 (水) 02:43:51
  • すごい。ラッパーでくるめばいいということに気がつきませんでした。ありがとうございます。確かに昨日ねる前はご教授いただいたようなメンバー関数のコールバックを想定していたのですが、その私の設計意図自体があんまりよろしくないのではないかと思いはじめてしまいました。コールバック関数内でthis->hoge()とするとどうなるかとか、もう少し調べてみます。 -- EDS1275 2006-10-23 (月) 07:49:44
    • staticにした時点でthisが失われるので、`this' is unavailable for static member functionsとなります。今回の実装はカーネル内でスタックに引数を積まないで、fastcallでレジスタ渡しをしていますので、どうしても一回ラッパーを通すことになってしまいます。 -- Tino 2006-10-23 (月) 09:02:44
    • 他の環境、たとえばpthread_create()や_beginthreadex()でも、同じようにラッパーを使うしか方法がなかったと思います。違うところといえば、コールバック関数の呼び出し規約でしょうか。pthread_create()はcdecl、_beginthreadex()はstdcall、syscall_mthread_create_with_arg()はfastcallという感じです。 -- Tino 2006-10-23 (月) 09:16:04
    • 丁寧な解説ありがとうございます。朝はMonaForms/delegateで解説なさっておられた正規の書式を想定し、tcp_timer.*funcを渡せばインスタンスメンバが渡せるかと思ったのですが、無理なようです。正規の書式はあの書式自体がstaticなラッパとして機能すると推測しました。(-Sをさくっと読めるほどの知識がないもので..推測です) -- EDS1275 2006-10-23 (月) 22:53:23
  • staticで逃げるというのはメンバ関数に直接コールバックすることを想定されていますか?syscall_mthread_create_with_arg()はfastcallを期待していますが、インスタンス関数はthiscallなので、互換性がありません。以下のように「遠回り(by ひげぽんさん)」する必要があります。 -- Tino 2006-10-23 (月) 07:23:43
    // 関係ない部分は省略
    class TimeKeeper{
    public:
      static void __fastcall ThreadMainWrapper(void* t);
      void ThreadMain();
    };
    void __fastcall TimeKeeper::ThreadMainWrapper(void* t)
    {
      ((TimeKeeper*)t)->ThreadMain();
    }
    // 呼び出し側
    dword id=syscall_mthread_create_with_arg(TimeKeeper::ThreadMainWrapper,&tcp_timer);
  • もちろん愛されているのでしょう(ぉ -- ひげぽん 2006-10-22 (日) 22:11:58
    • よかったw -- EDS1275 2006-10-22 (日) 22:31:00
  • 飛行機・新幹線・カフェあたりはかなり効果がありますよね。僕は毎週カフェプログラミングしていますよ。お薦めです。 -- ひげぽん 2006-10-21 (土) 09:52:46
    • 毎月会議室プログラミングはどうですか?(と言ってみるテスト -- Tino 2006-10-21 (土) 11:15:58
    • ども。公開ハック行きたかったんですけど、別件と重なってしまいましてレポートを読んで羨ましく思いました。白板とかでの議論は大好きですし、チャンスがあればぜひ。とか言いつつ今日も会社に。36協定なんて知らないしー -- EDS1275 2006-10-21 (土) 12:37:15
      • お気を遣って反応していただいてすみません。 -- Tino 2006-10-21 (土) 18:30:43
    • 僕はどうも週末に何か予定が入ると精神的につらくなるようです。(何。自由でいたいのかも。 -- ひげぽん 2006-10-21 (土) 18:08:17
      • 私は人と待ち合わせをするのが嫌いです。外に出るのも嫌い。理想は引き篭もっていたいのですが。。。 -- Tino 2006-10-21 (土) 18:32:09
  • pcommentにしてみますた。 -- EDS1275 2006-10-05 (木) 21:45:34
    • と思ったけど、ページ改名するときに困るかも。 -- 2006-10-05 (木) 21:46:44
    • テストというページをテスト2に改名しましたがコメントページもうまく改名されました。--ひげぽん
      • 管理者PASSWDを要求されますた。2006-10-05 (木) 21:56:35
      • メール送りますた。 -- ひげぽん
      • えっと、あの、いいんでしょうか.....ちなみに、SUNEO配下に移してリネームの必要が無いようにしてみました。 -- EDS1275 2006-10-05 (木) 22:34:21
      • 作業お疲れ様です。良いですよ。テストは消しますです。 -- ひげぽん 2006-10-05 (木) 22:46:31
  • ありがとうございます。なるほど<今の状態。混線ですか。そろそろIRQ共有の実装が必要なのかな。あともしも嫌いでなければ、このページのコメントをpcommentにしませんか? -- ひげぽん 2006-10-05 (木) 00:35:38
  • FileServerに割り込みがかかっているという点が気になりますね。なんだろうか。あと何となくftpが動いている気な雰囲気を感じるのですがvmwareなら簡単に体験できますか? -- ひげぽん 2006-10-04 (水) 09:44:48
    • 割り込みは「混線」状態なのかなとおもいました。VPCとVMWはIRQが違うから助かっているのかなと。
    • ftpについては紛らわしいこと書いてすみませんでした。TCPがスカスカなのでまだ駄目です。LISTが取れたりはしますが、偶然動いちゃってるという域を出ません。あと、VPCで動かすと相手を変なステータスで放置したりするので、もし試される場合はご注意を。

MENU

now: 2

リンク


最新の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: 6475, today: 2, yesterday: 0

添付ファイル: file3thread.PNG 615件 [詳細] filediagram.PNG 708件 [詳細] filestructure.PNG 675件 [詳細]

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

Last-modified: 2008-03-28 (金) 15:47:59 (3794d);  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.098 sec.