(toppers-users 3777) Re: SSPにタスク起動キューイング

高橋和浩@nifty takahashi_kazuhiro @ nifty.com
2012年 1月 19日 (木) 12:54:48 JST


こんにちは、アライブビジョンソフトウエアの高橋です。

>要求を溜め込む処理と、要求無し判定処理の同期を取ることができないので、タスク起動のキューイングが無いと、
>要求を積んでもタスクが起動しないケースが発生すると思います。

確かにそうなると思います。
単純にグローバル変数のフラグとFIFOのバッファで制約タスクが割り込みハンドラからキューを
受け取る場合に、フラグとキューが無くなったと判断して、ext_tskする場合に判断後とext_tskの間で
割り込んだ場合に空振りすると思います。

loc_cpuのままext_tskが動作すれば(仕様変更等)回避できるように思います。
つまり
1.loc_cpu
2.フラグチェック
3.無ければext_tsk
なら空振りは防げるように思います。
act_tskのキューイングよりも、実装が容易じゃないかと思っています。

基本的には、定期的にタスクが起動するようなプログラミングスタイルが必要なようにも
思いますが、比較的普通に使えた方がよいように思います。


On Thu, 19 Jan 2012 12:01:34 +0900
koizumi yoshiyuki <koizumiyoshiyuki @ gmail.com> wrote:

>  こいさんです
> 
> TOPPERS/ASP、SSPではタスク起動は一つキューイングされます。SSPにはその機能がありません。SSPではタスク待ちの処理がないので、タスク起動のキューイングは必須機能だと思いますが如何でしょうか。
> 
> 自動車プロファイルの制約タスクはどのように使われているの知りませんが、制約タスクの性格(?)上、タスクは一つの機能を実現する場合に使用されていると勝手な想像をしています。
> タスクが複数の要求を処理するような場合、要求をキューなどに溜め込み、タスクを起動することになるでしょう。起動したタスクは要求を取り出して要求を処理し、終了時に次の要求の有無を調べ、要求があれば要求取り出しから処理を繰り返し、なければタスクを終了することになるでしょう。この様な作りの場合、要求を溜め込む処理と、要求無し判定処理の同期を取ることができないので、タスク起動のキューイングが無いと、要求を積んでもタスクが起動しないケースが発生すると思います。
> 
> 以上
---
アライブビジョンソフトウエア株式会社
高橋和浩
673-0005兵庫県明石市小久保2-2-7幹線ビル4F
Email:takahashi_kazuhiro @ nifty.com
http://homepage3.nifty.com/ALVS/