[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[b-free: 1163] Re:Memory Protection



 ウェルビーンの鈴木と申します。

# あぁ、、また口を挟んでしまった。専門家でもない
# くせに、、、
# うろ憶えの知識でのreplyなので論点を撹乱しそうで
# したら無視してください。


Hideaki Suzuki wrote:

> 林さん、お久しぶり! :-)
>
> Aki です。
>   ....
>
> > チップレベルで見ればpagingでも多重仮想空間を使えば同様のことはできますね。
> > ここでいうsegmentationはx86の機能じゃなくてOS上の概念だろうからソフトウェア
> > でsegmentationを実装するということかも知れないけど。
>
> えっと、教科書の方では、segmentation の話は、CPU/OS/Compiler などを総合して書いてある
> ようです。で、segmentation の方は、幾つかの program で同じ segment name を共有するのに
> 追加の処理が必要だと書いてありました。要するに、Win95 で関数を export にするために
> 、.def を書くような処理ですね。この本の扱っている、segmentation は name base みたいで
> す。

 セキュリティの話から一旦ハズレます。そちらはよく知ら
ないので。

 私がかつて読んだことのあるOSの本でのうろ憶えですが、
まず記憶管理の一般論として、OSは「適当な単位」で「自
動的」に物理メモリの管理を行うと。
 問題は、1)「適当な単位」をどうするか、2)どのよう
なポリシーで「自動的」に処理(アドレス変換したり、ディ
スクにスワップしたり、、)するのか、ということです。

 segementationは、「プログラマ」が「XXにはcode、YY
にはstack、Zにはbss、、」のようにプログラムを「書けば」
後はOSがやりますよということではなかったでしょうか。プ
ログラマが指定するsemanticなsegmentを「適当な単位」にし
てしまうわけです。
 一方、pagingはどうかというと、「プログラマが何をどうし
ようと関係ない」、俺(OS)が512KBytesを「適当な単位」
と決めてしまい、LRU等のアクセス頻度から勝手に管理してし
まうぜ、ということだったと記憶しています。


> で、多重仮想空間というのは、なんです?<しらない。^_^;
> 「幾つかの program context で、memory address が重なっても別の memory を参照していると
> 考える」とか、そんな感じでしょうか? 同じ事ですが「各 process が、個別の address 空間
> を持っている」とか。

 うろ憶えが正しいとして多重仮想空間に突入します。

 要はOS内部では仮想アドレスと物理アドレスの関連付けが
行われているわけです。
 例えば一つのユーザプロセスに仮想空間をひとつ割り当てる
とすると、次はその仮想空間上での物理アドレスとの対応付け
と管理。この管理において、a.out形式だからここからがコード
であそこからbssとかをしても良いことになります。つまりプロ
グラマに指定させることなく、compilerやloaderのconvention
からsegmentを検出するわけです。regionといったりしたよう
な。その上で512KBytesで管理しても良いのでしょう。

 このように管理していれば、複数のプロセスに個別の仮想空間
を割り当てる(多重仮想空間)とした場合に、やろうと思えば
コードを共有化したり、ということができるでしょう。
 で更に。共有化のポリシーは何もコードだからとかでなくても
良いかもしれません。あるプロセスのaccess rightがXXだから
このプロセスの領域とはYY、、なんてことでも良いと。


> > B-Freeの実装はきちんと見てないけどx86のセグメントは使ってないと思うな。厳密
> > にいうと使わないことはできないから、全部のセグメントをゼロベースで固定して
> > いるということだけど。フラット(32bit near)モデルという奴ね。
>
> flat model と、segment model では、どちらが、どのような利点があるのでしょうか?

 ここでのsegment modelはOSの記憶管理方式の一つとして
のsegmentですか? どうも違うようですね。flat modelと対
比しているんですから。
 林さんはx86のセグメントと表現していますが、そちらのこと
ですか? セキュリティの話とどうつながるのか、私には判りま
せん。


> > h1suzuki> 追伸:
> > h1suzuki>  ちなみに、記憶空間に正負の signed integer を
> > h1suzuki>  使うという話は書かれていなかった。
> > h1suzuki>  あんまり一般的ではないのかなぁ?<坂村教授の発案?
> >
> > これは他では見ないですね。普通はアドレス空間は符号無しです。特許かも。
>
> たしか、符号付きにすると、address 幅を変えたときに移行が楽なんですよね。でも、教授はあ
> んまり特許を主張しないからなぁ。

 あぁ、、悲しき「うろ覚えのみ攻撃」ですが。

 坂村先生の著わした「コンピュータアーキテクチャ」のVAX11
の記述の辺りに符号付きアドレス空間が記載されていたような。
家に帰らないと確認できません。
 どなたか手元にある方の速やかな確認をお願いしたいところで
す。間違っている可能性大ですから。

----------------------------------
(株)ウェルビーン   鈴木保是
----------------------------------
  E_Mail : suzu@beebee.co.jp
  Tel    : 048-654-3499
  Fax    : 048-654-3520
----------------------------------