[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[b-free: 1286] 中間コードの実行ファイル化 (Re: Memory Protection)
隆一です。
B-Free ML と program ML の両方に出しています。
Reply に注意。
From: Akira Katagiri <killy@rigy.co.jp>
Subject: [b-free: 1281] Re: Memory Protection
Date: Tue, 07 Apr 1998 00:27:54 +0900
> Hideaki Suzukiさん、こんにちは。リギーコーポレーションの片桐です。
>
...[snip]...
> 割り込みですみません。ちょっと思い出したもので。
> 以前にMindをOS/2に乗せた時(インタプリタ方式にした時)から気になっている
> ことがあります。
> 既存のOSでは「コード」「データ」といった概念があり、これはCPUネイティブ
> なコード(?)を走らせることが前提になっていますね。
>
> 一方でインタプリタを使う時には、「OSが言うところのコードではないの
> だが、性質としてはコード」・・いわゆる「中間コード」の概念が出て
> 来ます。
> これはOSの言うところのコードでないため、細かいところでいくつか制約
> が出ることがありました。
> OS/2の場合ですと、本来なら破棄・再ロードというメモリ属性にするとこ
> ろなのにスワップ対象になってしまい、もったいないと思いました。
メモリが足りなくなったときに、実行ファイルのコード領域についてはページ
アウトせずに、実行ファイルの内容を単に再利用するという機能ですね。
たしかに、中間コードについてもこういう風にできたらページアウト用の領域
を節約できるのは確かです。
これを中間コードに対しても行うようにするには、スクリプト処理系(要は中
間コードの VM) をページアウトしないようにメモリに常駐させるという方法
があります。読み取った中間コードは、スクリプト処理系のデータ領域に入る
ります。このデータ領域を制御することによって、通常の実行ファイルと同じ
ようなことができます。
たとえば、メモリが足りなくなった時にはデータ領域の中に入っている中間コー
ドを破棄して、再び必要となったときに、中間コードファイルを読み込むよう
にします。
# メモリが足りなくなったことをどうやって知るかが問題ですが、大抵の場合、
# メモリの使用量は OS から教えてもらうことができるはずです。
ただ、スクリプト処理系が仮想メモリ管理のようなことをするので、処理が複
雑になってしまうかもしれません。
> BTRONが勉強不足で分かっておらず申し訳ないのですが、もし似たような
> 事情だとしたら何か対応がされると良いのですがね。
BTRON の場合だと、BTRON3 (正確には SIGB で使っている BTRON3 互換 OS)
だけが仮想メモリの機能としてディスクへのスワップ(ページアウト?)をして
いるはずです。
BTRON3 では、中間コードを使うようなプログラムはなかったと思うので、
その辺の対処は多分考えられていないでしょう。
(マイクロスクリプトはどうかな?)
p----------------------------------------------------------------------q
| FROM R.Night |
| E-mail: |
| rnaitoh@st.rim.or.jp |
| Key fingerprint = 89 EB 77 95 40 C0 3C CC 37 A1 A7 FA 1C 66 FF D0 |
b----------------------------------------------------------------------d