|
警告: 現在のOSではマルチスレッド機構は標準でサポートされているため,PTLは特に役に立つことはありません.歴史的資料として見て下さい.
|
PTL - Portable Thread Library |
English / Japanese
- 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 は 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
|
|
|