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

[OSASK 2979] from OSASK BOARD



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


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

From: 川合秀実
Message-ID: 3c48df54_168f4
Date: 2002/01/19 11:52
Subject: Re: ファイルの概念

[OSASK 2969]へのレスです。

>スケジューリングのプライオリティはきっと基本的にはプログラム
>自身がきめると思うのですが、細かい機能を無駄にしないためには
>プライオリティの選び方に対するうまいガイドラインが必要そうですね。

 (以下ではとりあえず従来通りの語句を使用しています。ご了承ください。)

 各アプリケーションは、自分自身のグローバルレベルやインナーレベルを指定
できません。指定できるのは、ローカルレベルだけです。だからガイドラインは
必要ありません。ガイドラインはシェルが知っていればいいことです。

 このローカルレベルは「プライオリティ・セレクター」と読み替えるべきかも
しれません。

 あるタスクでは、ローカルレベル1は「グローバル10, インナー20」を意味し
て、ローカルレベル2は「グローバル10, インナー2」を意味しているでしょう。
そしてまたあるタスクでは、「グローバル11, インナー3」と「グローバル13, 
インナー18」になっているでしょう。タスクにはタスクの都合があり、たとえば

・緊急の処理をする時はローカルレベル1になる
・通常の処理をする時はローカルレベル2になる
・特定の作業中はローカルレベル3になる

などタスクの仕様をあらかじめ決めておきます(ドキュメントに書いておけばい
いでしょう)。そしてそれぞれの選択の時に、実際にグローバル、インナーの値
をどうするのかは、シェルあらかじめテーブルにしておきます。もちろん、必要
があればこのテーブルをシェルが書き換えることはいつでもできます。たいてい
は起動時に一度決めれば、滅多にいじらないでしょうけど。・・・むろん、シェ
ルが設定できるということは、ユーザーから設定可能であるという意味です。

 なお今のシェルは手抜きなので、この辺の設定が固定されています。

>今はステータスは持ってないのですか?
>プロセスが寝てるかどうかで処理が変わることはあると思いますが。

 それはあるでしょう。でもそれは、そのタスクのグローバルレベルがスリープ
の値かどうかを比較すれば済むことです。これはステータスを比較するのと処理
量は変わりません。

>あと、僕のイメージでは一連の処理の中でアイドルも処理をすると
>その後ろに必ず予測が外れる分岐がくるような気がします。
>僕はOSを実装してないのであまり気にしないでください。

 分岐予測が外れるのはしょうがないことです。大事なことは、そもそも分岐す
る個所を如何にして減らすかです。

>キー入力があっても配分比の維持のために待たされるかどうかは
>配分比の維持の弦密度とは無関係だと思います。

 これは良く分かりませんでした。でも別にいいです。重要そうではないので。