前へ | 次へ | 目次 | 索引 |
新しい修飾子 /RAD は,DCL コマンドの SUBMIT と SET/ENTRY に追加されます。
ユーザは登録したバッチ・ジョブを実行する RAD 番号を修飾子の値で指定します。SHOW ENTRY および SHOW QUEUE/FULL コマンドが強化されて,バッチ・ジョブの RAD 設定をリストするようになりました。
3.3.2.1 例
RAD 設定のないバッチ・キューにジョブが登録されたときには,そのジョブは SUBMIT コマンドで指定された RAD を使用して実行します。
次のコマンドは,TEST.COM をキュー ANYRADQ に登録します。ANYRADQ キューには RAD 設定はありません。
$ SUBMIT/HOLD/QUEUE=ANYRADQ /RAD=1 TEST.COM Job TEST (queue ANYRADQ, entry 23) holding $ SHOW ENTRY/FULL 23 Entry Jobname Username Blocks Status ----- ------- -------- ------ ------ 23 TEST SYSTEM Holding On idle batch queue ANYRADQ Submitted 24-JUL-2001 14:19:37.44 /KEEP /NOPRINT /PRIORITY=100 /RAD=0 File: _$1$DKB200:[SWEENEY.CLIUTL]TEST.COM;1 |
RAD 設定のあるバッチ・キューにジョブが登録されたときには,そのジョブは,SUBMIT コマンドで指定された RAD に関係なく,キューに対して指定された RAD を使用して実行します。この動作は,他のバッチ・システム機能と一貫性があります。
キュー BATCHQ1 は,/RAD=0 として定義されています。次の SUBMIT コマンドの例では,ユーザは登録時に RAD 1 を指定しましたが,RAD 0 で実行するジョブが作成されます。
$ SUBMIT/HOLD/QUEUE=BATCHQ1 /RAD=1 TEST.COM Job TEST (queue BATCHQ1, entry 24) holding $ SHOW ENTRY 24/FULL Entry Jobname Username Blocks Status ----- ------- -------- ------ ------ 24 TEST SYSTEM Holding On idle batch queue BATCHQ1 Submitted 24-JUL-2001 14:23:10.37 /KEEP /NOPRINT /PRIORITY=100 /RAD=0 File: _$1$DKB200:[SWEENEY.CLIUTL]TEST.COM;2 |
バッチ・ジョブの RAD を指定すると,ジョブ・コントローラは新しい HOME_RAD 引数がジョブの RAD 値に設定されたプロセスを作成します。
ジョブに対して指定された RAD がターゲット・システムで無効であった場合,ジョブ・コントローラは BADRAD メッセージをオペレータ・コンソールに出力します。正しくない RAD 値がバッチ・キューの RAD 設定に一致した場合,バッチ・キューは停止します。ジョブはキューに残ります。
3.3.3.1 エラー処理
次の例は,実行時処理のエラーを示しています。
SYSTEM@QUEBIT> SUBMIT/NONOTIFY/NOLOG/QUEUE=BATCHQ1 TEST.COM Job TEST (queue BATCHQ1, entry 30) started on BATCHQ1 OPCOM MESSAGES SYSTEM@QUEBIT> START/QUEUE BATCHQ1 %%%%%%%%%%% OPCOM 25-JUL-2001 16:15:48.52 %%%%%%%%%%% Message from user SYSTEM on QUEBIT %JBC-E-FAILCREPRC, job controller could not create a process %%%%%%%%%%% OPCOM 25-JUL-2001 16:15:48.53 %%%%%%%%%%% Message from user SYSTEM on QUEBIT -SYSTEM-E-BADRAD, bad RAD specified %%%%%%%%%%% OPCOM 25-JUL-2001 16:15:48.54 %%%%%%%%%%% Message from user SYSTEM on QUEBIT %QMAN-E-CREPRCSTOP, failed to create a batch process, queue BATCHQ1 will be stopped $SYSTEM@QUEBIT> WRITE SYS$OUTPUT - _$ F$message(%x'F$GETQUI("DISPLAY_ENTRY","CONDITION_VECTOR","30")') %SYSTEM-E-BADRAD, bad RAD specified |
バッチ・キューの RAD 値を変更しても,バッチ・キューに登録されているジョブは,キューに対して指定された新しい RAD 値で動的に更新されるわけではありません。
実行中のジョブは,元の RAD 値を使用して処理を続行します。保留中または時間切れ実行状態のジョブは,元の RAD 値のままです。ただし,そのようなジョブが実行可能になると,ジョブは新しい RAD 値で更新され,キューに対して指定された RAD で実行します。
3.4 RAD アプリケーション・プログラミング・インタフェース
アプリケーション・プログラマとシステム管理者は,システムの省略時の値が運用環境のニーズを満たせない場合には,RAD に固有の多数のインタフェースを使ってプロセスとメモリのロケーションを制御することができます。以下の項は簡単な説明です。詳細については適切な『OpenVMS System Services Reference Manual』を参照してください。
プロセスに特定のホーム RAD を持たせたい場合は,SYS$CREPRC システム・サービスの新しい HOME_RAD 引数を使用します。これにより,アプリケーションからロケーションを制御することができます。
プロセスがすでに作成されており,これを再配置したい場合には,SYS$SET_PROCESS_PROPERTIES システム・サービスの HOME_RAD 引数を使用します。プロセスは新しいホーム RAD 内の CPU 上で実行されるので,プロセスのワーキング・セットは削除されます。また,そのプライベート・ページは,新しいホーム RAD 内のメモリから再割り当てされます。
SYS$GETJPI システム・サービスは,プロセスのホーム RAD を返します。
SYS$CRMPSC_GDZRO_64 および SYS$CREATE_GDZRO システム・サービスは RAD 引数マスクを受け付けます。これは,OpenVMS がグローバル・セクションのページをどの RAD に割り当てるかを指定します。
予約済みメモリの割り当てのための SYSMAN インタフェースは RAD 修飾子を持っているので,システム管理者は特定の RAD のメモリを予約することができます。
SYS$GETSYI システム・サービスは,RAD 情報を獲得するために使われる以下の項目コードを定義しています。
RAD_SUPPORT システム・パラメータは,個々の RAD 関連の動作をカスタマイズするために定義されている多くのビットとフィールドを持っています。
3.5 RAD システム・サービスの要約の表
次の表は,OpenVMS Version 7.3 の RAD システム・サービスに関する情報を示しています。
詳細については,『OpenVMS System Services Reference Manual』を参照してください。
システム・サービス | RAD 情報 |
---|---|
$CREATE_GDZRO |
引数:rad_mask
フラグ:SEC$M_RAD_HINT エラー状態:SS$_BADRAD |
$CREPRC |
引数:home_rad
状態フラグ・ビット:stsflg シンボリック名:PRC$M_HOME_RAD エラー状態:SS$_BADRAD |
$CRMPSC_GDZRO_64 |
引数:rad_mask
フラグ:SEC$M_RAD_MASK エラー状態:SS$_BADRAD |
$GETJPI | 項目コード:JPI$_HOME_RAD |
$GETSYI | 項目コード:RAD_MAX_RADS,RAD_CPUS,RAD_MEMSIZE,RAD_SHMEMSIZE,GALAXY_SHMEMSIZE |
$SET_PROCESS_PROPERTIESW | 項目コード:PPROP$C_HOME_RAD |
次の表は,OpenVMS RAD DCL コマンドを要約したものです。詳細については,『OpenVMS DCL ディクショナリ』を参照してください。
DCL コマンド/レキシカル | RAD 情報 |
---|---|
SET PROCESS | 修飾子:/RAD=HOME=n |
SHOW PROCESS | 修飾子:/RAD |
F$GETJPI | 項目コード:HOME_RAD |
F$GETSYI | 項目コード:RAD_MAX_RADS,RAD_CPUS,RAD_MEMSIZE,RAD_SHMEMSIZE |
3.7 System Dump Analyzer (SDA) の RAD サポート
以下に示す System Dump Analyzer (SDA) コマンドには RAD サポートが追加されています。
SDA コマンドの SHOW RAD は,以下の情報を表示します。
このコマンドは,RAD をサポートするハードウェア・プラットフォームでのみ有効です (AlphaServer GS160 システムなど )。デフォルトの設定では,SHOW RAD コマンドは RAD_SUPPORT システム・パラメータ・フィールドの設定を表示します。
SHOW RAD [number|/ALL] |
number
指定された RAD の CPU とメモリに関する情報を表示します。
/ALL
RAD_SUPPORT パラメータ・フィールドの設定とすべての CPU/ メモリ割り当てを表示します。
次の例は,RAD_SUPPORT システム・パラメータ・フィールドの設定を示しています。
SDA> SHOW RAD Resource Affinity Domains ------------------------- RAD information header address: FFFFFFFF.82C2F940 Maximum RAD count: 00000008 RAD containing SYS$BASE_IMAGE: 00000000 RAD support flags: 0000000F 3 2 2 1 1 1 4 3 6 5 8 7 0 +-----------+-----------+-----------+-----------+ |..|..| skip|ss|gg|ww|pp|..|..|..|..|..|fs|cr|ae| +-----------+-----------+-----------+-----------+ |..|..| 0| 0| 0| 0| 0|..|..|..|..|..|00|11|11| +-----------+-----------+-----------+-----------+ Bit 0 = 1: RAD support is enabled Bit 1 = 1: Soft RAD affinity support is enabled (Default scheduler skip count of 16 attempts) Bit 2 = 1: System-space replication support is enabled Bit 3 = 1: Copy on soft fault is enabled Bit 4 = 0: Default RAD-based page allocation in use Allocation Type RAD choice --------------- ---------- Process-private pagefault Home Process creation or inswap Random Global pagefault Random System-space page allocation Current Bit 5 = 0: RAD debug feature is disabled) |
この例は,RAD 2 の CPU とメモリに関する情報を示しています。
SDA> SHOW RAD 2 Resource Affinity Domain 0002 ----------------------------- CPU sets: Active 08 09 10 11 Configure 08 09 10 11 Potential 08 09 10 11 PFN ranges: Start PFN End PFN PFN count Flags --------- -------- --------- ----- 01000000 0101FFFF 00020000 000A OpenVMS Base 01020000 0103FFFF 00020000 0010 Galaxy_Shared SYSPTBR: 01003C00) |
SDA コマンドの SHOW RMD は,予約済みメモリの割り当て元の RAD を示すように拡張されています。予約済みメモリの割り当て時に RAD が指定されていなかった場合,SDA は ANY と表示します。
3.7.3 SHOW PFN
SDA コマンドの SHOW PFN には /RAD 修飾子が追加されています。これは既存の /COLOR 修飾子に似ています。
3.7.4 RAD のハード・アフィニティのサポート
SET PROCESS コマンドが強化されて,/AFFINITY 修飾子が追加されました。/AFFINITY 修飾子によって,カーネル・スレッドのアフィニティ・マスクのビットをセットまたはクリアできます。アフィニティ・マスクのビットは,個別に操作することも,グループ単位や全部を一括して操作することもできます。
/NOAFFINITY 修飾子は,/PERMANENT 修飾子の設定に基づいて,現在またはパーマネント・アフィニティ・マスクでセットされているすべてのアフィニティ・ビットをクリアします。/AFFINITY 修飾子を指定しても直接の効果はなく,次の 2 次パラメータによって指定された操作のターゲットを示すだけです。
/SET=(n[,..
CPU ID n によって指定された現在アクティブな CPU のアフィニティをセットします。n の範囲は,0 から 31 までです。
/CLEAR=(n[,
位置の値 n によって指定された現在アクティブな CPU のアフィニティをクリアします。n の範囲は,0 から 31 までです。
/PERMANENT
現在のアフィニティ・マスクだけでなく,パーマネント・アフィニティ・マスクに対しても操作を実行して,カーネル・スレッドの終了まで,変更を有効にします ( 省略時の動作では,実行中のイメージのアフィニティ・マスクだけが影響を受けます )。
次の例は,CPU a, b, c, および d のアフィニティ・ビットをアクティブにセットする方法を示しています。
$ SET PROCESS /AFFINITY /PERMANENT /SET=a,b,c,d,... |
RAD をサポートしているシステムでは,1 つのプロセスに対するアフィニティを設定する CPU のセットは同じ RAD 内に存在していなければなりません。たとえば,RAD 0 に CPU 0,1,2,3 があり,RAD 1 に CPU 4,5,6,7 がある AlphaServer GS160 では,SET=2,3,4,5 は良い設定ではありません。全体の半分が,ホーム RAD の外で実行されることになるからです。
前へ | 次へ | 目次 | 索引 |