=================================================================== RCS file: /home/cvs/OpenXM/doc/OpenXM-specs/OX-RFC-101.tex,v retrieving revision 1.2 retrieving revision 1.7 diff -u -p -r1.2 -r1.7 --- OpenXM/doc/OpenXM-specs/OX-RFC-101.tex 2000/11/30 08:46:23 1.2 +++ OpenXM/doc/OpenXM-specs/OX-RFC-101.tex 2020/03/14 01:21:56 1.7 @@ -1,12 +1,12 @@ %#!make OX-RFC-101-ja.dvi -% $OpenXM: OpenXM/doc/OpenXM-specs/OX-RFC-101.tex,v 1.1 2000/11/30 02:41:36 takayama Exp $ +% $OpenXM: OpenXM/doc/OpenXM-specs/OX-RFC-101.tex,v 1.6 2000/12/05 23:19:49 takayama Exp $ \documentclass{article} %%\IfFileExists{epsfig.sty}{\usepackage{epsfig}}{} \usepackage{html} /*&jp -\title{{\bf エンジン起動プロトコル, OpenXM RFC 101 Draft}} -\author{ 小原功任\thanks{{金沢大学理学部計算科学教室, \htmladdnormallink{http://omega.s.kanazawa-u.ac.jp/ohara/}{http://omega.s.kanazawa-u.ac.jp/ohara/}}}} -\date{ 2000年, 11月30日} +\title{{\bf 潟吾活儀潟, OpenXM RFC 101 Draft}} +\author{ 絨篁\thanks{{羃√ぇ絖絖荐膊腱絖絎, \htmladdnormallink{http://omega.s.kanazawa-u.ac.jp/ohara/}{http://omega.s.kanazawa-u.ac.jp/ohara/}}}} +\date{ 2000綛, 1130} */ /*&eg \title{{\bf Protocol to Start Engines, OpenXM RFC 101 Draft}} @@ -19,10 +19,10 @@ \section{Session Management} /*&jp -この文書では ``OpenXM RFC 100, OpenXM の設計と実装''\ +吾с ``OpenXM RFC 100, OpenXM 荐荐絎茖''\ \htmladdnormallink{http://www.math.kobe-u.ac.jp/OpenXM/OpenXM-RFC.html}{http://www.math.kobe-u.ac.jp/OpenXM/OpenXM-RFC.html} -で定義されたコントロールサーバを置き換える新しいコントロールサーバの -仕様を説明する. +у臂潟潟若泣若臀違潟潟若泣若 +篁罕茯. */ /*&eg @@ -37,36 +37,36 @@ a replacement of the control server defined in /*&jp -我々は新しいコントロールサーバを提案する。そのサンプル実装として oxc が -提供される。新しいコントロールサーバは以下の点で従来のものと異なる。 +違潟潟若泣若罅泣潟絎茖 oxc +箴違潟潟若泣若篁ヤ鴻уャ違 \begin{enumerate} -\item コントロールサーバは OpenXM スタックマシンであり、 -CMObject/Primitive をサポートする。 -\item 計算サーバの起動はスタックマシンコマンドを介して行う。 -\item 一つのコントロールサーバから複数の計算サーバを起動できる。 +\item 潟潟若泣若 OpenXM 鴻帥激潟с +CMObject/Primitive 泣若 +\item 荐膊泣若莎桁鴻帥激潟潟潟篁茵 +\item 筝ゃ潟潟若泣若茲違荐膊泣若莎桁с \end{enumerate} -oxc の導入により、いままでのサーバの起動手順はコントロールサーバの起動と -計算サーバの起動に分離される。コントロールサーバを起動するには次の手順を -取る。まず、適当なオプション(後述)をつけて、コントロールサーバを起動する -と、コントロールサーバはソケットを作成し、connect する。クライアントは、 -listen, accept する。接続後、バイトオーダを決定する。バイトオーダの決定 -方法については、従来のものと変更はない。 -OpenXM/doc/OpenXM-specs/control.tex を見よ。その後、コントロールサーバは -待機状態にはいる。コントロールサーバは OpenXM スタックマシンであるから、 -mathcap の交換などの手続きに入ってもよい。 +oxc 絨ャ障障с泣若莎桁潟潟若泣若莎桁 +荐膊泣若莎桁≪潟潟若泣若莎桁罨< +障綵激с(緇菴)ゃ潟潟若泣若莎桁 +潟潟若泣若純宴篏connect ゃ≪潟 +listen, accept ・膓緇ゃ若羆阪ゃ若 +羆阪号ゃ緇ャ紊眼 +(OpenXM/doc/OpenXM-specs/control.tex 荀)緇潟潟若泣若 +緇罘倶潟潟若泣若 OpenXM 鴻帥激潟с +mathcap 篋ゆ膓ャc \subsection{OpenXM control stack machine} -コントロールサーバは、次のスタックマシンコマンドを実装しなければならない。 -それぞれのスタックコマンドの意味は、{\bf 以前のコントロールサーバとは異なる。} +潟潟若泣若罨<鴻帥激潟潟潟絎茖違 +鴻帥潟潟潟{\bf 篁ュ潟潟若泣若違} \begin{enumerate} \item \begin{verbatim} SM_control_spawn_server \end{verbatim} -新たに計算サーバを起動する。サーバの起動に成功すると、その ID を返す。 +違荐膊泣若莎桁荐膊泣若莎桁 ID 菴 Request: \begin{tabular}{|c|c|} \hline @@ -76,7 +76,7 @@ Request: Stack before the request: \begin{tabular}{|c|c|} \hline -{\sl Integer32} Port & {\sl String} ServerName \\ +{\sl List} Argument \\ \hline \end{tabular} @@ -88,11 +88,23 @@ Stack after the request: Output: none. +Argument: +\begin{tabular}{|c|c|c|} \hline +{\sl List} Ports & {\sl String} ServerName & ...\\ +\hline +\end{tabular} + +Ports: +\begin{tabular}{|c|c|} \hline +{\sl Integer32} Port & ... \\ +\hline +\end{tabular} + \item \begin{verbatim} SM_control_terminate_server \end{verbatim} -指定された計算サーバに SIGKILL を送る。 +絎荐膊泣若 SIGKILL Request: \begin{tabular}{|c|c|} \hline @@ -112,7 +124,7 @@ Output: none. \begin{verbatim} SM_control_kill \end{verbatim} -全ての計算サーバに SIGKILL を送る。 +荐膊泣若 SIGKILL Request: \begin{tabular}{|c|c|} \hline @@ -126,7 +138,7 @@ Output: none. \begin{verbatim} SM_control_reset_connection_server \end{verbatim} -指定された計算サーバに SIGUSR1 を送る。 +絎荐膊泣若 SIGUSR1 Request: \begin{tabular}{|c|c|} \hline @@ -146,7 +158,7 @@ Output: none. \begin{verbatim} SM_control_reset_connection \end{verbatim} -全ての計算サーバに SIGUSR1 を送る。これは下位互換性のための措置である。 +荐膊泣若 SIGUSR1 筝篏篋сェ臀с Request: \begin{tabular}{|c|c|} \hline @@ -161,38 +173,95 @@ Output: none. \bigskip \bigskip +\subsection{OpenXM reset protocol} +OX-RFC-100 羣 + \subsection{A sample implementation} \subsubsection{Command Line Arguments} -コントロールサーバの実行形式は getopt(1) に ``c:p:h:x'' で指定するオプショ -ンを持つ。すなわち、 +潟潟若泣若絎茵綵√ getopt(3) ``c:p:h:x'' ф絎激 +潟ゃ< \begin{verbatim} oxc -c [password] -h [hostname] -p [portnumber] -x \end{verbatim} -\subsubsection{Local Functions} +{\tt -h} сゃ≪潟鴻絎ゃ≪潟 +hostname:port 緇≦違 -コントロールサーバの各実装は、独自にローカル関数をサポートしてもよい。 -実際、サンプル実装 oxc はローカル関数をサポートしている。 +{\tt -x} 激с潟-x 絎ょ医紊 DISPLAY +荐絎oxc 違腴(c潟)篏<祉若吾 +腴阪oxc 腴腮蕁医紊OpenXM\_XTERM ф絎 + xterm с -ここでは、oxc のローカル関数 spawn について説明しよう。 +激с {\tt -h} 絎劫ャ篏茵 -spawn は計算サーバを起動し、少なくとも 2 個の引数を持つ。すなわち、 +\subsubsection{ゃ・膓} + +oxc 激с {\tt -h} 絎潟潟ゃ潟т +鴻宴罔羣ュ緇с罘純ゃ茯 +障罔羣ュ若帥罨<綵√違 +\begin{tabular}{|c|c|c|c|c|} +\hline +{\sl int32} port & {\sl String} hostname & {\sl byte} 0 & {\sl String} password & {\sl byte} 0\\ +\hline +\end{tabular} + +\medskip + +String C 鴻潟違сcmo\_string 激篁 +鴻潟違с + +\noindent +若帥箴: \\ +port = 1324 = 0x052c, hostname = ``orange'', password = ``hogehoge'' +翫 \begin{verbatim} -spawn(計算サーバ名, ポート番号, モード, ...) +00 00 05 2c 00 00 00 07 6f 72 61 6e 67 65 00 00 +00 00 09 68 6f 67 65 68 6f 67 65 00 \end{verbatim} -という形式である。「モード」はなくてもよい。ここで、「計算サーバ名」は -CMO\_STRING 型のオブジェクト、「ポート番号」、「モード」は CMO\_INT32型 -のオブジェクトである。ローカル関数の実行は SM\_executeFunction による。 -すなわち各引数を順にスタックに積み、最後にSM\_executeFunction を実行する。 -SM\_executeStringByLocalParser は利用できないので注意する。 -spawn は、計算サーバの起動に成功したら (CMO\_INT32, サーバID) を、失 -敗したらエラーオブジェクトをスタックに積む。例えば計算サーバが発見できな -かった場合にはエラーオブジェクトを積むことになる。コントロールサーバは -access(2) を用いて PATH から計算サーバを探す。もし見つからなければ、fork -をせずに、エラーオブジェクトをスタックに積む。 +隙莎桁祉鴻罨<с +\begin{enumerate} +\item +ゃ≪潟 pipe(2) <ゃc鴻 fd0, fd1 + +\item +fork(2) у祉鴻絖祉鴻 dup2(fd1, 0) 絎茵 + 荀祉鴻 fd0 絖祉鴻 0 ・膓 +\item +絖祉鴻 exec("ssh remotehost controlserver") ≪若 +壕儀荀祉鴻 fd0 ≪若祉鴻 0 ・膓 + +\item +篆∴君≪若祉鴻罔羣ュ荀 +≪若祉鴻罔羣ュ≪菴違鴻若c若帥 +茯粋昭≪若祉鴻若帥 connect(2) 絎茵 +\end{enumerate} + + +\subsubsection{Local Functions} + +潟潟若泣若絎茖若∽違泣若 +絎泣潟絎茖 oxc 若∽違泣若 + +сoxc 若∽ spawn ゃ茯 + +spawn 荐膊泣若莎桁絨 1 綣違ゃ綣違 +SM\_control\_spawn\_server х {\sl List} Argument 筝綵√ +<鴻帥(劻) +\begin{tabular}{|c|c|c|} \hline +{\sl List} Argument & {\sl Integer32} 1 & {\sl String} ``spawn'' \\ +\hline +\end{tabular} +腥帥SM\_executeFunction 潟潟若 +SM\_executeStringByLocalParser сф絵 + +spawn 荐膊泣若莎桁 (CMO\_INT32, 泣若ID) 紊 +若吾с鴻帥腥箴域膊泣若肴с +c翫若吾с腥潟潟若泣若 +access(2) PATH 荐膊泣若「荀ゃ違fork +若吾с鴻帥腥 */ /*&eg