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

[OSASK 2963] from OSASK BOARD



このメールは、OSASK伝言板に書き込まれた内容です。
この書き込みに返事を書く場合は、下のURLから書き込みを行なって下さい。


http://www.imasy.or.jp/~mone/osask/index.cgi?REFER=3c480e45_5ed6

From: anonymous
Message-ID: 3c480e45_5ed6
Date: 2002/01/18 21:00
Subject: Re: Re: ファイルの概念

> すみません。ネーミングに失敗したかもしれません。ネーミングセンスのなさ
>は痛感しているので、もしより分かりやすい表現がございましたらご提案くださ
>い。参考にさせていただきます。
とりあえずグローバルやインナーのような明らかに対義語がある
言葉を組み合わせるのは変ですよね。
実質的にインナーレベルはプライオリティではないですので、
グローバルレベルを単にプライオリティと呼べばいいと思います。
インナーレベルではlottery schedulingのようなことを実現しよう
としてるのだと思いますが、そこでは配分比を決めるパラメータを
ticketとよんでますね。

> 普通とは異なる意味かどうかは、僕には分かりません。僕は普通のつもりで使
>っていますが。ご指摘の「普通」は、どういったものなのでしょうか?それが分
>からないと、お返事できません。
排他というと同じグローバルレベルをもったプロセスは他に無いって
意味になりませんか?その文脈では共存はその逆と。

> 別に深い意味はありません。これくらいあれば十分だろうと思っただけです。
たしかにそうですね。
僕はもっとすくなくてもよさそうと思っただけでした。

> それは通常よりも下のレベルについてでしょう。通常よりも上のレベルだって
>あるのです。リアルタイム性を要求されるタスクは、通常よりも上のレベルを使
>うでしょう。そして、リアルタイム性を要求するタスクが複数あり、それらのう
>ちの優先順位を排他的に決めたければ、グローバルレベルがいくつか空いていた
>方が便利です。
たしかにそうですね。
もし本当に汎用のOSでそんな需要があるのでしたら、
相対的な半順序みたいなのが定義できる方が便利ですね。

> OSASKにはスリープという状態がないのです。それは単に最下位のグローバル
>レベルに落ちたというだけです。扱うべき状態が少なくて済むということは、タ
>スクのスケジューリングのコードがシンプルになるということです。それ以上の
>利点は今のところ期待していません。
僕はソースを読まずに言ってるので申し訳ないですが、
それぞれのグローバルレベルにタスクキューがあるような構造を
想像しているのです。
そうするとスリープレベルのプロセスはスリープキューにつながれる
と思いますが、スリープしているプロセスをキューにつないだり
外したりするのは無駄な作業かなと心配していました。

アイドルも一回メモリ参照が増えますよね。
コードを小さくする方が優先事項なのかもしれませんが、
現代のプロセッサではメモリアクセスが一番パフォーマンス的に
痛いと思います。

> 結局インナーレベルが効いてくるのは、滅多にスリープしないようなタスクが
>複数走っている場合のみです。
これだと実質的にインナーレベルは意味をなさないですよね。
もしこのような方針で行くのならrdtscでそのプロセスが実際に
使ったクロック数を計測してできるだけ配分比に近付くように
スケジュールするような実装にしたらどうでしょう。
実際にはIOとか他の方面を考慮する方が配分比より
ずっと意味があるかもしれませんが。

> ・・・しかし、確かに僕の記述はあいまいだったかもしれません。比較の対象
>としてUNIXではなく、LinuxやFreeBSDなどと書くべきだったかもしれません。
それならわかりやすいですね。