Mercurial > hg > Papers > 2009 > linda-sigos
view 7.tex @ 14:35f802ff2842 default tip
fix
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 24 Apr 2009 17:41:24 +0900 |
parents | 624a45b40bfe |
children |
line wrap: on
line source
\section{ メタエンジンの実装} ここでの Linda Server は、Single Thread に実装されており、 Java nio のselect で待ち、通信パケットを受け取って処理する というメインループを持っている。 メタエンジンは、このメインループを置き換える形で 実装した。つまり、メタエンジン自体が{\tt sync()} しながらループするという構造を持っている(図\ref{メタエンジン})。 メタエンジンは、Linda serverの立ち上げ時、または、 メタエンジンそのものから、特殊なものに置き換えるAPI を用意する。 APIは、通常のLindaのAPIだが、メタエンジンでは、 タプルスペースに対して直接アクセスする。 Single Thread Server上のメインループの一部として 実現されているので、タプルスペースをlockすることなく 自由にアクセスすることができる。ここでのLinda API は{\tt in,rd}で待ち合わせしない仕様になっていて、 待ち合わせは、{\tt sync()}とポーリング、または、 call back によって実現されている。従って、 メインループの一部としても、{\tt in,rd}の待ち合わせ によってデッドロックするようなことはない。