next up previous contents index
Next: ゴールの投げだし Up: 処理系の構成 Previous: 共有変数オブジェクト

     
局所領域と共有領域

局所領域には、局所処理を行うための管理領域と動的に局所ゴールや KL1 デー タを配置する局所ヒープとがある。管理データには局所ヒープの使用アドレスや実 行ゴールへのポインタなどの情報を持っている。共有領域には共有領域を管理する データ領域とゴールや KL1 データを配置する共有ヒープ領域がある。共有管理デ ータには、外部ゴールへのポインタや各ノードの割り込みフラグなどがある。 付加分散するときには、他のノードからアクセスできるようにゴールを共有メ モリに配置する。

各局所ヒープはGCのために2つの空間に分割されており、 そのGCはすでに述べた逐次核のGCにほぼ等しい。

共有ヒープは3つの 空間に分割されている。新・旧・未使用とに分け、これらはサイクリックに切り替わる。

一般には、共有ヒープから局所ヒープへポインタ付けすることはない。しかし、いく つかの場合にそのようなポインタが必要となる。そのような場合には間接テーブルに より、ノード番号とその間接テーブルのインデックスと局所ヒープのあるアドレ スを指定する。局所GC時には、そのテーブルもGC ルートとして 扱い、また適正に更新する。

各ノードは動的にデータを配置するために共有ヒープ面を持ち、各面は現在アク セス中のノード表を持っている。同期のためのオーバヘッドを小さくするために 各ノードはゴールやデータを配置するページを確保する。そのページを使いきっ た時に、各ノードは現在のヒープ面から新たにページを確保する。

ノードはGC時にアクセス面を旧面から新面に移動する。最後に旧面を参照して いたノードが新面にアクセス面を移動した時に旧面を参照するポインタがなくな ったことが保証され、その旧面は次のサイクルで未使用面に切り替わる。



Sekita Daigo
1998-05-18