PTL - Portable Thread Library
警告: 現在のOSではマルチスレッド機構は標準でサポートされているため,PTLは特に役に立つことはありません.歴史的資料として見て下さい.
PTL - Portable Thread Library
■トップページ ->
■独自API
■サポートしているAPI
■PDB(簡易デバッガ)
■論文
■リンク集

   PTL - Portable Thread Library

English / Japanese

  News

  • Dec/13/2002 NetBSD pkgsrc for PTL-2.1.9 is available
  • Dec/04/2002 PTL-2.1.9 is released (NEWS)
  • Nov/27/2002 PTL-2.1.9rc2 (release candidate 2) is available
  • Nov/26/2002 PTL-2.1.9rc1 (release candidate 1) is available
  • Mar/02/2001 PTL-2.1.8 is released

  目次

  PTLって何?

PTL は UNIX 上で動作するユーザレベルのマルチスレッドライブラリです. PTL を使うことによって一つのUNIXプロセス中に複数のスレッド(制御の流れ)を生成, 制御することができます.

例えば,以下のような応用が考えられます.

  • POSIXスレッド(Pthread)を使ったプログラムを動作させる
  • ネットワークサーバ・クライアントプログラム
  • 並列処理
  • 分散, 並列アルゴリズムのシミュレート
  • マルチスレッドプログラミングの勉強

POSIX 1003.4a/D6 ベースの古い API を持つ PTL を PTL1, POSIX 1003.1c ベースの API を持つ PTL を PTL2 と呼びます.

  特徴

  • POSIX 1003.1c (Pthreads) のほとんどのAPIを実装
  • 基本的に BSD UNIX ならば動作する.CPU に依存しない.
  • SYSV系でも i386, SPARC, m68k, mips, alpha ならば動くかも.(gccが必要)
  • configure & make による簡単インストール
  • 無料
  • 高速 (たぶん)
  • プリエンプション(CPUの横取り)のサポート
  • I/O待ち状態(ネットワークI/O, 端末I/O, SYSV message queue,SYSV semaphore operation 等)では処理を実行するスレッドだけがブロックし,他のスレッドの動作は継続する

  • プロセス内に寄生する簡易デバッガ(PDB)のサポート
  • 日本語マニュアル付属(info, PostScript)
POSIXの実装レベル的には,以下のシンボルが定義されています.
  • #define _POSIX_THREADS
  • #define _POSIX_THREAD_ATTR_STACKSIZE
  • #define _POSIX_THREAD_PRIORITY_SCHEDULING
  • #define _POSIX_THREAD_PRIO_INHERIT (not well tested and maybe buggy)
  • #define _POSIX_THREAD_SAFE_FUNCTIONS
以下は未定義です.(実装されていません).
  • #undef _POSIX_THREAD_ATTR_STACKADDR
  • #undef _POSIX_THREAD_PRIO_PROTECT
  • #undef _POSIX_THREAD_PROCESS_SHARED

  インストール

NetBSDとFreeBSDでは,パッケージシステムを使ってインストールが可能です.

手動でインストールするには,アーカイブの中の INSTALL をご参照下さい.

注意: PTLは,最近のglibcベースのシステム(Redhat Linux等)では動作しません.glibcに含まれているpthreadのAPIがPTLと衝突するためです.

PTLは以下のプラットフォームで動作することが確認されています. これ以外のプラットフォームで動作したという報告はこちらまでお願いします.

OS Note
SunOS4 (SPARC) use gcc
Solaris2.5.1 (SPARC, x86) use gcc
Solaris2.6 (SPARC) use gcc
Solaris7 (x86) use gcc
Redhat Linux 5.2 (x86)
BSD/OS2.1 (x86)
NEWS-OS4.2.1R (mips) use gcc
HP-UX A.09.07 (PA-RISC) use /bin/cc (setenv CCOPTS -Ae)

  ドキュメント

  リンク集

  謝辞

PTLの開発にあたり,サポートして頂いた以下の方々に感謝します.
  • Yasufumi Itoh
  • Yoshio Iwai
  • Youki Kadobayashi
  • Toshio Matsuura
  • Hiroshi Saitoh
  • Masanobu Saitoh
  • Noriyuki Soda
  • Shigeya Senda
  • Hiroki Tatsumoto

Keywords for search engines: PTL, Portable Thread Library, pthreads, multi-threading, POSIX, 1003.1, 1003.1c, 1003.4a