タグ

linux-develに関するt-bucchiのブックマーク (7)

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

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

    マルチスレッドのコンテキスト切り替えに伴うコスト - naoyaのはてなダイアリー
    t-bucchi
    t-bucchi 2008/05/21
    cloneとforkによる動作の違いをわかりやすく説明。
  • Linux PCMCIA プログラマの手引き: カードサービス関数解説

    t-bucchi
    t-bucchi 2008/03/28
    Linuxでカードサービスを使う方法
  • CRS-wiki TOP - CRS Wiki

    *1 といってもTOPPERS JSPカーネルでは定義されていないみたいですが。。。 *2 #仕様書では高度な同期通信が先に来ますが、スタンダードプロファイルではサポートしなくても良いので、飛ばして、後にします *3 普通は、企業という集団でみているけれども、自分たちが属している集団が経済効率よく・他の集団よりもより優れた問題解決をしていくといった観点で見たい。だから、企業ではなく、集団としました。 Link: LinuxDriverへの道18?(6d) 練習用ページ(133d) wikiとは?(175d) ビジモテなギークへの道(324d) リンク(356d) ビジモテなギークへの道4(398d) umeへのコメント(421d) ビジモテギークへの道---会計概論編(425d) ビジモテギークへの道---経済学概論編(425d) ビジモテなギークへの道2(456d) ビジモテなギークへの

    t-bucchi
    t-bucchi 2008/03/28
    Linuxドライバ入門がかかれてます。タスクレットなどもあり結構参考になる
  • Omicron Linux/ユーティリティ関数

    Linux リスト関数カーネル内外を問わず,リスト操作はよく利用される.Linux カーネルでは,車輪の再発明を防ぐために,2.1 から次に示すようなリスト関数(マクロ)が実装された. 双方向リンクリストを操作するための,list_head 構造体とエントリの追加,削除操作を行う関数,リストをトラバースするマクロが提供されている.また,list_head 構造体と同じく,双方向リンクリストだが,ヘッダだけが片方向リストになっている hlist_head 構造体も用意されている. 初期化 通常は, struct list_head list; INIT_LIST_HEAD(&list); 次のような宣言と定義が一緒になった書き方も可能.static 変数の定義によく見られる. LIST_HEAD(list) エントリの追加/削除など void list_add(struct list_hea

    t-bucchi
    t-bucchi 2008/03/28
    LIST系のマクロの説明
  • WritingPortableDrivers - Kernel Newbies Japan

    移植性の高いデバイスドライバの書き方 原文: WritingPortableDrivers この記事は、Linux Journal Embeddedに掲載された Writing Portable Device Drivers を元に、原著者であるGreg Kroah-Hartmanが このサイトに投稿したものです。 このサイトの他のページ同様、ご自由にこのページを更新してください。 Linuxカーネルデバイスドライバのほとんどが、一種類以上のプロセッサ上で動作 します。これはデバイスドライバの開発者がいくつかのルールを忠実に守るから こそできることです。そのルールには、適切な型の変数を使用すること、特定の メモリページサイズに依存しないこと、外部とのデータのやりとりでエンディアン の問題に気を付けること、適切にデータのアラインメントを合わせること、そして 適切なインタフェイスを介してデバイ

    t-bucchi
    t-bucchi 2008/03/28
    ドライバの書き方 Greg-KH 著のものの日本語訳
  • 更新履歴兼雑記Dwarf2FS

    RubyFS が微妙に好評だったみたいですが次は JavaFS とかじゃなくて Dwarf2FS です。デバッグ情報をファイルのように眺めよう。ゆくゆくは ptrace のインターフェースとか備えて DebuggerFS になるのです。 例のごとくデモとか。実行ファイルからソースコードが見えてるかのよう。 http://shinh.skr.jp/ttyplay/dwarf2fs.html 種々の事情 (めんどいとか libdwarf めんどいとか) で実装は Ruby FUSE と readelf です。 http://shinh.skr.jp/koneta/dwarf2fs.rb

    更新履歴兼雑記Dwarf2FS
    t-bucchi
    t-bucchi 2008/03/28
    デバッグ情報Dwarf2をファイルシステムとしてマウント
  • DSAS開発者の部屋:オープンソースを楽しむエンジニア達のこだわり 〜 デバッグ情報を得る

    DWARF 情報全体の構造は上記のような tag で分別できる Die をノードから成る 木構造で表現できます。 . |-- DW_TAG_compile_unit | |-- DW_TAG_base_type | |-- DW_TAG_pointer_type | | ... | |-- DW_TAG_compile_unit | |-- DW_TAG_base_type | | ... | |-- DW_TAG_pointer_type | |-- DW_TAG_subprogram | | |-- DW_TAG_formal_parameter | | |-- DW_TAG_formal_parameter | | `-- DW_TAG_formal_parameter | |-- DW_TAG_variable | | ... | `-- DW_TAG_compile_unit |

    DSAS開発者の部屋:オープンソースを楽しむエンジニア達のこだわり 〜 デバッグ情報を得る
    t-bucchi
    t-bucchi 2008/03/28
    libdwarfの簡単な使い方
  • 1