[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

(itron-club 1667) Re: 優先度上 限プロトコルについて



豊橋技科大の若林です.

学術と実装の両方を見ている立場と,
以前に見た/聞いたことからコメントします.

私の周りだと,ミューテックス自体が優先度上限プロトコルの
事を指していて,「ミューテックスの優先度継承プロトコル」が
本来あるべき優先度上限プロトコルのことで,
「ミューテックスの優先度上限プロトコル」は,
簡易な優先度上限プロトコルと言っていることが多いです.
 # あとHighest locker とか.

そういう意味では,仕様書の中の「優先度上限プロトコル」と
リソースアクセスプロトコルの「優先度上限プロトコル」は,
獲得タスクの優先度を引き上げるという概念は同じだけれども,
厳密な意味では別物だと理解しています.
 # 前になぜ同じ名前なのかを聞いたことがあったような
 # 気がしたのですが,失念してしまいました

また簡易な実装に関してですが,「そのミューテックスを
取得予定タスクの上限まで持ち上げるべし」という
本来の定義のままだと,ミューテックスをロックする前に
関連する全てのタスクの優先度を再確認しにいくか,
優先度が変化した場合に関連するミューテックスが
割り付ける優先度を毎回設定するかのどちらかになり,
簡易であるにもかかわらず実装が複雑になるので
やめたのだという単純な理解をしています.

前にミューテックスのフル実装 (本来の優先度上限)を覗いた
ことがあるのですが,なんかとっても面倒なことになっていたのを
記憶しています (特にスケジュール周り).
ミューテックスの簡易実装ではタスク制御ブロックは無傷の
ままで済みますが,本来あるべき優先度上限プロトコルを
実装した場合はそれなりの修正を伴っていた覚えがあります.
機能の実装がOSの低位部分まで食い込んでしまうと,
使用されないときに機能を取りはずのが大変になるので,
実装する側からしては簡易は簡易で意味があると思います.

--------
豊橋技術科学大学 工学研究科 電子情報工学専攻
  若林 隆行 (mailto:takayuki@ertl.jp)