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

[OSASK 1496] memory management(Re: web pages).



  こんばんは、川合です。


nabe さんは 2001/02/04 19:58:12 の「[OSASK 1453] Re: web pages(R
e: soko01).」で書きました:

>川合さんどこかで書いてませんでしたっけ?
>こんな時だからこそアセンブラで思いっきり依存した、
>その代わり最適化された OS があってもいんじゃないかって。

  書きましたよ、webに。

  これは、C言語を直接攻撃しないからこそ許容される文脈なんです。
もしこの文脈に暗に含まれている、アセンブラはCにまさる、という主
張を明確に記述すると、一般的なプログラマーには受け入れがたい印象
を与えてしまうようです。

>PC-UNIX系のシステムをよく知らないのでなんとも言えませんけど、
>セグメンテーション機構はおそらく使ってるんじゃないかな。
>ページ例外とか、ポインタ例外とかよく出してくれます。

  C言語がそもそもマルチセグメントを扱いにくい言語だと思います。
だから、積極的には使っていないんじゃないかと思っています。IA32で
ある以上は、セグメントを避けることはできないので、消極的に使って
いるだけだと思います。

  僕の見解では、セグメントセレクタを意識しないで済むようなプログ
ラムは、セグメンテーション機構を積極的には使っていないシステムで
す。

>TSS もそうですね。早くない。
>関係ない話ですか、TSS によるタスク管理は導入なさるつもりですか?

  はい。TSSは、なんだかんだいっても、かなり高速なタスク切り換え
方法だというのが僕の見解です。現在のバージョンでもふんだんに使っ
ています。

>>  もしよろしければ、2/12以降に、まずはメモリ管理の話を書いてもい
>>いです。
>お願いしたいです。私もその頃は、本格的に考えてる予定ですから(謎)
>私は、メモリの管理機能を細分化するのがいいのかなぁーとか思ってます。

  細分化???

  とりあえず、僕のメモリ管理の方針を書いておきます。

  単純明快なんですが、ファイル管理と統合、です。

  分かりやすい例は、RAMディスクみたいなものです。あんな感じで、
全メモリを管理します。メモリ領域を獲得するには、パスを与えて取得
します。スタックにももちろんパスがあります。

  タスクはそれぞれディレクトリを持っていてそのディレクトリの中に
スタックやワークエリアのファイルが作られるわけです。タスクに関す
るあらゆる情報はこのディレクトリに集中しています。これをまとめて
1つのファイルにすれば、それがタスクセーブです。

  メモリ管理は、基本的に4KB単位です。ファイル管理もこれを基本単
位にしています。そうすれば、スワップの処理や不連続なメモリ領域を
マッピングする時に好都合ですから。小さなメモリ領域を要求された時
は、この4KBを分割して与えます。

  以上が、OSASKのメモリ・ファイル管理の基本的な考えです。


  それでは。

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