前へ | 次へ | 目次 | 索引 |
この章では
日本語 OpenVMS は,同時に複数の利用者が作業をしたり,複数のプログラムを実行できるマルチタスクのオペレーティング・システムです。しかし,利用者からは自分が 1 台のコンピュータを専有して使用しているように見えるので,他の利用者が何をしているのかを気にする必要はありません。これは,日本語 OpenVMS が利用者一人一人にプロセスというものを与えているからです。
この章では,プロセスについて説明します。
関連資料
プロセスは,システムとの会話を可能にするために日本語 OpenVMS で作成される "ユーザの作業環境" あるいは "プログラムの実行環境" です。DCL コマンドやプログラムは,必ずこのプロセスという環境の中で実行されます。
ユーザが次のいずれかのタスクを実行すると,システムはプロセスを作成します。
システムはユーザがログインするたびにそのユーザ用にプロセスを作成します。
システムはバッチ・ジョブを受け取るとそのジョブ用にプロセスを作成します。バッチ・ジョブが完了すると,システムはプロセスを削除します。
ユーザが SPAWN コマンドを使用すると,システムはプロセスを作成します。
/DETACHED 修飾子または /UIC=uic 修飾子を使用してプログラムを実行すると,システムはプロセスを作成します。
図 14-1 は,プロセスの構成要素を概念的に表しています。
図 14-1 プロセスの構成要素
実行可能なプログラムのことです。イメージは必ずプロセスの環境の中で実行されます。この環境を規定するのが他の 3 つの構成要素です。
イメージが参照している仮想アドレスの情報を持つ空間です。
CPU のことです。
プロセスのソフトウェア状態を規定するもので,次のような項目を含んでいます。
プロセスの切り替えを行う際の優先順位
どのような作業を行うことができるかを規定する権限
システムのいろいろな資源をどれだけ使用できるかを規定する制限値
これらの情報は,システム管理者がユーザ登録簿にユーザ名,パスワードを登録する際に設定します。
14.2 プロセスの種類
日本語 OpenVMS では,おもに次の 3 のプロセスの種類があります。
ユーザがログインした時に作られる会話型ログイン
ネット経由の COPY や FTP(ネットワーク・プロセス)
SPAWN コマンドなどで作られる($ SPAWN)
バッチ処理をする時などに使われるバッチ・プロセス($ SUBMIT)
指定されたイメージを実行するプロセスを作成する($ RUN/DETACH)
14.3 自分のプロセスの状態を表示する -- SHOW PROCESS
自分のプロセスの状態を確認するには次のようにします。
$ SHOW PROCESS |
修飾子には次のようなものがあります。
/ALL | 詳細な情報もつけて表示する |
/SUBPROCESS | プロセスの親子関係を字下げして表示する |
14.4 プロセス名を変更する -- SET PROCESS
プロセス名を変更するには次のようにします。
$ SET PROCESS/NAME="プロセス名" |
プロセス名を二重引用符(")で囲った文字列に変更します。15 字以内の文字列が指定できます。
14.5 サブプロセスを作成する -- SPAWN
サブプロセスを作成し,制御をサブプロセスに移すには次のようにします。
$ SPAWN |
修飾子には次のようなものがあります。
/NOWAIT | 制御は親プロセスに置く |
サブプロセスを終了するには,次のようにします。
$ LOGOUT |
指定したプロセスに制御を移すには次のようにします。
$ ATTACH [/IDENTIFICATION=pid] [プロセス名] |
プロセスを強制的に終了させるには次のようにします。
$ STOP [/IDENTIFICATION=pid] [プロセス名] |
プロセス名,または PID(Process IDentification)の一方を指定します。
14.8 各種プロセスに関する情報をユーザ名で得る -- SHOW USERS
各種プロセスに関する情報をユーザ名で得るには,次のようにします。
$ SHOW USERS [ユーザ名] |
ユーザ名を指定するとそのユーザに関する情報のみが得られます。
修飾子には次のようなものがあります。
/FULL | 各ユーザが持っているプロセスの情報を表示する |
/INTERACTIVE | 会話型プロセスのみを表示する |
/SUBPROCESS | サブプロセスのみを表示する |
14.9 システム上にある全プロセスを表示する -- SHOW SYSTEM
システム上にあるすべてのプロセスを表示するには,次のようにします。
$ SHOW SYSTEM |
修飾子には次のようなものがあります。
/BATCH | バッチ・プロセスのみを表示する |
/INTERACTIVE | 会話型プロセスのみを表示する |
/NETWORK | ネットワーク・プロセスのみを表示する |
/SUBPROCESS | サブプロセスのみを表示する |
この章では
日本語 OpenVMS では,コマンド列を別の文字列で置き換えることができます。この文字列のことをシンボルといいます。シンボルを使用すると長いコマンド列を短くしたり,操作時間を短縮したり,変数として使用することができます。
ここでは,シンボルの利用について説明します。
関連資料
コマンド列を別の任意の文字列で置き換えることができます。この文字列を,シンボルといいます。つまり,シンボルとはコマンド列の全体または一部につける別名と言えます。
DCL コマンドの中には,多くのパラメータや修飾子を必要とするために,コマンド列が非常に長くなるものがあります。そこで,シンボルを使用して長いコマンド列を別の文字列でおきかえて短くしたり,コマンド列内で変数として使用したりします。
いったんシンボルを定義すると,その後はシンボルを DCL コマンドと同様に使用することができます。定義したシンボルは,ログアウトするまで有効です。
15.2 シンボルを定義する
シンボルを定義するには次のようにします。
$ シンボル =[=] "DCL コマンド列の全体または一部" (1) (2) |
コマンド列を置き換える文字列。
シンボルは 1 〜 255 文字の英数字,ドル記号($),アンダーライン(_)の文字列を使用します。先頭は英字,$,_ のいずれかにしなければいけません。(数字は使用できません。)
置き換えるコマンド列。
実際にコマンド列を入力するように指定します。
シンボル DSD に,ディレクトリ内のファイルをサイズと作成日時の情報も含めて一覧表示するコマンド列全体を割当てます。
$ DSD == "DIR/SIZE/DATE" |
DCL コマンドのかわりに DSD と入力するとサイズと作成日時情報も含めたファイルの一覧が表示されます。
$ DSD Directory DKA0:[YAMADA] LOGIN.COM;1 1 9-MAY-2001 15:59:46.53 MAIL.MAI;1 27 22-JAN-2002 10:41:56.21 Total of 2 files, 28 blocks. $ |
コマンドの短縮形としてのシンボルを使う際には,必要に応じて追加の修飾子やパラメータを指定することもできます。
次の例では,/OWNER 修飾子を追加し,/SIZE 修飾子のかわりに /SIZE=ALL 修飾子を指定しています。またパラメータとして *.COM を指定しています。
$ DSD/OWNER/SIZE=ALL *.COM Directory DKA0:[YAMADA] LOGIN.COM;1 1/9 9-MAY-2001 15:59:46.53 [VMS,YAMADA] Total of 1 file, 1/9 blocks. $ |
また,あるコマンドに対し,特定のパラメータを頻繁に指定する場合,そのパラメータもシンボルに含めてしまうことができます。次に例を示します。
$ DIRCOM == "DIR/SIZE/DATE *.COM" $ DIRCOM Directory DKA0:[YAMADA] LOGIN.COM;1 1 9-MAY-2001 15:59:46.53 Total of 1 file, 1 blocks. $ |
シンボルを確認するには,SHOW SYMBOL コマンドを使用します。
$ SHOW SYMBOL シンボル |
すべてのシンボルを表示する時は,シンボル名のかわりに /ALL 修飾子を使います。
$ SHOW SYMBOL/ALL |
15.5 シンボルを削除する -- DELETE/SYMBOL
シンボルを削除するには次のようにします。
$ DELETE/SYMBOL シンボル |
すべてのシンボルを削除する時は,シンボルのかわりに /ALL 修飾子を使います。また,シンボルはログアウトすると削除されます。
$ DELETE/SYMBOL/ALL |
DCL コマンドと同じように,シンボルも省略形を使うことができます。シンボルを定義するときに,シンボル名の中にアスタリスク(*)文字を入れると,* 以後の文字は省略可能になります。
省略形を指定したシンボル TODAY を定義します。
$ TOD*AY = "SHOW TIME" |
省略形を使ってシンボル名を入力します。
$ TODAY 14-FEB-2002 17:54:49 $ TODA 14-FEB-2002 17:54:54 $ TOD 14-FEB-2002 17:54:57 |
TO は省略形として指定していないため,エラーとなります。
$ TO %DCL-W-IVVERB, unrecognized command verb - check validity and spelling \TO\ $ |
シンボルには有効範囲の違いで,ローカル・シンボルとグローバル・シンボルの 2 種類があります。一般に,ローカル・シンボルは,計算結果を一時的に格納しておくための変数に使います。グローバル・シンボルは,ユーザの環境を設定するために使います。
イコール記号 1 つ(=)で定義したシンボルのことをローカル・シンボルと言い,イコール記号 2 つ(==)で定義したシンボルのことをグローバル・シンボルと言います。
同じ名前のローカル・シンボルとグローバル・シンボルを定義した場合は,ローカル・シンボルが優先されます。ローカル・シンボルを削除するとグローバル・シンボルを参照できるようになります。
グローバル・シンボルを定義するには,次のようにします。
$ シンボル == "DCL コマンド列の全体または一部" |
15.8 グローバル・シンボルを参照する -- SHOW SYMBOL/GLOBAL
グローバル・シンボルを参照するには,次のようにします。
$ SHOW SYMBOL/GLOBAL シンボル |
すべてのグローバル・シンボルを表示する時は,シンボル名のかわりに /ALL 修飾子を使います。
$ SHOW SYMBOL/GLOBAL/ALL |
15.9 グローバル・シンボルを削除する -- DELELTE/SYMBOL/GLOBAL
グローバル・シンボルを削除するには,次のようにします。
$ DELETE/SYMBOL/GLOBAL シンボル |
すべてのグローバル・シンボルを削除する時は,シンボルのかわりに /ALL 修飾子を使います。
$ DELETE/SYMBOL/GLOBAL/ALL |
コマンド・プロシージャとは DCL コマンドと使用されるデータ行を 1 つのテキスト・ファイルにまとめたものです。(詳しくは,第 17 章 をご覧ください。)
通常,コマンド・プロシージャの中では,ローカル・シンボルを使います。これはコマンド・プロシージャ内で定義されたローカル・シンボルの有効範囲が,そのコマンド・プロシージャの中だけに限られるからです。コマンド・プロシージャの中で定義されたローカル・シンボルは,コマンド・プロシージャの実行を終了すると消去されます。
一方グローバル・シンボルは,DCL コマンド・ライン上でもコマンド・プロシージャの中でも定義,参照,変更,削除をすることができます。そのため,何らかの値を DCL プロンプト・レベルに返す場合や,ユーザの環境を設定する場合に使うことができます。
たとえば,ログイン・コマンド・プロシージャの中で,ユーザがよく使うコマンドの短縮形を定義する場合には,必ずグローバル・シンボルを使う必要があります。次に例を示します。
$ cd == "set default" $ pwd == "show default" $ who == "show user" $ less == "type /page=save" |
ログイン・コマンド・プロシージャ LOGIN.COM は,ログイン時に一連の DCL コマンドを自動的に実行するためのものです。(詳しくは,第 17 章 をご覧ください。)
15.11 変数としてのシンボルを使用する
シンボルは,計算結果を一時的に格納しておくための変数として使うことができます。この機能は主にコマンド・プロシージャの中で使われますが,DCL プロンプト上でも使うことができます。次に例を示します。
$ x =(1 + 2)* 3 $ show symbol x X = 9 Hex = 00000009 Octal = 00000000011 $ surname = "山田" $ show symbol surname SURNAME = "山田" $ |
最初の例のようにシンボルに計算結果を代入すると,シンボルは数値変数になります。2 番目の例のように文字列を代入すると,シンボルは文字列変数になります。シンボルがどちらの型になるかは代入時に決定されるので,あらかじめ定義しておく必要はありません。
前へ | 次へ | 目次 | 索引 |