ブックマーク / naoya-2.hatenadiary.org (3)

  • マルチスレッドのコンテキスト切り替えに伴うコスト - naoyaのはてなダイアリー

    また Linux カーネルの話です。 Linux では fork によるマルチプロセスと、pthread によるマルチスレッドでの並行処理を比較した場合、後者の方がコストが低く高速と言われます。「スレッドはメモリ空間を共有するので、マルチプロセスとは異なりコンテキストスイッチ時にメモリ空間の切り替えを省略できる。切り替えに伴うオーバーヘッドが少ない。」というのが FAQ の答えかと思います。 が「オーバーヘッドが少ない」と一言にいわれても具体的にどういうことなのかがイメージできません。そこで Linux のスレッド周りの実装を見て見ようじゃないか、というのが今回のテーマです。 3分でわかる(?) マルチプロセスとマルチスレッド まずはうんちく。マルチプロセスとマルチスレッドの違いの図。以前に社内で勉強会をしたときに作った資料にちょうど良いのがあったので掲載します。Pthreadsプログラミ

    マルチスレッドのコンテキスト切り替えに伴うコスト - naoyaのはてなダイアリー
    zakie
    zakie 2007/10/13
  • Linux カーネルのコンテキストスイッチ処理を読み解く - naoyaのはてなダイアリー

    Linux カーネルのプロセススケジューラの核である kernel/sched.c の schedule() を読み進めていくと、タスク切り替え(実行コンテキスト切り替え)はその名も context_switch() という関数に集約されていることが分かります。2.6.20 の kernel/sched.c だと以下のコードです。 1839 static inline struct task_struct * 1840 context_switch(struct rq *rq, struct task_struct *prev, 1841 struct task_struct *next) 1842 { 1843 struct mm_struct *mm = next->mm; 1844 struct mm_struct *oldmm = prev->active_mm; 1845 184

    Linux カーネルのコンテキストスイッチ処理を読み解く - naoyaのはてなダイアリー
    zakie
    zakie 2007/09/26
  • naoyaのはてなダイアリー - 似たようなことをやってるけど実は違うことをやってる人たち

    梅田さんより10歳前後若いブロガーたちが急激な変化を予想する一方、44歳の梅田さんは一貫して、「変化は起きるが、みんなが思っているほど急激ではないだろう」という立場で語った。 僕もこのイベントにはちょこっと顔を出してみました。 なんかパネラーの人たちがはてなブックマークの話をたくさんしてて、開発者がここにいるって言うのに開発者そっちのけで色々話してて、まあ最後に開発者から一言とかで呼ばれるだろうと思ったらそんなこともなくって。おまえらいい加減にしろと憤慨しました。いや、冗談です。 個人的には第二部の SNS の話で id:umedamochio にいじられる山岸さんが面白くてしょうがなかったんですが、ここは敢えて第一部の話に触れてみよう。 この ITmedia の記事の冒頭の一文にあるように、「ネットがマスメディアを飲み込むんだ」という見方に対して梅田さんが「いやいや、そんなに簡単にはいか

    naoyaのはてなダイアリー - 似たようなことをやってるけど実は違うことをやってる人たち
    zakie
    zakie 2006/02/10
    読んだ
  • 1