=================================================================== RCS file: /home/cvs/OpenXM/doc/OpenXM-specs/OX-RFC-102.tex,v retrieving revision 1.1 retrieving revision 1.4 diff -u -p -r1.1 -r1.4 --- OpenXM/doc/OpenXM-specs/OX-RFC-102.tex 2003/12/04 03:03:17 1.1 +++ OpenXM/doc/OpenXM-specs/OX-RFC-102.tex 2003/12/10 08:50:28 1.4 @@ -46,7 +46,7 @@ $G$ $B$K$h$j(B 0 $B$K4JLs$5$l$k$3$H$r<($;$P$h$$!#8D $B$3$l$i$O$4$/8B$i$l$?Nc$G$"$k$,(B, $B=EMW$J$3$H$O(B, $B$h$j9bEY$JJ,;6JBNs7W;;$,uBV$KF~$k(B. $B$$$:$l$+$NF0:n(B @@ -110,12 +110,12 @@ $0$ $B$r%9%?%C%/$KCV$/(B. $peer$ $B$O(B, $BAj$G$"$k(B. $host$ $B>e(B, $B%]!<%HHV9f(B $port$ $B$G(B accept $B$7$F$$$k(B server $B$KBP$7(B, connect $B$9$k(B. @@ -144,24 +144,12 @@ RFC-102 $B2<$G$N%W%m%0%i%_%s%0%9%?%$%k$O(B, $B4pK\E $B$9$J$o$A(B, master $B$G$"$k%W%m%0%i%`$,o(B, server $B$O8GM-$N8@8l$r;}$D$N$G(B, $B$3$N5!G=(B -$B$O(B server $B$NAH$_9~$_4X?t$H$7$Fl9g(B +$B$r9T$&$3$H$,$G$-$k(B. $B$3$N$?$a(B, server $B$O(B, server $B4VDL?.O)$K(B OX $B%G!<%?$r(B +$BAw?.$9$k5!G=(B, $B$^$?!"(Bserver $B4VDL?.O)$+$i(B OX $B%G!<%?$rl9g(B $B$K%G!<%?$NH/?.85(B (root)$B$N<1JL;R$O3F(B server $B$,$"$i$+$8$aCN$C$F$*$/I,MW$,$"$k(B. - \item master $B$+$i(B server $B%0%k!<%W$X$N(B broadcast master $B$+$i(B server $B%0%k!<%W$X$N(B broadcast $B$O(B, $B%0%k!<%WFb$N(B @@ -200,16 +187,178 @@ broadcast $B$r>= 1; mask > 0; mask >>= 1 ) + if ( (r+mask) < nserver_102 ) { + dst = myrank_102+mask; + if ( dst >= nserver_102 ) dst -= nserver_102; + ox_send_data_102(dst,data); + } + *rp = data; +} +\end{verbatim} +$BF1MM$Nl9g$b(B, $B4JC1$N$?$a(B $root$ $B$,(B $0$ $B$G$"$k$H$7$F(B, $B<1JL;R$,(B +$B<1JL;R$,(B $b$ $B$N(B server $B$G$O(B, $b$ $B$r2<0L%S%C%H$+$i=g$K8+$F(B, + +\begin{enumerate} +\item $B$=$N%S%C%H$,(B 1 $B$J$i(B, $B$=$N%S%C%H$r(B 0 $B$K$7$?<1JL;R$r$b$D(B server +($B$=$l$OI,$:B8:_$9$k(B) $B$K%G!<%?$rAw?.$7$F=*N;(B. +\item $B$=$N%S%C%H$,(B 0 $B$G(B, $B$=$N%S%C%H$r(B 1 $B$K$7$?CM$,(B $nserver-1$ $B0J2<(B +$B$J$i(B, $B$=$3$+$i%G!<%?$rl9g$K$b(B, +server $B$NAm?t$r(B $nserver$ $B$H$9$k$H$-(B, $B9b!9(B $\lceil \log_2 nserver\rceil$ +$B%9%F%C%W8e$K$O= nserver_102 ) dst -= nserver_102; + ox_send_data_102(dst,data); + break; + } else { + src = r+mask; + if ( src < nserver_102 ) { + src += root; + if ( src >= nserver_102 ) src -= nserver_102; + ox_recv_102(src,&id,&data0); + (*func)(CO,data,data0,&t); data = t; + } + } + if ( !r ) + *rp = data; + else + *rp = 0; +} +\end{verbatim} + + \section{$B%(%i!<=hM}(B} server $B$O(B RFC-100,101 $B$N(B $B%j%;%C%H%W%m%H%3%k$r do\\ + \> \>$data$ $\leftarrow$ $B<1JL;R(B $j$ $B$N(B server $B$+$i$N(B OX $B%G!<%?(B\\ + \> while $data \neq$ {\tt OX\_SYNC\_BALL}\\ +end for\\ +for $j = i+1$ to $nserver-1$ do\\ + \> {\tt OX\_SYNC\_BALL} $B$r(B $B<1JL;R(B $j$ $B$N(B server $B$KAw?.(B\\ +end for +\end{tabbing} +$B$3$NuBV$K$"$k(B. $B$h$C$F(B, $BR2p$9$k(B. +\subsection{server $B4VDL?.O)3+@_(B} + +$B0J2<$N4X?t$O(B, master $BMQ$KMQ0U$5$l$?$b$N$G(B, SM $B%3%^%s%IAw?.MQ$N(B +wrapper $B$G$"$k(B. + +\begin{itemize} +\item {\tt ox\_set\_rank\_102($Server$,$Nserver$,$Rank$)} + +$Server$ $B$,B0$9$k%0%k!<%W$KB0$9$k(B server $B$NAm?t(B $Nserver$ $B$H(B, +$B$=$N(B server $B$N%0%k!<%WFb<1JL;R(B $Rank$ $B$rDLCN$9$k(B. + +\item {\tt ox\_tcp\_accept\_102($Server$,$Port$,$Rank$)} + +$Server$ $B$KBP$7(B, $B%]!<%HHV9f(B $Port$ $B$G(B, +$B<1JL;R(B $Rank$ $B$N(B server $B$+$i$N(B connect $BBT$A>uBV$KF~$k$h$&;X<($9$k(B. +$BDL?.$,@.N)$7$?$i(B, $BAw(B $Host$ $B$N%]!<%HHV9f(B $Port$ $B$N(B TCP $B%]!<%H$KBP$7$F(B +connect $B$9$k$h$&;X<($9$k(B. +$BDL?.$,@.N)$7$?$i(B, $BAw