de-vraag
  • 質問
  • タグ
  • ユーザー
通知:
報酬:
登録
登録すると、質問に対する返答やコメントが通知されます。
ログイン
すでにアカウントをお持ちの方は、ログインして新しい通知を確認してください。
追加された質問、回答、コメントには報酬があります。
さらに
ソース
編集
 user1002288
user1002288
質問

UNIX上のプロセスのデッドロック理由を実際に見つける方法

Unixでは、プロセスが停止しています。デッドロックが発生する可能性がありますか、デッドロックの理由を見つけ、それを削除して回避する方法はありますか?

私はデッドロックの4つの条件を知っています:

  1. 相互排除:一度に最大で1つのプロセスにリソースを割り当てることができます(共有しない)。

  2. 保留と待機:リソースを保持している処理で別の処理を要求することができます。

  3. 優先なし:プロセスはリソースを解放する必要があります。彼らは取り去ることはできません。

  4. 循環待ち:チェーンの各メンバーがチェーンの次のメンバーが保持するリソースを待っているような一連のプロセスが必要です。

But, they are theoretical, how to determine a deadlock on unix practically ? Only by seeing that a process does not make progress ? How to find which part of the code cause the deadlock and the reasons ? If you are allowed to use tools, what can be used ?

thanks

3 2011-10-27T21:18:31+00:00 2
プログラミング
multithreading
linux
process
unix
deadlock
sehe
27日 10月 2011 в 9:38
2011-10-27T21:38:47+00:00
さらに
ソース
編集
#56793248

There is also Valgrind's Helgrind tool: Helgrind: a thread error detector

Helgrindは、POSIX pthreadsスレッドプリミティブを使用するC、C ++、Fortranプログラムの同期エラーを検出するためのValgrindツールです。

     

POSIX pthreadsの主な概要は、共通のアドレス空間、スレッドの作成、スレッドの結合、スレッドの終了、mutex(ロック)、条件変数(スレッド間イベントの通知)、リーダライタのロック、スピンロック、セマフォ、バリアなどがあります。

     

Helgrindは、次の3つのセクションで詳細に説明する3つのクラスのエラーを検出できます。

     
      
  1. POSIX pthreads APIの誤用。

  2.   
  3. ロック注文の問題から生じる潜在的なデッドロック。

  4.   
  5. データ競合なしでメモリにアクセスする適切なロックまたは同期

  6.   

このような問題は、再現性のない、タイミングに依存するクラッシュ、デッドロックなどの不正行為を招くことが多く、他の手段で見つけるのが難しい場合があります。

Helgrindはすべてのpthread抽象を認識し、可能な限り正確にその効果を追跡します。 x86およびamd64プラットフォームでは、LOCK命令プレフィックスの使用に起因する暗黙ロックを理解し、部分的に処理します。

Helgrindは、アプリケーションでPOSIX pthreads APIのみを使用する場合に最適です。ただし、カスタムスレッドプリミティブを使用する場合は、helgrind.hで定義されたANNOTATE_ *マクロを使用して、Helgrindにその動作を記述することができます。この機能はValgrindのリリース3.5.0で追加され、実験的なものと見なされます。

5
0
Andriy Tylychko
27日 10月 2011 в 9:27
2011-10-27T21:27:18+00:00
さらに
ソース
編集
#56793247

デバッガを使用します。

デッドロックをデバッグするためのヒント

またはこのシンプルなもの:

gdbを使用したデッドロックシナリオの検索方法

1
0
質問の追加
カテゴリ
すべて
技術情報
文化・レクリエーション
生活・芸術
科学
プロフェッショナル
事業内容
ユーザー
すべて
新しい
人気
1
Денис Анненский
登録済み 1日前
2
365
登録済み 5日前
3
True Image
登録済み 6日前
4
archana agarwal
登録済み 1週間前
5
Maxim Zhilyaev
登録済み 1週間前
© de-vraag :年
ソース
stackoverflow.com
ライセンス cc by-sa 3.0 帰属