Re: realtime GC (Re: GC Re: LISP を...)
加藤%割り込み@ODNです.
In article <ch8dko$2arn@utogw.gssm.otsuka.tsukuba.ac.jp>, kuno@gssm.otsuka.tsukuba.ac.jp wrote:
>久野です。
>
>kono@ie.u-ryukyu.ac.jpさん:
>> あるいは、
>> incremental GC の時間を制約できる
>> ってことなのかな。
>
> そうですそうです。
これは Realtime OS(の必要条件の一つ?)と同じですね.
> 3色塗りって知ってますか。メモリセルを
>
> 白→調べてない
> 灰→生きている。そのセル中の参照はまだチェックしてない。
> 黒→生きている。そのセル中の参照もチェック完了。
>
>の3種類に分類する。GCフェーズの最初は全部白からはじめる。まずルー
>トからたどれるものを灰色にする。次に灰色のセルを1つ取り、そこか
>ら直接たどれるセルを調べ、それが白なら灰色にする。済んだら最初の
>セルは黒にする。これを繰り返して灰色がなくなったら白がゴミ確定。
>これだとどこで止めても問題ないでしょ? alloc()があるごとに一定数
>ずつ灰色セルを処理する、という形でGCすれば上限が保証できる。
んで,問題はこれでヒープを使い切ってしまった時.一体どうすればいい
んでしょう?
#KCL でしたか,cons 毎に何セル処理するかみたいなパラメータが有りま
#したが,流石に原始的過ぎるのではないかしらむ.
--
Hideki Kato <mailto:katoh@pop12.odn.ne.jp>
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735