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

[OSASK 1781] multi user.



  こんばんは、川合です。

  TAPIのレベル制御については、devers3などにより、ある程度は明確
になったといえるでしょう。それで、それをもとに少し話を進めてみた
いと思います。

  OSASKは今のところシングルユーザーのOSですが、これをマルチユー
ザー用に拡張するのは、そんなに大変な事ではないでしょう。OSASKが
ネットワークに対応し、TCP/IPを操れるようになれば、サーバーとして
機能できるようになるでしょう。それまでには乗り越えなければいけな
い問題がたくさんありますが、まあ、ちょっとした思考ゲームだと思っ
て以下の話を読んでください。

  複数のユーザーのタスクがサーバー上で走っています。サーバーのCP
U時間を仲良く使うためには、どうしたらいいでしょうか(なお、ここ
では話を簡単にするためにシングルプロセッサを前提にしています・・
・つまり、CPUは1つです)。

  シングルユーザーの場合は、走っているタスクは全て自分が起動した
タスクですから、自分の好きなように設定すればいいでしょう。しかし
マルチユーザーの場合は、そんな勝手を許すわけにはいかない場合もあ
るでしょう(みんなが譲り合えるような環境なら、制限を設ける必要は
無いかもしれませんが)。

  提案したいのは、各ユーザーは各グローバルレベルごとにインナーレ
ベルポイントを持ち、その配分を自由にできる、というものです。

  たとえば、僕はグローバルレベル12に10ポイント、グローバルレベル
13に40ポイント、それ以下のレベルでは無制限、さらにグローバルレベ
ル11以下は全て0ポイントということになっているとします。

  僕はタスクを3つ持っていて、各タスクはローカルレベルを持ってい
ます。どのタスクのどのレベルをどんな設定にするかは、与えられた制
限下で自由にできます。

      task-1        task-2        task-3
LL0   sleep         sleep         sleep
LL1   (12, 3)       (12, 3)       (13, 30)
LL2   (12, 3)       (13, 10)      (13, 15)
pt12     3             3             0
pt13     0            10            30

  この表の見方を説明します。LL0〜LL2というのは、各タスクのローカ
ルレベル設定値です。task-1のLL1にある(12, 3)は、グローバルレベル
12、インナーレベル3という意味です。表の下にある、pt12とpt13とい
うのは、消費ポイントを意味します。

  消費ポイントの計算方法は、以下の通りです。まず、task-1を考えて
みましょう。このタスクは、LL0、LL1、LL2の3つの状態のうちのどれか
を常にとります。この全ての場合について、グローバルレベル12のイン
ナーレベル値が最大になる時があるでしょう。そのインナーレベル値が
pt12です。また、グローバルレベル13について同様に計算したものが、
pt13です。task-1はグローバルレベル13に移行する事はありえないので
pt13は0になっています。

  僕の3つのタスクにおいて、pt12とpt13の和はそれぞれ6、40となっ
ていて、制限の10、40以下です。

  さてこのような制限を課す限り、僕はグローバルレベル12やグローバ
ルレベル13を好き放題使えるというわけではなくなります。しかし、も
し他のユーザーのタスクが低いグローバルレベルにとどまっていれば、
100%のCPU時間で利用できます。逆に、10人の同じような制限を課され
たユーザーたちが限度いっぱいまで使い合えば、それぞれのCPU時間の
消費は10%ずつになるでしょう。・・・このような結果はとても合理的
で好ましい様に僕には思います。

  またサーバー管理者は、グローバルレベル11を使えば、緊急処理は全
てのユーザーのタスクを押しのけて処理できますし、グローバルレベル
12を使えば、各ユーザーと時間を分け合って処理をする事ができます。

  また、TAPIは各タスクの総実行時間を計測する機能も持っているので
(バグさえなければ、現在のバージョンでも機能しているはずです)、
それに応じてユーザーに課金する事もできます。なお、このカウンター
は数億年までOKだったはずなので、数世紀の連続稼動ではびくともしな
いでしょう。

  以上は、僕の単なる思い付きです。探せば「あら」があるかもしれま
せん。それはこれが現実になる前に解決しなければなりません。僕は、
今のバージョンのTAPIだけでも、結構面白そうだということを伝えたか
っただけです。

  これは単なる読み物ですので、感想などがありましたら、お返事をつ
けてください。

  それでは。

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