(toppers-users 3873) Re: DEF_RPRIを無くすご提案

高橋和浩@nifty takahashi_kazuhiro @ nifty.com
2012年 2月 1日 (水) 14:21:07 JST


杉本様 MLの皆様 アライブビジョンソフトウエアの高橋です。


A1.起動時実行時の優先度が入れ子の場合
> 「起動時実行時の優先度が入れ子の場合」というのが分からなかったのですが、
> どういったタスク生成のしかたを指すのかご教授いただけますでしょうか?

タスク1 起動時優先度14 実行時優先度11
タスク2 起動時優先度13 実行時優先度12
のようにタスク2がタスク1に挟まれています。こういうものを「起動時実行時の優先度が入れ子の場合」
と書いています。これは同一優先度ではありません。さらにプリンプトしない関係にあります。
これをレディキューを持つにしても持たないにしてもどのように処理するかが問題になると
考えています。

A2.ディスパッチ禁止との比較
> >> DEF_EPRI自体は排他としての用途があり、SSPではタスク間同期機能がなく
> >> 排他手段が限られるので廃止はしなくてよいかと思っています。
> >>
> >
> > そこは、自分は考えが至らなかった部分かと気づきました。
> > ただ、ディスパッチ禁止等で対応可能だと思うので絶対ではないように
> > 思っています。
> 
> ディスパッチ禁止だと全てのタスクに影響が及ぶのに対して、部分的な
> 排他ができるのがDEF_EPRIですので、使い分けになるのではないかと
> 考えていますがいかがでしょうか。

確かに、DEF_EPRIの方がディスパッチ禁止よりも有効な方法だと思います。
なので絶対ではないという書き方をしました。
ただ、DEF_EPRIがあることによるデメリットのほうが大きい場合が
あるのでそうであれば無くてもよいのではないかと思っています。


A3.優先度の例
> 
> ちなみに、先のメールで挙げていただいたタスク設定の例で、(外部表現)起動優先度と
> (内部表現)実行時優先度は常に同じなのでしょうか。これが異なるシチュエーションがあれば挙げていただけると幸いです。
> 

もともとの例で異なっていますよ。タスク3の優先度を確認ください
>例) タスク1 優先度1 タスク2 優先度1 タスク3 優先度2の場合
>タスク1 外部表現タスク起動優先度1 内部表現起動時優先度1 内部表現実行時優先度1
>タスク2 外部表現タスク起動優先度1 内部表現起動時優先度2 内部表現実行時優先度1
>タスク3 外部表現タスク起動優先度2 内部表現起動時優先度3 内部表現実行時優先度3
>タスク1と2は狭義の省スタック化になります。

よろしくお願いします。
---
アライブビジョンソフトウエア株式会社
高橋和浩
673-0005兵庫県明石市小久保2-2-7幹線ビル4F
Email:takahashi_kazuhiro @ nifty.com
http://homepage3.nifty.com/ALVS/