Documentation Home
> Sun Studio 12: スレッドアナライザユーザーズガイド
Sun Studio 12: スレッドアナライザユーザーズガイド
Book Information
索引
あ
す
ま
はじめに
第 1 章 スレッドアナライザの概要とその機能
1.1 スレッドアナライザの使用
1.2 データの競合とは
1.3 デッドロックとは
1.4 スレッドアナライザの用途モデル
第 2 章 データ競合のチュートリアル
2.1 チュートリアル用ソースファイル
2.1.1 omp_prime.c の全コード
2.1.2 pthr_prime.c の全コード
2.1.2.1 omp_prime.c と pthr_prime.c 内のデータ競合
2.2 実験の作成
2.2.1 ソースコードへの計測機構の組み込み
2.2.2 データ競合検出実験の生成
2.2.3 データ競合検出実験の検証
2.3 実験結果について
2.3.1 omp_prime.c 内のデータ競合
2.3.2 pthr_prime.c 内のデータ競合
2.4 データ競合の原因究明
2.4.1 データ競合が誤検出 (false positive) かどうかの確認
2.4.2 データ競合が良性かどうかの確認
2.4.3 データ競合ではなくバグを修正する
2.4.3.1 omp_prime.c 内のバグの修正
2.4.3.2 pthr_prime.c 内のバグの修正
2.5 誤検出 (False Positive)
2.5.1 ユーザー定義の同期化機構
2.5.2 異なるスレッドによって再利用されるメモリー
2.6 良性のデータ競合
2.6.1 素数を発見するためのプログラム
2.6.2 配列値の型を検査するプログラム
2.6.3 二重チェックロックを使用するプログラム
第 3 章 デッドロックのチュートリアル
3.1 食事する哲学者のソースファイル
3.2 食事する哲学者のシナリオ
3.2.1 哲学者がデッドロックに陥る状況
3.2.2 哲学者 1 のスリープ時間の導入
3.3 スレッドアナライザを使用したデッドロックの検出方法
3.3.1 ソースコードのコンパイル
3.3.2 デッドロック検出用実験の作成
3.3.3 実験結果の検証
3.3.3.1 スレッドアナライザインタフェース
3.3.3.2 er_print インタフェース
3.4 実験結果について
3.4.1 デッドロックになる実行の検証
3.4.2 デッドロックの可能性があるが正常終了する実行の検証
3.5 デッドロックの解決と誤検出について
3.5.1 トークンによる哲学者の制限
3.5.1.1 誤検出の報告
3.5.2 トークンを用いたシステムのもう一つの例
付録 A スレッドアナライザのユーザー API
A.1 スレッドアナライザのユーザー API
A.2 そのほかの認識される API
A.2.1 POSIX スレッド API
A.2.2 Solaris スレッド API
A.2.3 メモリー割り当て API
A.2.4 OpenMP API
付録 B スレッドアナライザについてよく受ける質問
B.1 FAQ
© 2010, Oracle Corporation and/or its affiliates