[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[b-free: 1289] Re: 中間コードの実行ファイル化 (Re: Memory Protection)
林です。
In message <199804070328.AA00364@killy.rigy.co.jp>
"[b-free: 1287] Re: 中間コードの実行ファイル化 (Re: Memory Protection)"
"Akira Katagiri <killy@rigy.co.jp>" wrote:
killy> |これを中間コードに対しても行うようにするには、スクリプト処理系(要は中
killy> |間コードの VM) をページアウトしないようにメモリに常駐させるという方法
killy> |があります。読み取った中間コードは、スクリプト処理系のデータ領域に入る
killy> |ります。このデータ領域を制御することによって、通常の実行ファイルと同じ
killy> |ようなことができます。
killy> |
killy> |たとえば、メモリが足りなくなった時にはデータ領域の中に入っている中間コー
killy> |ドを破棄して、再び必要となったときに、中間コードファイルを読み込むよう
killy> |にします。
killy>
killy> うーん、これをスクリプト処理系でやるのはちょっとね(^^;。
killy> 理想的には、オブジェクトファイルフォーマットとも連動して、その向きの
killy> 属性が導入されるのが良いですね。(「準コード域」というような・・)
Windowsのメモリにはこういう属性がありましたね。破棄可能とか移動可能とかいった
スワップやフラグメンテーション除去のための設定があったような。
で、中間コードがスワップアウトされない方法ですが、OSがちゃんと実装されている
という前提でですけど、中間コードをメモリに読み込む代わりに中間コードファイル
をVMのメモリ空間に(読み込み専用で)マップすれば良いのですよ。マップは書き換え
られていない限りスワップアウト時にファイルへの書き出しは行いませんから。自己
書き換えコードは別になりますが、その場合はそもそも破棄可能でないですから問題
はありませんね。
--
Takanori Hayashi
takanori@ohsaki.meidensha.co.jp