Native POSIX Thread Libraryとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > Native POSIX Thread Libraryの意味・解説 

Native POSIX Thread Library

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/11/19 06:53 UTC 版)

ナビゲーションに移動 検索に移動

Native POSIX Thread LibraryNPTL)とは、POSIXスレッドを使ったプログラムをLinuxカーネル上で効率的に動作可能とするソフトウェア機能である。

評価結果によると、IA-32上で2秒間で10万スレッドを起動できる。同じ事を NPTL を使わないで行うと、約15分かかった[1][2]

歴史

Linuxカーネル 2.4 以前では、プロセスがスケジュール対象であり、スレッドはカーネルでは扱われていなかった。しかし、2.6 で clone() システムコールがサポートされ、アドレス空間を共有したプロセスのコピーを作成できるようになった。LinuxThreadsプロジェクトはこのシステムコールを使って、カーネルレベルのスレッドをサポートした(それ以前のLinuxでは、POSIXスレッドはユーザーランドで実装されていた)。しかし、POSIXに完全準拠するには問題が多く、特にシグナル制御、スケジューリング、プロセス間同期プリミティブに問題があった。

LinuxThreads の改善には、カーネルサポートとスレッドライブラリの書き換えが必要であることは明らかであった。この要求を満たすべく、2つの競合するプロジェクトが開始された。NGPT(Next Generation POSIX Threads)はIBMを中心とするチームが行い、NPTL はレッドハットが行った。NGPT は2003年中ごろに中止となり、同じころ NPTL がリリースされた。

NPTL は Red Hat Linux 9 で最初にリリースされた。従来の Linux でのPOSIXスレッドは、プロセッサが空いていても使えないことがあり、Windows の方が実装としては優れているとされていた。レッドハットは NPTL がこの問題を解決したとJavaに関するウェブサイトの記事で主張した。

NPTL は Red Hat Enterprise Linux のバージョン3から搭載され、現在では GNU Cライブラリの一部となっている。

設計

NPTL では、カーネルには依然としてプロセスをスケジューリング対象としているように見せ、スレッドを clone() システムコールで生成する(NPTLライブラリから呼び出す)。ただし、カーネルサポートが必要な同期プリミティブなどを新たに追加している。このプリミティブを futex と呼ぶ。

NPTL は、いわゆる 1×1 スレッドライブラリであり、ユーザーが pthread_create() で生成するスレッドは全てカーネル内のプロセスに対応している。これはスレッド実装としては最も単純である。

NPTL の 1×1 モデル以外に、m×n モデルがあり、その場合はユーザーランドのスレッド数がカーネル内でスケジュール対象となるスレッド数よりも多くなる。この場合、スレッドライブラリがユーザースレッドのスケジューリングを行う。スレッド間のコンテキストスイッチが非常に高速になるが、ユーザーランドとカーネルの二段階でスケジュールを管理することで複雑さが増し、優先順位の逆転も起きやすくなる。

関連項目

脚注

  1. ^ Introducing the 2.6 Kernel LINUX Journal、2003年5月1日
  2. ^ The Native POSIX Thread Library for Linux Red Hat, Inc. 2005年2月21日

外部リンク




英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Native POSIX Thread Library」の関連用語

Native POSIX Thread Libraryのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Native POSIX Thread Libraryのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのNative POSIX Thread Library (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS