OpenVMS Alpha
オペレーティング・システム
パーティショニングおよび Galaxy ガイド


前へ 次へ 目次 索引


3.3.2 ジョブ・レベルの RAD サポート

新しい修飾子 /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 

3.3.3 実行時の動作

バッチ・ジョブの 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 

3.3.3.2 バッチ・キューの RAD の変更

バッチ・キューの 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_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

3.6 RAD DCL コマンドの要約の表

次の表は,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 サポートが追加されています。

3.7.1 SHOW 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) 
 

3.7.2 SHOW RMD (予約済みメモリ記述子)

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 の外で実行されることになるからです。


前へ 次へ 目次 索引