version 1.12, 2000/01/17 07:15:52 |
version 1.13, 2000/01/17 08:50:57 |
|
|
% $OpenXM: OpenXM/doc/issac2000/session-management.tex,v 1.11 2000/01/17 06:10:41 noro Exp $ |
% $OpenXM: OpenXM/doc/issac2000/session-management.tex,v 1.12 2000/01/17 07:15:52 noro Exp $ |
|
|
\section{Session Management} |
\section{Session Management} |
\label{secsession} |
\label{secsession} |
Line 11 OpenXM. We assume that various clients and servers |
|
Line 11 OpenXM. We assume that various clients and servers |
|
establish connections dynamically and communicate to each |
establish connections dynamically and communicate to each |
other. Therefore it is necessary to give a dynamical and unified |
other. Therefore it is necessary to give a dynamical and unified |
method to start servers and to establish connections. |
method to start servers and to establish connections. |
In addition to that, interruption of executions and |
In addition to that, interruption of execution and |
debugging facilities |
debugging facilities |
are necessary for interactive distributed computation. |
are necessary for interactive distributed computation. |
|
|
Line 51 setting the data channel appropriately. |
|
Line 51 setting the data channel appropriately. |
|
|
|
After finishing the above task as a launcher, the launcher process |
After finishing the above task as a launcher, the launcher process |
acts as a control server and controls the server process created by |
acts as a control server and controls the server process created by |
itself. As to the control server see Section \ref{control}. |
itself. As to the details of the control server see Section \ref{control}. |
|
|
As the data channel is used to exchange binary data, |
As the data channel is used to exchange binary data, |
the byte order conversion is necessary when a |
the byte order conversion is necessary when a |
Line 78 server. The launcher introduced in Section \ref{launch |
|
Line 78 server. The launcher introduced in Section \ref{launch |
|
is used as a control process. We call such a process a {\it |
is used as a control process. We call such a process a {\it |
control server}. In contrast, we call a server for computation an {\it |
control server}. In contrast, we call a server for computation an {\it |
engine}. As the control server and the engine runs on the |
engine}. As the control server and the engine runs on the |
same machine, it is easy to manipulate the engine, especially to |
same machine, it is easy to send a signal from the control server. |
send a signal from the control server. A control server is also an |
A control server is also an |
OpenXM stack machine and it accepts {\tt SM\_control\_*} commands |
OpenXM stack machine and it accepts {\tt SM\_control\_*} commands |
to send signals to a server or to terminate a server. |
to send signals to a server or to terminate a server. |
|
|
Line 107 after restarting an engine. |
|
Line 107 after restarting an engine. |
|
initiate a safe resetting of an engine. |
initiate a safe resetting of an engine. |
The control server sends {\tt SIGUSR1} to the engine if it receives |
The control server sends {\tt SIGUSR1} to the engine if it receives |
{\tt SM\_control\_reset\_connection} from the client. |
{\tt SM\_control\_reset\_connection} from the client. |
Under the OpenXM reset protocol an engine and a client act as follows. |
Under the OpenXM reset protocol, an engine and a client act as follows. |
|
|
\vskip 2mm |
\vskip 2mm |
\noindent |
\noindent |
{\it Client side} |
{\it Client side} |
\begin{enumerate} |
\begin{enumerate} |
\item After sending {\tt SM\_control\_reset\_connection} to the |
\item After sending {\tt SM\_control\_reset\_connection} to the |
control server, the client enters the resetting state. It skips all {\tt |
control server, the client enters the resetting state. It discards all {\tt |
OX} messages from the engine until it receives {\tt OX\_SYNC\_BALL}. |
OX} messages from the engine until it receives {\tt OX\_SYNC\_BALL}. |
\item After receiving {\tt OX\_SYNC\_BALL} the client sends |
\item After receiving {\tt OX\_SYNC\_BALL} the client sends |
{\tt OX\_SYNC\_BALL} to the engine and returns to the usual state. |
{\tt OX\_SYNC\_BALL} to the engine and returns to the usual state. |
Line 129 the engine enters the resetting state. |
|
Line 129 the engine enters the resetting state. |
|
The engine sends {\tt OX\_SYNC\_BALL} to the client. |
The engine sends {\tt OX\_SYNC\_BALL} to the client. |
The operation does not block because |
The operation does not block because |
the client is now in the resetting state. |
the client is now in the resetting state. |
\item The engine skips all OX messages from the engine until it |
\item The engine discards all OX messages from the engine until it |
receives {\tt OX\_SYNC\_BALL}. After receiving {\tt OX\_SYNC\_BALL} |
receives {\tt OX\_SYNC\_BALL}. After receiving {\tt OX\_SYNC\_BALL} |
the engine returns to the usual state. |
the engine returns to the usual state. |
\end{enumerate} |
\end{enumerate} |