タグ

linuxとpthreadに関するembeddedのブックマーク (6)

  • スレッドローカルストレージ(TLS) - Linuxの備忘録とか・・・(目次へ)

    スレッドはグローバルは変数は共有しますが、マルチスレッドアプリケーションにおいて、スレッド固有のデータを保持したい場合があります。それを実現するのが、スレッドローカルストレージ(TLS)です。 func()を2つのスレッドとして作成します。そこでは、__thread int aとint bをインクリメントした値を表示しています。最初のスレッドではa = 1 b=1、次のスレッドではa = 1 b=2となっています。int aとしたならa=2なるところです。すなわち__thread int aはスレッド固有の変数というわけです。 #include <stdio.h> #include <pthread.h> __thread int a = 0; int b = 0; void *func(void *arg) { a++; b++; printf("a = %d b=%d\n", a, b

    embedded
    embedded 2012/12/01
    TLSのgcc, linuxのx86での実装について。
  • マルチスレッドのコンテキスト切り替えに伴うコスト - naoyaのはてなダイアリー

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

    マルチスレッドのコンテキスト切り替えに伴うコスト - naoyaのはてなダイアリー
  • Implementing a Thread Library on Linux (evanjones.ca)

    Figure 1: Linux System Process List Threads Inter-process communication is simple and easy to use when it is used occasionally. However, if there are many processes and many resources to be shared between them, the model quickly becomes cumbersome. Threads were created to make this sort of resource sharing simple and efficient. The concept is that a single process can have a number of threads, and

    embedded
    embedded 2007/01/30
    pthreadではないがシンプルなスレッド実装
  • MagicPoint presentation foils

    embedded
    embedded 2007/01/26
    少し古い
  • ITmedia エンタープライズ:Native POSIX Thread Library for Linux

    特集 2003/06/27 00:48 更新 UNIX USER 2003年7月号特別企画より転載 Native POSIX Thread Library for Linux 新しいスレッドライブラリ「Native POSIX Thread Library for Linux」について、Red HatのUlrich DrepperとIngo Molnarが発表した論文の内容を簡単に紹介する。 今日、標準的に使われているLinuxスレッドの背後にある考え方は、「プロセス間のコンテクスト切り替えが、1つのカーネルスレッドで各ユーザースレッドを扱うのに十分なほど高速である」というものだ。スレッドレジスタは使用せず、局所的なメモリはスタック上に置かれる。 また、シグナルやそのほかの管理を正しく行うためには、管理スレッドが必要となる。カーネル内に利用できる同期プリミティブが存在しないため、実装にはシ

  • The Native POSIX Thread Library for Linux

    D r a f t The Native POSIX Thread Library for Linux Ulrich Drepper Red Hat, Inc. drepper@redhat.com Ingo Molnar Red Hat, Inc. mingo@redhat.com February 21, 2005 This document is completely, utterly out of date when it comes to descriptions of the limitations of the current implementation. Everybody referring to this document to document shortcomings of NPTL is either a moron who hasn’t done her/hi

  • 1