(toppers-users 3754) Re: SSPの制約タスクの待ちについて

Hiroaki TAKADA hiro @ ertl.jp
2012年 1月 18日 (水) 00:51:16 JST


小南さん

> 続きを使うという場合、MAIN_TASKは(スタックを共有している)TASK1がどれだ
> けスタックを消費
> していたかに関わらず、自身のCRE_TASKなどで指定したスタックサイズ分を自
> 身が消費しても
> 安全(意図せずにスタックを共有していないタスクのスタックなどの領域を使
> わないという意味です)
> なのでしょうか。
> たとえば、「MAIN_TASKが指定したスタックサイズ+TASK1が指定したスタック
> サイズ」がスタック
> として使えるよう、あらかじめ確保されていれば、安全とはいえると思います
> が。

スタックのサイズのことを言われていたのであれば、ご指摘は了解です。

この点は、SSPカーネルの仕様の課題です。

高田広章
名古屋大学

(12/01/17 23:48), yasuo kominami(nifty) wrote:
> 高田先生
> 
> 2012年1月17日23:14 Hiroaki TAKADA<hiro @ ertl.jp>:
>> 小南さん
>>
>>> 私があげた1,2,3を守ったとしても、たとえば現在公開されているSSPの
>>> sample1において、
>>> MAIN_TASKが(ASPなどでの無限ルール内での待ちを伴うサービスコールの呼び
>>> 出しに代えて)、
>>> 周期ハンドラで定期的にタスク起動されますが(ループしていないのですぐ終
>>> 了してしまい
>>> ますが)、このMAIN_TASKが、他のTASK1などとスタックを共有していて、
>>> TASK1が実行状態
>>> であった場合でも、カーネルがTASK1をプリエンプトして、MAIN_TASKを実行状
>>> 態にすると
>>> 危ないのではないかと考えました。
>>
>> これは危なくありません。
>>
>> 「スタックを共有する」と言うのは、優先度が異なるタスクの間では、一連の
>> スタックを使うことを意味しています。上のケースでは、TASK1のスタックの
>> 続きの領域をMAIN_TASKが使いますので、問題ありません。
>>
> 
> 続きを使うという場合、MAIN_TASKは(スタックを共有している)TASK1がどれだけスタックを消費
> していたかに関わらず、自身のCRE_TASKなどで指定したスタックサイズ分を自身が消費しても
> 安全(意図せずにスタックを共有していないタスクのスタックなどの領域を使わないという意味です)
> なのでしょうか。
> たとえば、「MAIN_TASKが指定したスタックサイズ+TASK1が指定したスタックサイズ」がスタック
> として使えるよう、あらかじめ確保されていれば、安全とはいえると思いますが。
> 
> これは、koizumiyoshiyuki@gmail.comさんの、「toppers-users 3727) SSPの制約タスクの待ちについて」
> での疑問でもあるのですが。