システム入力装置(SYSIN)と標準入力装置(SIU)
- 1 システム入力装置(SYSIN)と標準入力装置(SIU)
-
NECの公式のマニュアルの1つシステム管理説明書を読む限り、いろいろ書いてありますが、システム入力装置(SYSIN)と標準入力装置(SIU)は結局使う側としてはほとんど同じもののようです。ということで、ここでは標準入力装置(SIU)としてまとめて書くことします。
SYSIN、SIUとは何かですが、簡単に言うとLinuxの標準入力とほぼ同じ概念です。必要に応じでシステムが入力先をキーボードからだったりファイルからだったりに変更します。
そのように書くとLinuxのようにパイプやリダイレクトのようなものを使って”cat file1.txt | grep abc > file2.txt”みたいに自由に入力先や出力先を変えられるのではないか、と思う人もいるかもしれません。A−VXはそんなに自由に変更できません。ある条件下でシステムが自動で変更します。
メインフレーム系の人はSYSINと聞いて、MVS系のOSとかACOSにあるSYSIN/SYSOUTのことかな?と思うかもしれませんが、それとも微妙に違います。
正直言ってA−VXではSYSINとかSIUとかあまり知らなくてもやっていけます。システムで自動で切り替わるので気にしなくても良い感じです。
- 2 SYSIN/SIUの種類
-
SYSIN/SIUとして使用できる種類は以下です。
- 端末(WS:ワークステーション);SYSIN/SIU
- ジョブストリームライブラリ(JSL):SYSIN/SIU
- パラメータライブラリ(PML):SYSIN/SIU
- メモリ(内部コール命令の付加情報):SIU
最初の端末は、キーボードとかです。端末にバーコードリーダーが付いていればバーコードリーダーもそうです。端末についている入力装置ですね。
他はファイルです。
- SYSIN/SIUの選択
-
端末で操作開始コマンドを行った直後はSYSIN/SIUは端末です。端末のキーボードから入力したものがそのまま入力になります。
ジョブを起動したときに、SYSIN/SIUが変わります。ジョブとして起動するものは、3つあったと思います。ロードモジュール、ジョブストリーム、パラメータメンバの3つです。
ジョブの種類別のSYSIN/SIU選択 種類 動 作 概 要 ロードモジュール 端末がSYSIN/SIUとして選択される。 ジョブストリーム
パラメータメンバJS、PM(PS)がSYSIN/SIUとして選択される。 ロードモジュールのときは、端末が入力になるということです。キーボード(バーコードリーダー)から入力された情報がそのまま入力になります。
ジョブストリームやパラメタメンバを実行するときは通常バッチジョブで端末からのキーボード入力などは介しません。なのでこの場合はキーボードを介さなくてもいいように、入力データはジョブストリーム自身やパラメータメンバ自身に書いておく仕組みです。
そのような理由でジョブストリームやパラメータメンバの場合はSYSIN/SIUは自分自身、ジョブストリームやパラメータメンバになります。
メモリ(内部コール命令の付加情報)とは、例えばCOBOLのシステムサブルーチン:CBLRUNのときのパラメータのことです。
- 3 置換機能、一時切り換え機能
-
標準入力装置(SIU)は今まで説明した通り、システムで自動的に切り替わるのでユーザーが自由に変更することはできません。
ただそれでは不便なので、置換機能、一時切り換え機能というものが用意されています。
既にジョブ制御言語(JCL)のところで説明済みなので、詳細はそちらを参照してください。
簡単に説明すると、置換機能とはジョブストリームのデータのところに&1とか&2とか書いてジョブ起動時にデータを置換することができる機能、一時切り換え機能とはデータのところに^_と書いて一時的にSIUを端末に切り替える機能、です。
- 4 標準出力は?
-
Linuxのように明確な標準出力は無いようです。
NECのシステム管理説明書を引用すると
SIUがワークステーション(WS)の場合には、ジョブプログラムからのWS 入出力命令は要求どおりWSに対して実行され、
〜中略〜
SIUがWS 以外の場合には、ジョブからのWS への表示要求は無視されます。ただし、0 行に対する(行, 列)指定の表示要求だけは、WS に対して表示されます。
[システム管理説明書(2009年11月版)−2.7 標準入力装置(SIU)からのデータ入力]よりと書いてあるので、標準出力はSIUに付いて回る感じです。
メインフレームの人は、SYSOUTはどうなの?と思うかもしれませんが、SYSOUTは無いです。プリンターに印刷したいときはスプールファイルに出力してください。ログを出したいなら適当な順編成ファイルを作ってそこに出力してください。画面に出力されたものをそのままファイル出力したいというときは・・・、簡単な方法はないかな?