Mercurial > hg > Papers > 2009 > linda-sigos
comparison 7.tex @ 7:624a45b40bfe
done.
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 28 Mar 2009 13:45:19 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
6:0688dba0327e | 7:624a45b40bfe |
---|---|
1 \section{ メタエンジンの実装} | |
2 | |
3 ここでの Linda Server は、Single Thread に実装されており、 | |
4 Java nio のselect で待ち、通信パケットを受け取って処理する | |
5 というメインループを持っている。 | |
6 メタエンジンは、このメインループを置き換える形で | |
7 実装した。つまり、メタエンジン自体が{\tt sync()} | |
8 しながらループするという構造を持っている(図\ref{メタエンジン})。 | |
9 | |
10 メタエンジンは、Linda serverの立ち上げ時、または、 | |
11 メタエンジンそのものから、特殊なものに置き換えるAPI | |
12 を用意する。 | |
13 | |
14 APIは、通常のLindaのAPIだが、メタエンジンでは、 | |
15 タプルスペースに対して直接アクセスする。 | |
16 | |
17 Single Thread Server上のメインループの一部として | |
18 実現されているので、タプルスペースをlockすることなく | |
19 自由にアクセスすることができる。ここでのLinda API | |
20 は{\tt in,rd}で待ち合わせしない仕様になっていて、 | |
21 待ち合わせは、{\tt sync()}とポーリング、または、 | |
22 call back によって実現されている。従って、 | |
23 メインループの一部としても、{\tt in,rd}の待ち合わせ | |
24 によってデッドロックするようなことはない。 | |
25 | |
26 |