=================================================================== RCS file: /home/cvs/OpenXM/doc/OpenXM-specs/OX-RFC-101.tex,v retrieving revision 1.6 retrieving revision 1.7 diff -u -p -r1.6 -r1.7 --- OpenXM/doc/OpenXM-specs/OX-RFC-101.tex 2000/12/05 23:19:49 1.6 +++ 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.5 2000/12/05 06:38:55 ohara 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 @@ -104,7 +104,7 @@ Ports: \begin{verbatim} SM_control_terminate_server \end{verbatim} -指定された計算サーバに SIGKILL を送る。 +絎荐膊泣若 SIGKILL Request: \begin{tabular}{|c|c|} \hline @@ -124,7 +124,7 @@ Output: none. \begin{verbatim} SM_control_kill \end{verbatim} -全ての計算サーバに SIGKILL を送る。 +荐膊泣若 SIGKILL Request: \begin{tabular}{|c|c|} \hline @@ -138,7 +138,7 @@ Output: none. \begin{verbatim} SM_control_reset_connection_server \end{verbatim} -指定された計算サーバに SIGUSR1 を送る。 +絎荐膊泣若 SIGUSR1 Request: \begin{tabular}{|c|c|} \hline @@ -158,7 +158,7 @@ Output: none. \begin{verbatim} SM_control_reset_connection \end{verbatim} -全ての計算サーバに SIGUSR1 を送る。これは下位互換性のための措置である。 +荐膊泣若 SIGUSR1 筝篏篋сェ臀с Request: \begin{tabular}{|c|c|} \hline @@ -174,32 +174,32 @@ Output: none. \bigskip \subsection{OpenXM reset protocol} -OX-RFC-100 に準拠する。 +OX-RFC-100 羣 \subsection{A sample implementation} \subsubsection{Command Line Arguments} -コントロールサーバの実行形式は getopt(3) に ``c:p:h:x'' で指定するオプショ -ンを持つ。すなわち、 +潟潟若泣若絎茵綵√ getopt(3) ``c:p:h:x'' ф絎激 +潟ゃ< \begin{verbatim} oxc -c [password] -h [hostname] -p [portnumber] -x \end{verbatim} -{\tt -h} では、クライアントのホスト名を指定する。クライアントはあらかじめ、 -hostname:port を開いて待ち受けなければならない。 +{\tt -h} сゃ≪潟鴻絎ゃ≪潟 +hostname:port 緇≦違 -{\tt -x} オプションはなくてもよい。-x を指定し、かつ環境変数 DISPLAY が -設定されていると、oxc は新たに端末(ウィンドウ)を作成して、メッセージをそ -の端末に出力する。oxc の用いる端末の種類は環境変数OpenXM\_XTERM で指定す -る。デフォルトは xterm である。 +{\tt -x} 激с潟-x 絎ょ医紊 DISPLAY +荐絎oxc 違腴(c潟)篏<祉若吾 +腴阪oxc 腴腮蕁医紊OpenXM\_XTERM ф絎 + xterm с -オプション {\tt -h} が指定されないときには特別な動作を行う。 +激с {\tt -h} 絎劫ャ篏茵 -\subsubsection{パイプを利用した接続} +\subsubsection{ゃ・膓} -oxc はオプション {\tt -h} が指定されないときには、コマンドラインで与えら -れるべき情報を、標準入力から得ようとする。ここでは、この機能について説明 -する。まず、標準入力から受け取るデータは次の形式をしていなければならない。 +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\\ @@ -208,60 +208,60 @@ oxc はオプション {\tt -h} が指定されないときには、コマ \medskip -String は C のストリングではなくて、cmo\_string のような、長さ付きの -ストリングである。 +String C 鴻潟違сcmo\_string 激篁 +鴻潟違с \noindent -データの例: \\ +若帥箴: \\ port = 1324 = 0x052c, hostname = ``orange'', password = ``hogehoge'' -の場合 +翫 \begin{verbatim} 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} -さて具体的な起動プロセスは次の通りである。 +隙莎桁祉鴻罨<с \begin{enumerate} \item -クライアントは pipe(2) を用いて、ファイルディスクリプタ fd0, fd1 を -手にいれる。 +ゃ≪潟 pipe(2) <ゃc鴻 fd0, fd1 + \item -fork(2) で子プロセスを生成し、子プロセスは dup2(fd1, 0) を実行する。 -これで 親プロセスの fd0 と子プロセスの 0 が接続されている。 +fork(2) у祉鴻絖祉鴻 dup2(fd1, 0) 絎茵 + 荀祉鴻 fd0 絖祉鴻 0 ・膓 \item -子プロセスは exec("ssh remotehost controlserver") としてリモートプロセ -ス起動する。このとき、親プロセスの fd0 とリモートプロセスの 0 が接続さ -れている。 +絖祉鴻 exec("ssh remotehost controlserver") ≪若 +壕儀荀祉鴻 fd0 ≪若祉鴻 0 ・膓 + \item -この通信路はリモートプロセスからは標準入力として見えている。 -リモートプロセスは標準入力から既に述べたフォーマットにしたがってデータを -読み込む。リモートプロセスは、そのデータを用いて connect(2) を実行する。 +篆∴君≪若祉鴻罔羣ュ荀 +≪若祉鴻罔羣ュ≪菴違鴻若c若帥 +茯粋昭≪若祉鴻若帥 connect(2) 絎茵 \end{enumerate} \subsubsection{Local Functions} -コントロールサーバの各実装は、独自にローカル関数をサポートしてもよい。 -実際、サンプル実装 oxc はローカル関数をサポートしている。 +潟潟若泣若絎茖若∽違泣若 +絎泣潟絎茖 oxc 若∽違泣若 -ここでは、oxc のローカル関数 spawn について説明しよう。 +сoxc 若∽ spawn ゃ茯 -spawn は計算サーバを起動し、少なくとも 1 個の引数を持つ。この引数は -SM\_control\_spawn\_server で用いられる {\sl List} Argument と同一の形式で -ある。すなわち、スタックに(右がトップ) +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 は利用できないので注意する。 +腥帥SM\_executeFunction 潟潟若 +SM\_executeStringByLocalParser сф絵 -spawn は、計算サーバの起動に成功したら (CMO\_INT32, サーバID) を、失 -敗したらエラーオブジェクトをスタックに積む。例えば計算サーバが発見できな -かった場合にはエラーオブジェクトを積むことになる。コントロールサーバは -access(2) を用いて PATH から計算サーバを探す。もし見つからなければ、fork -をせずに、エラーオブジェクトをスタックに積む。 +spawn 荐膊泣若莎桁 (CMO\_INT32, 泣若ID) 紊 +若吾с鴻帥腥箴域膊泣若肴с +c翫若吾с腥潟潟若泣若 +access(2) PATH 荐膊泣若「荀ゃ違fork +若吾с鴻帥腥 */ /*&eg