日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
OpenVMS
|
目次 | 索引 |
プロセスとは,システムとの会話を可能にするために, OpenVMS オペレーティング・システムで作成される環境です。プロセスには, 独立プロセス (他のプロセスから独立しているプロセス) と サブプロセス (別のプロセスに従属して存在し,資源を得ているプロセス) があります。メイン・プロセスは親プロセスとも呼ばれ,独立プロセスの 1 つです。本章では,次のことについて説明します。
ユーザが次のいずれかのタスクを実行すると,システムはプロセスを作成します。
特権,シンボル,論理名などプロセスが使用する属性を,プロセス・コンテキストといいます。システムは,プロセス固有の特性を ユーザ登録ファイル (UAF) から取得します。UAF は,システムへのアクセスを許可されたユーザをリストして,それぞれのユーザのプロセスの特性を定義します。通常,UAF の管理はシステム管理者が行います。システムは一度に 1 つずつプログラム ( イメージまたは実行可能イメージとも呼ばれる ) を実行しますが,これらのプログラムはプロセスと呼ばれる環境内で実行されます。
現在のプロセスのプロセス・コンテキストを表示するには, SHOW PROCESS/ALL コマンドを使用します。
次の例は,プロセス・コンテキストのサンプルです。
11-DEC-2002 13:30:37.12 (1) User: CLEAVER (2) Process ID: 24E003DC (3) Node: ZEUS Process name: "CLEAVER" (4) Terminal: VTA2195: TNA2170: (Host: 16.32.123.45 Port: 6789) (5) User Identifier: [DOC,CLEAVER] (6) Base priority: 4 (7) Default file spec: DISK1:[CLEAVER] (8) Number of Kthreads: 1 Devices allocated: ALPHAI$VTA2195: Process Quotas: (9) Account name: DOC CPU limit: Infinite Direct I/O limit: 1024 Buffered I/O byte count quota: 119616 Buffered I/O limit: 1024 Timer queue entry quota: 400 Open file quota: 299 Paging file quota: 100080 Subprocess quota: 30 Default page fault cluster: 64 AST quota: 798 Enqueue quota: 5000 Shared file limit: 0 Max detached processes: 0 Max active jobs: 0 Accounting information: (10) Buffered I/O count: 16424 Peak working set size: 13920 Direct I/O count: 12014 Peak virtual size: 185392 Page faults: 11113 Mounted volumes: 0 Images activated: 68 Elapsed CPU time: 0 00:04:18.55 Connect time: 0 00:08:22.76 Authorized privileges: NETMBX TMPMBX Process privileges: (11) GROUP may affect other processes in same group TMPMBX may create temporary mailbox OPER operator privilege NETMBX may create network device Process rights: (12) CLEAVER resource INTERACTIVE LOCAL System rights: SYS$NODE_ZEUS Auto-unshelve: on Image Dump: off Soft CPU Affinity: off Parse Style: Traditional Home RAD: 0 Scheduling class name: none Process Dynamic Memory Area (13) Current Size (Kb) 128.00 Current Size (Pagelets) 256 Free Space (Kb) 111.18 Space in Use (Kb) 16.81 Largest Var Block (Kb) 109.69 Smallest Var Block (bytes) 8 Number of Free Blocks 10 Free Blocks LEQU 64 Bytes 4 There is 1 process in this job: (14) CLEAVER (*) |
独立プロセスは,親プロセスの種類にしたがって,会話型または非会話型のいずれかになります。 DCL の RUN コマンドまたは Create Process システム・サービス ($CREPRC) にユーザが指定する引数に応じて,ユーザまたは OpenVMS オペレーティング・システムがログインを行います。 RUN も $CREPRC も SYS$SYSTEM で LOGINOUT.EXE イメージを実行します。
16.3 サブプロセスの使用
SPAWN コマンドを使用すると,現在のプロセスのサブプロセスを作成できます。このサブプロセスの中で,ユーザはシステムと会話して,サブプロセスからログアウトして親プロセスに戻ったり,親プロセスとサブプロセスを切り替えたりできます。一度に 1 つのプロセスしか実行できません。
システム上のそれぞれのユーザは,
ジョブ階層構造 によって表現されます。ジョブ階層構造とは,メイン・プロセスを頂点とし,それに属するすべてのプロセスとサブプロセスからなる階層をいいます。サブプロセスは親プロセスに従属し,親プロセスが終了すると削除されます。省略時の設定では,サブプロセスは,親プロセスの名前の後にアンダスコアと固有の番号を付けた名前を持ちます。たとえば,親プロセス名が DOUGLASS の場合,サブプロセスには DOUGLASS_1,DOUGLASS_2 というような名前が付けられます。
16.3.1 Spawn タスクによるサブプロセスの使用
タスクに割り込み,2 番目のタスクを実行してから,元のタスクに戻るには, Ctrl/Y を使用してタスクに割り込んだ後, 2 番目のタスクを実行するサブプロセスを生成し,そのサブプロセスを終了してから, CONTINUE コマンドを入力して元のタスクに戻ります。省略時の設定では,ユーザがサブプロセスを作成すると,親プロセスはハイバネート状態になり,サブプロセスの中で DCL レベルでユーザに制御が渡されます。省略時のディレクトリは親プロセスの現在のディレクトリです。たとえば,Ctrl/Y を押して EVE 編集セッションに割り込んだ場合には, CONTINUE コマンドを入力してから Ctrl/W を押して画面を再表示します。
16.3.2 サブプロセスの使用による複数のタスクの実行
最初のタスクの実行を続けながら,2 番目のタスクを実行するには, SPAWN/NOWAIT コマンドでサブプロセスを作成します。 SPAWN/NOWAITは,非会話型のバッチに似たサブプロセスを生成し,入力を必要としないコマンドを実行するときにだけ使用します。
親プロセスとサブプロセスの両方が同時に実行されるため,双方がターミナルを制御しようとします。混乱が生じるのを避けるため,次の修飾子やパラメータも指定してください。
SPAWN コマンドの /INPUT 修飾子を指定すると,サブプロセスは非会話型のプロセスとして生成され,重大エラーまたはファイルの終端を検出すると終了します。 DCL レベルでは,Ctrl/Z がファイルの終端標識として扱われます。
16.3.3 サブプロセスの作成
ユーザが作成するそれぞれのプロセスは一意であるため,通常は,あるプロセスで実行されたコマンドが他のプロセスに影響することはありません。ただし,ターミナルの制御はプロセス間で受け渡されるため,ターミナル属性に影響するコマンド (たとえば,SET TERMINAL) は,そのターミナルを制御するすべてのプロセスに影響を及ぼします。たとえば,1 つのプロセスがエコー表示を禁止し,それを復元せずに終了した場合には,次にターミナルを制御するプロセスでもエコー表示は禁止されたままになります。変更したターミナル属性は,SET TERMINAL コマンドによって再設定します。
次の例では,ユーザは,Ctrl/Y を押してコマンド・イメージ (TYPE コマンド) に割り込んでサブプロセスを生成し,そのサブプロセスを終了してから元のプロセスに戻ります。
$ TYPE MICE.TXT Once the weather turns cold, mice may find a crack in the foundation and enter your house. They are looking for food and shelter from the harsh weather ahead. . . . [Ctrl/Y] $ SPAWN %DCL-S-SPAWNED, process DOUGLASS_1 spawned %DCL-S-ATTACHED, terminal now attached to process DOUGLASS_1 $ MAIL MAIL> . . . MAIL> EXIT $ LOGOUT Process DOUGLASS_1 logged out at 31-DEC-1999 12:42:12.46 %DCL-S-RETURNED, control returned to process DOUGLASS $ CONTINUE Once inside, they may gnaw through electrical wires and raid your food. Because mice reproduce so quickly, what started as one or two mice can quickly become an invasion. If you seal the cracks and holes on the exterior of your foundation, you can prevent these rodents from ever getting in. |
SPAWN コマンドによって作成されたサブプロセスを終了するには,次のいずれかのコマンドを使用します。
次の例は,DOUGLASS_1 サブプロセスを終了して, DOUGLASS プロセスに接続する方法を示しています。
$ ATTACH DOUGLASS %DCL-S-RETURNED, control returned to process DOUGLASS $ SHOW PROCESS 11-DEC-2002 10:34:58.50 User: DOUGLASS Process ID: 2061C478 Node: ALPHAI Process name: "DOUGLASS" Terminal: VTA2195: TNA2170: (Host: 16.32.123.45 Port: 6789) User Identifier: [DOC,DOUGLASS] Base priority: 4 Default file spec: DISK1:[DOUGLASS] Number of Kthreads: 1 Devices allocated: ALPHAI$VTA2195: Soft CPU Affinity: off |
サブプロセス・コンテキストは,サブプロセスが親プロセスから受け継ぐ環境です。省略時の設定では,サブプロセスは,省略時の値,特権,シンボル,論理名,制御文字,メッセージ形式,チェック状態,キー定義を受け継ぎます。これらの項目が集まってサブプロセスの環境が形成されます。
次の項目は,親プロセスからは受け継がれません。
サブプロセスが親プロセスのコンテキスト項目の一部を受け継がないようにするには,次の SPAWN 修飾子を使用します。
SPAWN コマンド修飾子 | 禁止または変更される項目 |
---|---|
/CARRIAGE_CONTROL, /PROMPT | DCL プロンプト |
/NOCLI | CLI (コマンド言語インタプリタ。省略時の設定では DCL 。) |
/NOKEYPAD | キーパッド定義 |
/NOLOGICAL_NAMES | 論理名 |
/NOSYMBOL | シンボル |
/SYMBOL 修飾子と /LOGICAL_NAMES 修飾子は,システムが定義するシンボル ($SEVERITY や $STATUS など) やシステムが定義する論理名 (SYS$COMMAND や SYS$OUTPUT など) には影響を及ぼしません。
論理名やシンボルをサブプロセスにコピーすると,時間(数秒)がかかるため,サブプロセスの中で論理名やシンボルを使用する予定がなければ, SPAWN コマンドに /NOLOGICAL_NAMES と /NOSYMBOL 修飾子を使用するとよいでしょう。サブプロセスを頻繁に使用する場合には,ATTACH コマンドを使用すると,最も効率良くサブプロセスで作業を開始したり終了したりできます。この方法を使用すると,システムが新しいサブプロセスを作成するのを待つことなく,親プロセスとサブプロセスとの間で制御を迅速に切り換えることができます。
16.4 仮想ターミナルでの切断されたプロセスの接続
仮想ターミナルが使用可能な状態にあるときに,モデム回線の接続が断たれた場合,プロセスは切断された仮想ターミナル・プロセスとしてシステム上にアクティブ状態のまま存在し続けます。ユーザは,システム管理者によって指定された時間 ( 省略時の値は 900 秒,すなわち 15 分 ) 内にプロセスに再接続しなければなりません。この時間内にプロセスに再接続しないと,プロセスは削除されます。
注意 UIC (利用者識別コード) の一致する仮想ターミナル・プロセスにしか接続できません。 |
目次 | 索引 |
|