ESP32でマルチタスクを行う為の、とりあえずここまで判った事 by freeRTOS 25タスク目 [ESP32]
現在実用ガイドを読みながら編集中、、、ある事ない事書いちょりまっす!
http://www.profdong.com/elc4438_spring2016/USINGTHEFREERTOSREALTIMEKERNEL.pdf
ESP32はRTOSができるらしい、、、
排他制御について
〇 ミューテックス(とバイナリーセマフォ)、、、4
● デッドロック
デッドロックは排他制御をした時の他の落とし穴である。デッドロックは別名”Deadly Embrace”(死の抱擁)とも呼ばれる、、、らしい。日本なら「5人の哲学者」であろう。
デッドロックは資源を共有している2つ以上のタスクが、自分でトークンを持ちながら相手のトークンを待つ様な状況の時に発生する。
以下の様な状況を考えてみよう。タスクAとタスクBはそれぞれmutexXとmutexYを待っている。
1.タスクAはmutexXのTakeに成功する。
2.タスクAはタスクBによりプリエンプトされる。
3.タスクBはmutexXのTakeを試みる前に、mutexYのTakeに成功する。しかしmutexXはタスクAが持ったままであり、タスクBはmutexXのTakeは叶わない。この為タスクBはmutexXの待ち状態に入る。
4.タスクAの実行が続けられる。タスクAはmutexYのTakeを試みる、が、mutexYはタスクBが持ったままであり、タスクAはmutexYのTakeは叶わない。この為タスクAはmutexYの待ち状態に入る。
5.全員寝たままで誰も起こさない。
デッドロックを避ける最良の方法は、設計時に充分考慮する事である。また問題が起きないようにシステムをシンプルにすることである。実際には小規模な組込みシステムではデッドロックは大きな問題ではない。何故ならシステム設計者はアプリケーション全体をよりよく知り、デッドロックを起こす様な領域を認識し、避ける事ができるからである。
※大きな組込みシステムでは問題にならない!とは言っていない?
※言うまでも無いだろうけれど、セマフォなりミューテックスをTakeする際に待ち時間の上限時間を設定できるので、かならず上限設定を行って、戻って来た時に戻り値を確認すべき。そうすればデッドロックは避けられる。
http://www.profdong.com/elc4438_spring2016/USINGTHEFREERTOSREALTIMEKERNEL.pdf
ESP32はRTOSができるらしい、、、
排他制御について
〇 ミューテックス(とバイナリーセマフォ)、、、4
● デッドロック
デッドロックは排他制御をした時の他の落とし穴である。デッドロックは別名”Deadly Embrace”(死の抱擁)とも呼ばれる、、、らしい。日本なら「5人の哲学者」であろう。
デッドロックは資源を共有している2つ以上のタスクが、自分でトークンを持ちながら相手のトークンを待つ様な状況の時に発生する。
以下の様な状況を考えてみよう。タスクAとタスクBはそれぞれmutexXとmutexYを待っている。
1.タスクAはmutexXのTakeに成功する。
2.タスクAはタスクBによりプリエンプトされる。
3.タスクBはmutexXのTakeを試みる前に、mutexYのTakeに成功する。しかしmutexXはタスクAが持ったままであり、タスクBはmutexXのTakeは叶わない。この為タスクBはmutexXの待ち状態に入る。
4.タスクAの実行が続けられる。タスクAはmutexYのTakeを試みる、が、mutexYはタスクBが持ったままであり、タスクAはmutexYのTakeは叶わない。この為タスクAはmutexYの待ち状態に入る。
5.全員寝たままで誰も起こさない。
デッドロックを避ける最良の方法は、設計時に充分考慮する事である。また問題が起きないようにシステムをシンプルにすることである。実際には小規模な組込みシステムではデッドロックは大きな問題ではない。何故ならシステム設計者はアプリケーション全体をよりよく知り、デッドロックを起こす様な領域を認識し、避ける事ができるからである。
※大きな組込みシステムでは問題にならない!とは言っていない?
※言うまでも無いだろうけれど、セマフォなりミューテックスをTakeする際に待ち時間の上限時間を設定できるので、かならず上限設定を行って、戻って来た時に戻り値を確認すべき。そうすればデッドロックは避けられる。
ITRONプログラミング入門 H8マイコンとHOSで始める組み込み開発
- 出版社/メーカー: オーム社
- 発売日: 2005/04/23
- メディア: Kindle版
リアルタイムOSと組み込み技術の基礎―実践μITRONプログラミング (TECHI (Vol.17))
- 作者: 高田 広章
- 出版社/メーカー: CQ出版
- 発売日: 2004/02
- メディア: 単行本
2018-03-08 13:55
nice!(0)
コメント(0)
コメント 0