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

[OSASK 550] Re: 「OSASK のファイルシステム」.



  こんばんは、川合です。


橋 さんは 2000/04/09 22:17:21 の「[OSASK 549] Re: 「OSASK のファ
イルシステム」.」で書きました:

>川合>  昨日から作り始めたページ「OSASKのファイルシステム」がだいたい
>川合>できました。タグシステムや並列ディレクトリ、セキュリティーのこと
>川合>は書いてありませんが、まあ、参考にはなるでしょう。僕のOSASKのペ
>川合>ージからたどれます。
>読みました。なんかどこぞのプレリリースを読んでいるような感じだったけど(笑)
>#厳しく言えば、良い面が全面に出されていて、悪い面を隠しているような印象を
>#与えているような気がする・・・って企業の文章に多いイメージだなぁ。

  こういう、厳し目の意見は歓迎です。

  内容もさる事ながら、文の調子があやしいんでしょ?キャッチフレー
ズが並んでて、しかも良さそうなことばかりが書いてあるから。・・・
確かに、言われてみるとなんかそういう感じもするね。

  でもでも、「遅延書き込みの拡張」「メディアID」「アクセス方法」
の3項目については、長所ばかりになっても仕方ないかもしれません。
長所しかないから(笑)。僕自身、未だ短所を見つけていません(やや
自信あり)。・・・あ、強いて言うなら、初心者にはわかりにくいって
ことくらいかな。

>・遅延書き込みうんぬん
>ここは前にどっかで書いた記憶があるので大体理解できました。

  そうそう。だからこっちで書かなくても良かったんだけど、前後の関
係で書いておくことにしました。

>しかしまあ、快適に使うにはキャッシュ用に結構容量が必要そうだよね。

  そうなのです。キャッシュしたいディスクの100倍くらいの容量をHDD
に割り当てれば、かなり便利だろうねえ。MOやCD-ROMでは10倍くらいが
精いっぱいだから、あまり快適ではないかもね。・・・といっても、こ
の機能が無いときよりも不便になることはないはず。

>・メディアIDうんぬん
>ちと説明がわかりにくいかも。上記の遅延書き込みのところと重複する内容も
>多いので、このあたりはちとフォローが必要なところかもね。

  うん、僕もそう思います。ここねえ、全然うまくまとまらないのよ。
見出しも1つしかないし。

  内容が重複しているのは、ここから読み始める人のことを少しだけ想
定しているせいです(そんなことに配慮しても意味がないのですが)。

>あと、DISKは必ずDISK名称が必要になるってことだよね。今のような

  いいえ、ディスク名は無くてもいいです。でも、無かったら、ディス
クの抜いた後のキャッシュが無効になるので、キャッシュされることを
前提に考えているんだったら、「必要」です。名無しのディスクでも、
遅延書き込みはできるし(ただし、全部の書き出しが終わるまでイジェ
クトはできない)、一般的なリードキャッシュも可能です(抜いたらキ
ャッシュは無効化されてしまう)。

>・アクセス方法うんぬん
>うぐう、こーゆーのには相変わらず私は弱い。
>でもまあ、なんとなく便利そうだと分かっただけよしとしよう(笑)

  まあ、便利っていうのもあるけど、速いっていうのもポイントなんだ
よね、実は。

>・仮想記憶機構との統合うんぬん
>うーんと、メモリうんぬんの話がある場合と、ファイルOnlyになった場合、
>私くらいからみると整理されて分かりやすくなったような気分になるけど、
>開発者レベルから見た場合、どのような利点が合ってどういう問題があるのか、
>ってことになるとどうなのかな?

  それは、とても鋭い指摘です。・・・率直に言って、僕にもわかりま
せん(笑)。

  利点って何だろう?スワップ制御のプログラムを書かなくていいって
ことかな?(・・・って、OS作る人にしかメリット無いじゃん・・・で
も、これがもともとの動機だったりするので、(笑)とは書けない)。

  ちょっとまじめに考えよう。

  今までメモリ上にとっていたものでさえ、形式的にでもファイル上に
あると見なすことで、本当によく使うデーターだけが選ばれて、メモリ
上に居座ることになります。これを具体的に説明しましょう。

  今、メモリが8MBのマシンがあって、普通のOSが走っています。で、
このうちの3MBをファイルキャッシュに割り当て、残り5MBをメモリとし
て割り当てましょう。この設定で、メモリを6MB使うソフトを起動した
場合、5MBからあふれた1MBはスワップファイルに回されて、6MB中のよ
く使われる5MBがメモリ上に残ることになります。たとえ、ディスクキ
ャッシュに空きが多くても、その3MBはディスクキャッシュ用に予約さ
れているので、生かされません。

  また、メモリをあまり使わずに、たくさんのファイルにアクセスする
という状況も生じるでしょう。こんなとき、ディスクキャッシュ容量3M
Bが飽和してしまうと、体感上のディスクアクセスが遅くなります。メ
モリはたくさん空いていても、使われません。

  OSASKの僕が提唱している方法の場合、どちらの場合も純粋に利用頻
度が高いものがメモリ上に残るので(全部ファイルだから、よく使うフ
ァイルが残るわけ。純粋なファイルであってもいいし、従来ならメモリ
に割り当てるような内容のファイルであってもいい)、5:3という比に
縛られることなく、効率があがります。・・・OSASKでなくても、この
比を状況によって自動的に調節する優秀なOSがあれば、「全部がファイ
ル」などいう奇策を用いなくてもいいわけです。

  短所、短所は・・・。まず、プログラマーは面食らうでしょうね。「
なんじゃこりゃ?」って言いたくなります。しかし、まあ、一度分かっ
てしまえば単純なのです。

  おお!ここまで書いて思い付いた。そう、ロード/セーブっていう概
念がなくなるんだよね。ロードっていうのは、ディスク上のデーターを
メモリに読み込むことでしょ?セーブっていうのは、メモリ上のデータ
ーをディスクに書き出すことでしょ?「全部がファイル」だとメモリな
んていう概念は存在しないわけから、ロードもセーブも無いわけね。・
・・こんなこといわれたら、普通のプログラマーは面食らうよ。わかり
やすいイメージとしては、メモリを経由しないで、直接ディスクに読み
書きしているんだと考えてほしいです。fprintf()やfwrite()などとい
う、「ファイル操作のための特別な関数」は不要なのです。変数を書き
換えればいいんです。それで、ファイルは書き換わります。

  概念的に「変」であることを除けば、欠点はありません。遅くなるわ
けじゃないし、メモリの利用効率が落ちるわけでもないからです。

  もちろん、「メモリ」という名前のファイルを用意して、このファイ
ルを特別視し、他のファイルからこのファイルへのコピーを「ロード」
このファイルから他のファイルへのコピーを「セーブ」と呼ぶことにす
れば、従来の概念と同じになりますから、新しい概念を受け入れなくて
もプログラムを書けます(概念の互換性)。

---

  もう少しML上で議論して、改善方法がつかめたら、再度更新すること
にします。まあ、結局のところ、現物が1日も早くできるに超したこと
はないんだけどね(笑)。


  それでは。

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