[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[OSASK 2747] Re: タスクのレベル



  こんばんは、川合です。


nisi さんは 2001/12/16 10:15:38 の「[OSASK 2744] タスクのレベル
」で書きました:

(グローバルレベル制御が可能なこと)
> ・・・だったんですね

  はい。

> シェルでそういった操作を行なえる部分があれば、
> ユーザーがタスクに対して「こっちが先」とか指示
> できるってことですね。

  はい、そうです。まあ、完全にシェルだけの問題というわけではなく
initも少しいじらなければいけませんがね(数バイトですが)。

  「こっちが先」とは言ってもそれが先に処理を完了するということで
はありませんよ。優先順位が上がるということです。・・・念のために
書いておきます。

  たとえば、CPUパワーの少ないマシンで、ソフトウェアMIDIを使って
音楽を聴いているとしましょう。そこへ、大掛かりなファイル圧縮や暗
号クラックなどのタスクを起動してしまうと、ソフトウェアMIDIに割け
るCPU時間が足りなくなって、音が時々途切れたり音質が下がってしま
うかもしれません。

  そんなときはインナーレベルで時間比を変えてやるか、そうでなけれ
ばソフトウェアMIDIのタスクのグローバルレベルを小さくします(=優
先度が上がる)。グローバルレベルをいじった場合は、ソフトウェアMI
DIタスクが余らせた時間だけを他のタスクが分割して使用するようにな
るので、音の途切れや音質低下は絶対に起きません(その代わり圧縮作
業速度や暗号解読速度は落ちるでしょうけど)。

  なお、今のところユーザーが起動したアプリケーションのグローバル
レベルは通常12で、スリープ時には27。pokonやwinmanなどのシステム
タスクでは通常のグローバルレベルは4、スリープ時は27。アイドルタ
スク(全部のタスクがスリープした時にのみ動くタスク。マシンを省電
力モードへ移行させ続けるだけ)のグローバルレベルは、常に26となっ
ています。

  オブジェクト指向的なインターフェースとしては、タスクを選択する
と「タスクセーブ」「強制終了」などの項目の他に、「優先順位設定」
という項目が出てくるということになるでしょう。


  それでは。

--
    川合 秀実(KAWAI Hidemi)
川合堂社長 / OSASK計画総指揮 / カーネル開発班
E-mail:kawai !Atmark! imasy.org
Homepage http://www.imasy.org/~kawai/