加藤@ODNです.

In article <m3wtzlp6e1.fsf@nospam.maedapc.cc.tsukuba.ac.jp>, MAEDA Atusi wrote:
>Hideki Kato <katoh@pop12.odn.ne.jp> writes:
>
>> >世界中のGC研究者にとってJavaはありがたい飯の種を提供してくれてると思い
>> >ます。
>> 
>> 大いに同感.って事は GC 研究者も増えてるんでしょうか?
>> #Lisp も長いこと触ってないなぁ...
>
>イエ、ソレホドデハないと思います。
>
>(応用寄りの研究者は増えていても、システム寄りの研究の人気は下がってい
>る気がします。)

あら残念.これからどんどん重要性が増すと思いますけどねぇ...<GC
#まぁ,地味なのは否めないが...(謝

>> 「本当のリアルタイム制御」と言っても,許される遅れ時間には色々あるわ
>> けで,実際問題として「1 ms じゃダメ」ってレベルの応用はそう多くない
>> と思います.
>> #プラントでもセンサ信号をサンプルする頻度はそう高くない場合が多い.
>> #車の EFI 辺りも同程度じゃないかな?
>> #そう言えば,ケータイも Java 使ってるとか...
>
>そうなんですけどお。たとえば
>「たいてい1ms以内で応答するけど、10秒止まる可能性がないわけではない」
>システムは、
>「1秒以内なら十分だけど、5秒止まると工場が爆発する可能性がないわけでは
>ない」プラントでは使えませんよねえ。
>
>「上限の保証がないと困る」と言われた時に、UnixやWindowsでは保証のしよ
>うがないわけで…

α のホストは FSP,WS は Unix+realtime 拡張 を使ってましたが,それ
は兎も角,copying gc の場合,ヒープのサイズが決まれば,gc に掛かる時
間の上限は見積もれます(でしたよね?)から,大丈夫だったような.

>(ケータイJavaも、実時間性の不要な対話的アプリにしか使ってないのでは。)

OS は TRON 系でしったか,確か.でも,仮名漢字変換辺りだと,0.1 秒を
超えたら0点って仕様もありそう.
#要求仕様でいいんですよね?<ハード/ソフトの区別

>> >うむむ。Facom αとかの話でしょうか。広告に「プラント制御」とか書いてあ
>> >るのを見て心配になったことがあります。
>> 
>> 私なんかも最初は心配だったんですが,プラントは「長時間の連続運転に耐
>> える」事が最優先で,処理が停まっていられる時間の制約は緩いものも多い
>> ようです.
>> #詳しくは知らないが,要は内部状態の変化速度との兼ね合いでしょう.
>> この点では,(ゆっくりした)メモリーリークの方がずっとずっと問題だと
>> 思われます.
>
>最適化のためのプランニングとかをLispでやって、それはリアルタイム性がな
>くても良いと言うことなんでしょうかねえ。まあ、リアルタイム応用とは言え
>ないような。

(オフラインの)プランニングではなく,実際の運用(スケジューリング)
です.処理に許される時間はけっこう長いけど,仕様としてはハードです.
#担当者も「100%」を満たすのに色々苦労してたような記憶が...
#まぁ,駄目な確率がハードの故障確率より低ければ十分なわけですが.

>> 人間絡みの場合,マウス,キーボード等からの入力に対して 0.1 秒以内に
>> 何らかの反応を返さないとまずいという問題があります.これはアプリケー
>> ションが介在しないといけないので,「全部」鷹揚ってわけにはいきません
>> ねぇ.
>> #素人さんは,反応が無いと慌ててキーを連打したりして,さらに処理を遅
>> #らせてしまうんだよね.
>
>ただ、そういうのは反応が遅くても仕様通りであることは違いないし、せいぜ
>い「qualityが低い」という程度であって、エラーではないですよねえ。そこ
>がハードリアルタイムな応用とは違うところで。

パソコン(情報/家電屋)とケータイ(通信屋)では要求仕様も違う可能性
もあります.
#私ならエラーにするだろうなぁ...でないと悪評が立ちそうだもん.

>> 古く(ルーツ?)は MacLisp の BOX 演算辺りでしょうか.UtiLisp の 
>> GC に関しても,要望は結構有ったんだけど,大きくいじらないといけない
>> からやらなかった.実際,GC に無関係で構わないデータってのもたくさん
>> あるんだけど,スマートな見せ方(機能仕様レベル)が難しくて...
>
>Javaだとprimitive type (char, int, float…)はGCに無関係ですね。

ここが Java の特徴でしたね.タグを無くすとはなんと大胆な,,,GC が
大変,と思ったものです.

>C#だとvalue type (int等の他structも含む)があって、これはGCされません。
>GCされるreference type (object等) との間でboxing, unboxingが行なえます。

結局 BOX から進歩してないのね(嘆.

>> #実行中のある時点で,今生きているものは回収不要と宣言するってアイデ
>> #アもありましたねぇ,そう言えば.実装は簡単なんだけど,なんで作らな
>> #かったんだったか...
>
>そういう処理系もありますね。Emacs Lispのpure領域とか。最初はSymbolics
>かなあ。

多分もっと古いと思います.その pure に相当する機能は Lisp1.5 の処理
系にもありましたから.
#ユーザーに開放していたかどうかは不明ですが.
-- 
Hideki Kato <mailto:katoh@pop12.odn.ne.jp>