普段使用するデバッグツールの無い環境を考えてみる
マルチコアデバッグとは少し離れますが、デバッグ環境が十分ではない時のことを考えてみます。
普段使うデバッグツールはgdb等のデバッガやprintfと思います。これらの用途は。
意図的にライブロック起こすことの難しさについて考えてみる
今回挑戦したのは、2つのスレッドプログラムが相手に合わせてミューテックス変数のロックを譲り合う処理を繰り返すことで発生するライブロック現象でした。
ライブロックを起こすために時間をかけて調整をした結果、現象を起こすことができたように見えますが、長時間動かした場合には少しずつ処理が進むことも考えられます。
ライブロックとは“動いているのだが進まない”という状況を指します。
たとえば、道を歩いていて向こうから来た人を避けようとするとき、相手が自分と同じ方向に動いてしまう。これを繰り返すような状況もライブロックとなります。
「マルチコア適用ガイド」統合版にてリニュアル致しました。下記「ダウンロード」ボタンより資料ご参照ください。また、ガイドに関して、下記のコメント欄から皆さまのご意見をお聞かせ下さい。
前回のブログでは、排他処理区間を絞ると同時に2つのミューテックス変数を使うように改造した結果、再びプログラムが終わらなくなりました。今回はこの問題の調査と対策を行います。
並列処理プログラムのデバッグも、逐次処理と同じ方法で行うことができます。
デバッガでは、スレッドの情報を見ることもできます。
組込みマルチコアサミット(EMS2020)にて、事前告知をさせて頂いておりましたが、マルチコア技術の組込みシステムでの活用促進の一環として、“マルチコア適用ガイド”を作成し、公開させて頂く運びとなりました。
●マルチコア適用ガイドのリニュアル版公開
●EMCブログ「はじめての並列化」も好評連載中
一般社団法人 組込みマルチコアコンソーシアム
〒104-0042 東京都中央区入船1丁目5-11 弘報ビル5階