[ 前のページ ]
[ 次のページ ]
[ 目次 ]
[ DOC Home ]
Alphaシステムで,OpenVMS Galaxy構成内の未割り当てのCPUまたは現在のシステムの構成セットのCPU の現在の処理状態を変更します。このサービスは非同期完了します。 同期完了の場合は,$CPU_TRANSITIONWサービスを使用します。
このサービスは64ビット・アドレスを受け付けます。パラメータとビット定義は, 適切なSTARLETライブラリ内の$CSTDEFで解釈されます。
SYS$CPU_TRANSITION tran_code, cpu_id, nodename, node_id, flags, efn, iosb, astadr_64, astprm_64
tran_code
OpenVMSでの使用方法: | longword |
タイプ: | longword (unsigned) |
アクセス: | read only |
メカニズム: | by value |
ターゲットCPUで開始される状態変更のタイプを指定する識別子。 tran_code引数は次のいずれかの値を格納したロングワードです。
シンボル名 | 説明 |
---|---|
CST$K_CPU_STOP | ターゲットCPUはアクティブ・セットから削除され, コンソール・モードになる。現在のパーティションの構成セットに残される。 |
CST$K_CPU_ MIGRATE | ターゲットCPUはローカル・パーティションの構成セットから削除され,node_id に指定されたパーティションの構成セットに追加するように, コンソールに要求が出される。CPUが現在,アクティブ・ セット内にある場合は,最初にCST$K_CPU_STOP関数によって自動的にコンソール・ モードになる。 |
CST$K_ CPU_START | ターゲットCPUはコンソール・モードを終了し, 現在のパーティションのアクティブ・セットに追加される。CPUはすでに構成セットの一部でなければならない。 |
CST$K_CPU_FAILOVER | CPUはシステム障害時に自動的にマイグレードされるデフォルト・ ターゲット・パーティションに割り当てられる。 この割り当ては変更されるまで有効である。割り当てまたはパーティション名を削除するには, 現在のパーティションIDを指定しなければならない。 |
cpu_id
OpenVMSでの使用方法: | longword |
タイプ: | longword (unsigned) |
アクセス: | read only |
メカニズム: | by value |
状態が変更されるCPUの識別子。cpu_id引数は,サポートされる各CPU を表すロングワード値であり,0〜SYI$_MAX_CPUS - 1の範囲です。 Galaxyでは,このCPUはローカル・パーティションの構成セットに存在するか, または他のパーティションに割り当てられていない状態でなければなりません。 シンボル値CST$K_ANY_LOCAL_CPUを使用すれば,特定のプロセッサを指定するのではなく, 適切なタイプの使用可能な次のプロセッサを指定できます。
node_id
OpenVMSでの使用方法: | longword |
タイプ: | longword (unsigned) |
アクセス: | read only |
メカニズム: | by value |
CST$K_CPU_ASSIGN,CST$K_CPU_FAILOVER,CST$K_CPU_MIGRATE遷移におけるターゲットGalaxy パーティションの識別子。node_id引数は,現在のハードウェア・ プラットフォームのコンソールで提供される,サポートされる範囲内のID の値を含むロングワードです。nodenameパラメータが指定されている場合は, node_idは無視されます。
flags
OpenVMSでの使用方法: | longword_ mask |
タイプ: | longword (unsigned) |
アクセス: | read only |
メカニズム: | by value |
CPU状態遷移に対して選択されたオプション。flags引数はロングワード・ ビット・ベクタであり,各ビットはオプションに対応します。次に示すビットだけを使用できます。 ロングワードの他のビットは予約されており,0 でなければなりません。
各オプション(ビット)にはシンボル名があります。flags引数は, 次のオプションのシンボル名を使用して,論理OR演算を実行することで作成されます。
シンボル名 | 説明 |
---|---|
CST$V_CPU_DEFAULT_CAPABILITIES | 状態遷移が完了したときに,CPU のユーザ機能がシステムのデフォルト値に戻される。このオプションが指定されていない場合は,CPU がローカル・パーティション構成セット内にある限り, 変更されたユーザ機能はSTOPとSTARTの状態遷移間で維持される。 |
CST$V_CPU_ALLOW_ORPHANS | システム内の少なくとも1つのスレッドがアクティブ・ セット内のどのCPUでも実行できない場合でも,状態遷移が許可される。 |
efn
OpenVMSでの使用方法: | ef_ number |
タイプ: | longword (unsigned) |
アクセス: | read only |
メカニズム: | by value |
状態遷移が完了したときにセットされるイベント・フラグ。efn引数は, イベント・フラグの番号を指定するロングワードです。しかし,このサービスでは下位バイトしか使用されません。
$CPU_TRANSITIONを起動すると,指定したイベント・フラグがクリアされます。 操作が完了すると,イベント・フラグがセットされます。
iosb
OpenVMSでの使用方法: | io_status_ area |
タイプ: | IOSB structure |
アクセス: | read only |
メカニズム: | by 32- bit or 64-bit reference |
状態遷移操作の最終的な完了状態を返すためのI/O状態領域。 iosb引数は,I/O状態領域の32ビットまたは64ビット仮想アドレスです。I/O 状態領域構造は32バイトの長さであり,その定義は, マクロの場合はSTARLET.MLB内の$IOSBDEFにあり,Cの場合はSYS$STARLET_ C.TLBのファイルIOSBDEF.Hにあります。
$CPU_TRANSITIONを呼び出すと,I/O状態領域がクリアされます。状態遷移操作が完了した後, ブロックは次のように変更されます。
シンボル名 | 説明 |
---|---|
iosb$w_status | 最初のワードには戻り条件値が格納され, 操作の最終的な完了状態が示される。 |
操作中にエラーが発生した場合にだけ, IOSBの2ワード目の最初のビットがセットされる。他のビットは0である。 |
astadr_64
OpenVMSでの使用方法: | ast_ procedure |
タイプ: | procedure value |
アクセス: | call without stack unwinding |
メカニズム: | by 32-bit or 64-bit reference |
要求された状態遷移が完了したときに実行されるASTルーチン。astadr_64 引数は,このルーチンの32ビットまたは64ビット仮想アドレスです。 astadr_64引数を指定した場合,ASTルーチンは状態遷移が要求されたアクセス・ モードで実行されます。
astprm_64
OpenVMSでの使用方法: | user_arg |
タイプ: | quadword |
アクセス: | read only |
メカニズム: | by value |
ASTルーチンに渡されるクォドワードASTパラメータ。
tran_idに指定された状態遷移がターゲットcpu_idに対して要求されます。
アクティブ・セット内に現在含まれているCPUは,次の状態遷移が可能です。
構成セット内のCPUは次のいずれかの状態に遷移できます。
CPUの状態遷移は,OpenVMSスケジューリング・モデルでは2フェーズ操作です。 このサービスは呼び出し側のプロセス・コンテキストで要求を開始し, サービス条件値にセットアップ状態を返します。フェーズ2は非同期的に行われます。 efn引数とiosb引数を使用して,標準の待ちシステム・ サービスで状態遷移の完了を示すことができます。完了の追加通知は, astadr_64に指定したルーチンとastprm_64のユーザ指定パラメータを使用して,OpenVMS AST メカニズムによって行うことができます。
呼び出し側は,SYS$CPU_TRANSITIONを呼び出してCPUの状態を変更するために,CMKRNL 特権が必要です。
関連サービス
$CPU_TRANSITIONW
SS$_NORMAL | サービスは正常終了した。 |
SS$_BADPARAM | 引数の値の1 つが不正であるか,または指定されたCPUが構成内に存在しない。 |
SS$_ACCVIO | サービスが1 つ以上の引数で指定された場所にアクセスできない。 |
SS$_NOCMKRNL | 操作を完了するのに必要なCMKRNL 特権が呼び出し側にない。 |
SS$_ INSFARG | 必要な数の引数が指定されていなか,操作が指定されていない。 |
SS$_TOO_MANY_ ARGS | サービスで受け付けられるより多くの引数が指定されている。 |
SS$_INVCOMPID | この構成ではターゲットgNode IDが不正である。 |
SS$_CPUNOTACT | 指定されたCPUが現在のパーティションのアクティブ・ セットの一部でない。 |
SS$_NOSUCHCPU | 指定されたCPUが現在のハードウェア構成に存在しないか, ローカル・パーティションの構成セットに含まれていない。 |
SS$_CPUSTARTD | 指定されたCPUがすでにローカル・アクティブ・セット内に含まれているか, アクティブ・セットに参加しているところである。 |
SS$_CPUSTOPPING | 指定されたCPUがすでにSTOPPED 状態であるか,アクティブ・セットから削除されているところである。 |
Alphaシステムは,構成セット内の現在のCPUまたはGalaxy構成で割り当てられていないCPU の現在の処理状態を変更します。このサービスは同期的に完了します。 つまり,操作の最終完了状態が認識された後で,呼び出し側に制御が戻されます。
他のすべての点については,$CPU_TRANSITIONWは$CPU_TRANSITIONと同じです。$CPU_TRANSITIONW サービスの他の情報については,本書の$CPU_ TRANSITIONの説明を参照してください。
このサービスは64ビット・アドレスを受け付けます。
SYS$CPU_TRANSITIONW tran_id, cpu_id, nodename, node_id, flags, efn, iosb, astadr_64, astprm_64
[ 前のページ ]
[ 次のページ ]
[ 目次 ]
[ DOC Home ]