メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Polyspace デスクトップ ユーザー インターフェイスでの [同時実行モデリング]

Polyspace® ユーザー インターフェイスの [同時実行モデリング] ビューには、同時実行/マルチスレッド実行に関する C/C++ アプリケーションの Polyspace モデリングが表示されます。このビューでは、コードと Polyspace 構成から抽出される次の情報を確認できます。

  • タスク (エントリ ポイント、周期タスク、中断など):各タスクは個別のプログラム実行パスの開始を示します。これは、他のタスクによって割り込まれる可能性があります。

  • リソース (クリティカル セクション、ミューテックスなど):リソースは、タスクのコード セクションを別のタスクによる割り込みから保護する目的で使用されます。

複数のタスクに関与する結果 (保護されていない可能性のある変数など) を調査するときには、このペインに表示される情報を基に、アプリケーションの同時実行モデリングを理解することができます。

[同時実行モデリング] ペインを開くには、最初にユーザー インターフェイスで Polyspace 解析の結果を開きます。[ダッシュボード] ペインの [同時実行モデリング] リンクをクリックします。

タスク

[同時実行モデリング] ビューでは、タスクのスナップショットが次のように表示されます。

A snapshot of a typical view of the Concurrency Modeling pane

タスクごとに、次の情報が個別の列に表示されます。

  • 名前:タスクの名前。検索ボックスに文字列を入力して、名前にその文字列が含まれるタスク (およびそれらのタスクにより使用されるリソース) のみが表示されるようにすることができます。

    • 自動的に検出されるタスク (pthread_create() により作成されるタスクなど) の場合、この列にはタスクの開始ルーチンが表示されます。たとえば、pthread_create() を次のように呼び出すとします。

      pthread_create(&my_thread, NULL, start_routine, NULL);
      この列には、start_routine() という名前が表示されます。

    • Polyspace 構成に明示的に指定されたタスクの場合、この列には指定した名前が表示されます。Polyspace 解析構成でタスクを指定する方法の詳細については、マルチタスキングを参照してください。

  • 設定元:Polyspace によるタスクの検出方法。この列のエントリは次のいずれかです。

    • 自動的に検出:このエントリは、タスクがコードから自動的に検出されたことを示します。自動検出に対応しているすべてのスレッド作成ルーチンのリストは、Polyspace でのスレッド作成とクリティカル セクションの自動検出を参照してください。

    • 手動による構成:このエントリは、Polyspace 解析構成でタスクが明示的に指定されていたことを示します。詳細は、Polyspace マルチタスキング解析の手動設定を参照してください。

    • 解析の前提条件:このエントリは、既定で、解析にこのリストのタスクが含まれていることを示します。通常、このエントリは main() 関数で使用されます。

  • 使用法:この列は、タスク内で使用されるリソースを示します。たとえば、タスク t1 がミューテックス変数 m1 をロックする場合、t1 に対応する行ではこの列に次のエントリが表示されます。

    Uses m1

このビューから次の場所に移動できます。

  • タスク名をクリックすると、ソース コード内のそのタスクの定義に移動します。

  • タスクが開始される行に移動できます。たとえば、pthread_create() を使用して作成されたタスクの場合、pthread_create() が呼び出される行に移動できます。

  • Polyspace 構成に明示的に指定されているタスクの場合、[設定元] 列の [手動による構成] をクリックすると、構成に移動できます。

Resources

[同時実行モデリング] ビューでは、リソースのスナップショットが次のように表示されます。

A snapshot of a typical view of the Concurrency Modeling pane

タスクごとに、次の情報が個別の列に表示されます。

  • 名前:リソースの名前。検索ボックスに文字列を入力して、名前にその文字列が含まれるリソース (およびそれらのリソースを使用するタスク) のみが表示されるようにすることができます。

    • 自動的に検出されるリソース (pthread_mutex_lock() で使用されるミューテックス変数など) の場合は、この列にはミューテックス変数の名前が表示されます。たとえば、pthread_mutex_lock() を次のように呼び出すとします。

       pthread_mutex_lock(&mutex);
      この列には、mutex という名前が表示されます。

    • Polyspace 構成に明示的に指定されたクリティカル セクション詳細などのリソースの場合、この列には、Cs の後に数字が付いた名前が表示されます。この名前の後には、クリティカル セクションの開始ルーチンと終了ルーチンが続きます。クリティカル セクションの詳細については、クリティカル セクション詳細 (-critical-section-begin -critical-section-end) を参照してください。

  • 設定元:Polyspace によるリソースの検出方法。この列のエントリは次のいずれかです。

  • 使用法:この列には、このリソースを使用するタスクが表示されます。たとえば、タスク t1 がミューテックス変数 m1 をロックする場合、m1 に対応する行ではこの列に次のエントリが表示されます。

    Used by t1

参考

トピック