はじめよう!日本語 OpenVMS


前へ 次へ 目次 索引


第 14 章
プロセスについて

この章では

日本語 OpenVMS は,同時に複数の利用者が作業をしたり,複数のプログラムを実行できるマルチタスクのオペレーティング・システムです。しかし,利用者からは自分が 1 台のコンピュータを専有して使用しているように見えるので,他の利用者が何をしているのかを気にする必要はありません。これは,日本語 OpenVMS が利用者一人一人にプロセスというものを与えているからです。

この章では,プロセスについて説明します。

関連資料

14.1 プロセスとは





プロセスは,システムとの会話を可能にするために日本語 OpenVMS で作成される "ユーザの作業環境" あるいは "プログラムの実行環境" です。DCL コマンドやプログラムは,必ずこのプロセスという環境の中で実行されます。

ユーザが次のいずれかのタスクを実行すると,システムはプロセスを作成します。

図 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    

14.6 指定したプロセスに制御を移す -- ATTACH

指定したプロセスに制御を移すには次のようにします。


    $ ATTACH [/IDENTIFICATION=pid] [プロセス名]    

14.7 指定したプロセスを強制終了する -- STOP

プロセスを強制的に終了させるには次のようにします。


    $ 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 サブプロセスのみを表示する


第 15 章
シンボルを使用する

この章では

日本語 OpenVMS では,コマンド列を別の文字列で置き換えることができます。この文字列のことをシンボルといいます。シンボルを使用すると長いコマンド列を短くしたり,操作時間を短縮したり,変数として使用することができます。

ここでは,シンボルの利用について説明します。

関連資料

15.1 シンボルとは





コマンド列を別の任意の文字列で置き換えることができます。この文字列を,シンボルといいます。つまり,シンボルとはコマンド列の全体または一部につける別名と言えます。

DCL コマンドの中には,多くのパラメータや修飾子を必要とするために,コマンド列が非常に長くなるものがあります。そこで,シンボルを使用して長いコマンド列を別の文字列でおきかえて短くしたり,コマンド列内で変数として使用したりします。

いったんシンボルを定義すると,その後はシンボルを DCL コマンドと同様に使用することができます。定義したシンボルは,ログアウトするまで有効です。

15.2 シンボルを定義する

シンボルを定義するには次のようにします。


    $ シンボル =[=] "DCL コマンド列の全体または一部"    
        (1)                       (2)

  1. シンボル

    コマンド列を置き換える文字列。

    シンボルは 1 〜 255 文字の英数字,ドル記号($),アンダーライン(_)の文字列を使用します。先頭は英字,$,_ のいずれかにしなければいけません。(数字は使用できません。)

  2. コマンド列

    置き換えるコマンド列。

    実際にコマンド列を入力するように指定します。

15.3 シンボルの使用例




シンボル 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. 
    $ 

15.4 シンボルを確認する -- SHOW SYMBOL

シンボルを確認するには,SHOW SYMBOL コマンドを使用します。


    $ SHOW SYMBOL シンボル    

すべてのシンボルを表示する時は,シンボル名のかわりに /ALL 修飾子を使います。


    $ SHOW SYMBOL/ALL    

15.5 シンボルを削除する -- DELETE/SYMBOL

シンボルを削除するには次のようにします。


    $ DELETE/SYMBOL シンボル    

すべてのシンボルを削除する時は,シンボルのかわりに /ALL 修飾子を使います。また,シンボルはログアウトすると削除されます。


    $ DELETE/SYMBOL/ALL    

15.6 シンボルの省略形

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\
    $ 

15.7 ローカル・シンボルとグローバル・シンボル

シンボルには有効範囲の違いで,ローカル・シンボルとグローバル・シンボルの 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    

15.10 コマンド・プロシージャの中でシンボルを使う

コマンド・プロシージャとは 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 番目の例のように文字列を代入すると,シンボルは文字列変数になります。シンボルがどちらの型になるかは代入時に決定されるので,あらかじめ定義しておく必要はありません。


前へ 次へ 目次 索引