(toppers-users 3826) Re: 2つの優先度の有効な利用方法は?(長文 改造案)

杉本明加 asuka.choronos @ gmail.com
2012年 1月 23日 (月) 18:46:28 JST


高橋さん、こいさんさん

杉本です。
返信がなかなかできない点についてはご容赦ください。
(本業でないため、時間が取れるタイミングが不定期になります。)


まず、もともと想定していたタスク共有の仕組みとしての
実行時優先度は利用できる状況が限られているのは確かです。
事前の検討が甘かったと自戒するとともに、具体的な利用想定の
ご紹介に感謝いたします。

仕様自体はTOPPERSの会員内でレビューも行っておりますが、
現場でどのようにOSが使われるか、どういう機能があればいいのかという
生の要望にはあまり恵まれておりません。貴重なご意見ありがとうございます。

> ですので、プリエンプトされなくても有効に使える方法を考えた場合に、従来からある同一優先度が使えたら
> 使い道があると思います。ただし、SSPの実行時優先度が同一でも従来の同一優先度ではなく、起動時優先度で
> 偏りが生じます。その偏りを無くせば、利用用途があると考えています。

シンプルに同一優先度を許可することも検討しています。他のカーネルとも
互換性が高くなります。その場合にメモリ使用量を極端に増やさないように
実装できるか検討したいと思います。

同一優先度は許可しない方針を維持する場合には、ご提案いただいた
案や他にありえそうな案を考えたいと思います。

検討の時間をいただければと思います。
いつその結果がお応えできるかの確約はしにくいですが、整理できた
タイミングでまたご意見を頂戴したいと思います。

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


2012年1月23日17:45 高橋和浩@nifty <takahashi_kazuhiro @ nifty.com>:
> こいさんさん
> 高橋です。
>
>> 使わなければよい、一つの解だと思うのですが、それだと単純な最優先方式になり、制約タスクのスタック削減ができなくなります。
>> そこで、kernel_cfg.cの_kernel_tinib_epriorityテーブルが昇順(等しいのを含めて)になるようCFGで制限を加えてはと考えましたが、
>>この案の問題点を指摘いただければ嬉しく思っています。
>
> 実装上のテーブル構成についてはよくわかっていません。ですが、理論的に
> 「プリエンプトされないから、スタックが共有できる」という理屈なので、いくら小細工しても、
> プリエンプトとスタック共有は両方実現できないと考えています。
>
> ですので、プリエンプトされなくても有効に使える方法を考えた場合に、従来からある同一優先度が使えたら
> 使い道があると思います。ただし、SSPの実行時優先度が同一でも従来の同一優先度ではなく、起動時優先度で
> 偏りが生じます。その偏りを無くせば、利用用途があると考えています。
> それが、前述する。5.先取り方式の提案 で書いています。