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

杉本明加 asuka.choronos @ gmail.com
2012年 1月 19日 (木) 19:27:31 JST


こいさんさん、みなさま

杉本です。

高田先生がお書きになったように、現在のSSPの仕様では
メモリ容量を優先して含めていません。
しかし、キューイングを実装することでアプリケーションコードの
実装が簡易になるならば実装の価値はあると考えます。
(いくらカーネルが小さくても機能が少なすぎてアプリケーションが
 書けないのは本末転倒です)

キューイング数が1であればわずかなRAMしか増加しませんし、
act_tskとiact_tsk、スケジューラの変更にいくらか処理を追加
するだけで済みます。その場合can_actも実装すると思いますが、
使わないならばリンク時に外せます。

どの機能が必要か不要かの判断はなかなか難しく、みなさまの
意見を頂戴できればと思います。


補足となりますが、SSPの実装方針としては最小限の構成に、
アプリケーションで必要な機能を拡張パッケージで追加するような
カーネル構成を考えています。そのため周期ハンドラやアラームハンドラも
拡張パッケージで提供しています。
ポーリング付きだけではありますが、データキューやイベントフラグも
現在実装しているところです。

以上、よろしくお願いします。

2012年1月19日14:44 Hiroaki TAKADA <hiro @ ertl.jp>:
> こいさん、皆様
>
> SSPカーネルに、タスク起動要求をキューイングする機能を追加するのは
> 有力だと考えています。今はRAM使用量を最小にするということでつけてい
> ませんが、キューイングが1つでよければ、タスク毎に1ビットあれば良い
> ので、RAM使用量も増加もそれほどではないと思います。
>
> 必要性について皆さんのご意見をいただけると幸いです。
>
> 高田広章
> 名古屋大学
>
> (12/01/19 12:01), koizumi yoshiyuki wrote:
>>  こいさんです
>>  TOPPERS/ASP、SSPではタスク起動は一つキューイングされます。SSPにはその
>> 機能がありません。SSPではタスク待ちの処理がないので、タスク起動のキュー
>> イングは必須機能だと思いますが如何でしょうか。
>>  自動車プロファイルの制約タスクはどのように使われているの知りませんが、
>> 制約タスクの性格(?)上、タスクは一つの機能を実現する場合に使用されている
>> と勝手な想像をしています。
>>  タスクが複数の要求を処理するような場合、要求をキューなどに溜め込み、タ
>> スクを起動することになるでしょう。起動したタスクは要求を取り出して要求を
>> 処理し、終了時に次の要求の有無を調べ、要求があれば要求取り出しから処理を
>> 繰り返し、なければタスクを終了することになるでしょう。この様な作りの場
>> 合、要求を溜め込む処理と、要求無し判定処理の同期を取ることができないの
>> で、タスク起動のキューイングが無いと、要求を積んでもタスクが起動しない
>> ケースが発生すると思います。
>>  以上