この章では,性能管理の基本概念を紹介します。
詳細は『Guide to OpenVMS Performance Management』を参照してください。
この章の内容
| 作業 | 参照箇所 |
作業負荷の把握 |
|
作業負荷管理方針の選択 |
|
作業負荷の配分 |
|
チューニングが必要な時期の予測 |
|
チューニングの評価 |
|
性能オプションの選択 |
|
インストール・ユーティリティによるイメージのインストール (INSTALL) |
|
特定用途のためのメモリの予約 (Alpha および I64) |
| 項目 | 参照箇所 |
性能管理 |
|
システム・チューニング |
|
イメージと既知イメージ |
|
既知のファイル・リスト |
|
既知イメージの属性 |
性能管理とは,現在の作業負荷のハードウェアとソフトウェアの資源を最適化することです。 この仕事には,いくつかの異なる,しかし互いに関連する作業が伴います。
システムの作業負荷とシステム資源の使用状況を把握する。 それと同時に OpenVMS が資源をどのように管理しているかを理解すれば,次の項目の現実的な標準値を確立することができる。
会話型処理およびバッチ処理におけるスループット
会話型処理における応答時間
バッチ・ジョブのターンアラウンド時間
システムの動作を定期的に監視して,各資源がいつ,どのようなときに限界に近づくかを調べる。
ユーザから報告される性能低下の事例を調査する。
システムの作業負荷配分またはハードウェア構成の変更計画を作成し,システム・パラメータ値を調整するための準備を行う。
インストール後,オプションのシステム管理処理を行う。
システムの正常時の作業負荷と動作を把握することは,システム管理者が性能を評価するときに最も重要なことの 1 つです。 各システム管理者は,システムの作業負荷を十分に把握し,次の項目を確認してください。
各時間帯における典型的なユーザ数
各時間帯における,典型的なユーザ数のもとでのさまざまなタスクの典型的な応答時間
動作がピークになる時間帯
一般に,どの時刻にどのジョブが実行されるか ?
よく実行されるジョブのうち,CPU,メモリ,ディスク空間を集中して消費するものはどれか ?
イメージを最も頻繁に起動するアプリケーションはどれか ?
デバイス・ドライバなどのシステム・ソフトウェアに変更されたり,ユーザによって追加された部分があるとしたら,それはどこか ?
システムにボトルネックは存在していないか ? 今後発生が予想されるボトルネックはないか ?
OpenVMS オペレーティング・システムの管理が初めての方は,システム動作を監視する際に次のツールを利用するといいでしょう。
Monitor ユーティリティ
会計情報ユーティリティ
SHOW コマンド (DCL で利用可)
『Guide to OpenVMS Performance Management 』(VAX システムの場合),および『Guide to OpenVMS AXP Performance Management 』 (Alpha システムの場合) には,Monitor ユーティリティなどの OpenVMS ツールを使ったシステムの性能の監視と評価の手順が詳しく説明されています。 また,『OpenVMS システム管理 ユーティリティ・リファレンス・マニュアル』には,Monitor ユーティリティの使用に関する参照情報が記述されています。
時間の経過とともに,システムの典型的なページ・フォルト率,典型的な CPU 使用量,正常時のメモリ使用量,典型的な動作モードといった,性能を示す基準値が把握できます。 また,特定の処理がシステムの性能にどのように影響するか,ユーザ数や時刻によって,システムの性能のどの部分にどのような影響が出るかが分かり始めます。
システムの監視を続けるうちに,許容できる値の範囲を理解できるようになり,同じツールでより効果的に異常を検出できるようになります。 性能の管理を効果的に行うためには,システムを定期的に評価することが重要です。 問題を避ける最良の方法は,それを予測することです。 問題が大きくならないうちに,システムがどのように動作しているのかを把握するように努めてください。
注意
Monitor ユーティリティと会計情報ユーティリティを使って重要なデータ項目を定期的に分析すれば,システムの動作をより理解できます。 また,これらのデータの収集と観察を続けることによって,使用量の傾向が分かり,システムがいつその限界に達するかを予測することができます。
さらに,システム管理用のツールによってもシステム資源が使用されるということを知っておきましょう。
計測する項目やデータ収集の頻度を決めるときには,そのことに十分注意してください。
ツールを過度に使用すると,データの収集,保存,分析によって資源が使用されるために,システムの作業負荷と容量を正しく認識できなくなることがあります。
データの収集と分析は,事前に計画をたてた上で,その計画に従って実行するようにしてください。
3.3 作業負荷管理方針の決定
システムの性能は作業負荷管理の効率に比例して上下します。 作業負荷を管理するための方針は,各システムで独自に決定する必要があります。 システムの設定値を調整する前に,次の点を必ず解決してください。
一日のうちで作業負荷が「ピークになる」時間帯,すわなち他の時間帯より著しく負荷が大きくなる時間帯はあるか ?
作業負荷のバランスを良くする方法はあるか ?
負荷のバランスを少しでも改善できるように各ユーザに協力してもらうのも 1 つの方法である。
負荷の小さい時間帯に,バッチ形式で実行できるジョブはあるか ?
主操作時間と副操作時間を各ユーザが採用しているか ? 採用していない場合,その方法を採用することによってシステムの性能は向上しないか ? 採用している場合,選択されている時間帯はすべてのユーザに対して最適か ?
ユーザおよびアプリケーションを追加あるいは削除したときには,このことを必ず検討し,適切なバランスを保つ必要がある。
今後追加するアプリケーションは,システムに現存するボトルネックあるいは今後予想されるボトルネックを回避できるように設定できるか ? 同じ目的で,現在のアプリケーションに対して何らかの設定変更ができるか ? 『Guide to OpenVMS File Applications』 を参照。
オペレーティング・システムのコード共用機能を最大限活用しているか ?
コード共用機能を利用すれば,メモリの使用量を抑えて,システムの性能を向上させることができる。
システムの稼働時間全体に渡って,作業負荷をできるだけ均等に配分してください。 ただし,サイト別の作業スケジュールをたてると,会話型ユーザを最適な時間に割り当てることがむずかしくなる場合もあります。 次の方法を参考にしてください。
大型のジョブはバッチ・ジョブとして実行する。
大型のジョブはできるかぎりバッチにしてキューに登録する,という方針をたてる。 バッチ・ストリームの数を制御して,会話形式のジョブが少ないときにバッチ型のジョブが多くなるようにする。 また,DCL コマンドの修飾子を利用して,バッチ・ジョブを低い優先順位で実行したり,ワーキング・セットのサイズを調整したり,同時に実行できるジョブの数を制御したりする方法もある。 バッチ環境の設定方法については,『OpenVMS システム管理者マニュアル (上巻)』を参照。
システムの使用量を制限する。
一度にログインできるユーザの数を,システムが適切な応答時間でサポートできる数に制限する。 会話型ユーザの数は,DCL の SET LOGINS/INTERACTIVE コマンドによって制限できる。 また,同時に実行できるプロセスの数は,システム・パラメータ MAXPROCESSCNT を使って制御できる。 システムに同時にアクセスできる遠隔ターミナルの数は,システム・パラメータ RJOBLIM を使って制御できる。 システム・パラメータの変更方法については,1.5 節 を参照。 『OpenVMS システム管理 ユーティリティ・リファレンス・マニュアル』では,すべてのシステム・パラメータについて解説している。
さらに,ユーザをグループに分け,各グループがシステムを使用する日あるいは時間帯を制限することもできる。 AUTHORIZE ユーティリティを使用すれば,各ユーザがログインできる時間帯を定義できる。 具体的には,AUTHORIZE の修飾子 /PRIMEDAYS を参照。 詳細は,『OpenVMS システム管理 ユーティリティ・リファレンス・マニュアル』の AUTHORIZE の節を参照。
DCL の SET DAY コマンドによって,主曜日および副曜日の設定を変更できる。 たとえば,主曜日が休日のときはそれを副曜日として指定する必要がある。
資源をバインドする必要性を減らすように各アプリケーションを設計する。
システムのボトルネックが現在どこにあるか,あるいは近い将来どこに発生するかを把握し,ボトルネックとなる資源の必要量を最小限に抑えるようにアプリケーションの導入計画をたてれば,作業負荷をより均等に配分することができる。 『Guide to OpenVMS File Applications』を参照。
チューニングとは,さまざまなシステム設定値を変更することによって,特定の構成および作業負荷からシステム全体としての性能を向上させることです。 メモリや装置を適切な時期に増設すれば,ほぼ確実にシステムの性能を大幅に向上させることができます。 しかし,そのようなシステム構成の変更は,チューニングとは異なります。
ほとんどのシステムでは,作業負荷は常に変化しています。 ある瞬間には最高の性能が得られても,次の瞬間に作業負荷が変化し,同じシステム・パラメータの設定でも,最高の性能が得られなくなることがあります。 チューニングの最終目標は,システム全体としてベストな性能が平均的に得られる値を見つけることです。
性能に影響する問題の中には,次に示すように,システム設定値を調整しても解決できないものもあります。 作業を始める前に,これらの問題が実際にないかどうか調べる必要があります。
操作が適切でない。
到底達成し得ない性能を期待している。
使用しようとするアプリケーションに対してメモリが十分でない。
作業負荷に対してハードウェア構成が不十分である。 たとえば,プロセッサ速度が遅い,装置のバスが少ない,ディスクの数が少ないなど。
作業負荷に対して適切な装置が選択されていない。 たとえば,速度および容量が不十分であるなど。
ハードウェアが正常に動作しない。
アプリケーションの設計が不十分である。
1 つのプロセスに対して,使用できるすべての資源の使用を許可している。
チューニングを行う場合,動作を注意深く分析し,値を変更する項目の数をできるだけ少なくします。 システム資源は,次の 2 つのタイプのパラメータの値を調整することにより制御します。
| パラメータ・タイプ | 説明 |
システム・パラメータ |
システム・パラメータに設定した値により,システム全体としてのシステム資源が制御される。 AUTOGEN コマンド・プロシージャは,システム構成のデータに従ってシステム・パラメータ値を自動的に設定する。 さらに,稼働中のシステムからのフィードバックを記録し,システムの作業負荷に基づいて,パラメータ値を調整することができる。 必要な調整を行うためのパラメータと新しい値の選択方法については,『Guide to OpenVMS Performance Management 』(VAX システムの場合),および『Guide to OpenVMS AXP Performance Management 』(Alpha システムの場合)を参照。 『Guide to OpenVMS Performance Management』では,必要な変更を行うためのパラメータと新しい値の選択方法について説明します。 AUTOGEN を使用して,システム・パラメータ値を変更する方法については,1.5 節 を参照。 |
UAF 制限とクォータ |
利用者登録ファイル (UAF) レコードの制限とクォータに設定されている値により,ユーザごとのシステム資源が制御される。 これらの値を制御するには,AUTHORIZE ユーティリティを使用する。 詳細は『OpenVMS システム管理者マニュアル (上巻)』を参照。 |
チューニングを始める前に『Guide to OpenVMS Performance Management
』(VAX システムの場合),または『Guide to OpenVMS AXP Performance Management
』(Alpha システムの場合) を参照し,OpenVMS がどのように資源を管理しているか理解してください。
また,各システム値の性格も理解しておく必要があります。
これらが十分理解されていないと,結果としてシステム全体の性能を大幅に低下させてしまうことがあります。
3.6 チューニングが必要な時期の予測
OpenVMS システムでチューニングが必要になることはほとんどありません。 AUTOGEN コマンド・プロシージャが,システム構成に依存するすべてのパラメータを実際の構成に適合するように自動的に設定するからです。 AUTOGEN についての詳細は,1.4 節 を参照してください。
また,限定されますが,システムにはシステムの動作中にシステム自身を動的に調整する機能が備えられています。 非ページング動的プール,ワーキング・セットのサイズ,空きページ・リスト,および変更ページ・リスト上のページの数といった特定の領域に関して,必要に応じて自動的に調整を行います。 したがって,これらの値はシステムの動作中に動的に変化することがあります。
システムの性能が満足できない場合,その一般的な原因はハードウェアの容量不足です。 システムに対する要求がその能力を超えてしまうと,システム設定値を調整しても性能が大幅に向上することはありません。 そのような調整は,既存の資源のトレード・オフすなわち一時しのぎにすぎないからです。
しかし,チューニングの必要が全く無いわけではなく,特に次の条件を満たす場合にはチューニングが必要になることがあります。
現状の資源で最適な性能を得るよう,すでにチューニングを済ませている環境に,ディスクまたはメモリを増設する場合。 この場合,新しい構成に合わせてチューニングをしなおす必要がある。 まず最初に AUTOGEN コマンド・プロシージャを実行することが重要である。
作業負荷が大幅に変化すると予想される場合。 新しい作業負荷に合わせてチューニングをする必要がある。
システムのチューニングを実施した場合,その後のシステム動作を監視して,期待した結果が得られたかどうかを調べてください。 MONITOR ユーティリティおよび DCL の SHOW コマンドを利用します。 SHOW コマンドについての詳細は,『OpenVMS DCL ディクショナリ』を参照してください。 MONITOR コマンドの使用法については,6.7.2 項 を参照してください。 また,MONITOR コマンドについての詳細は,『OpenVMS システム管理 ユーティリティ・リファレンス・マニュアル』を参照してください。
たとえば,何度実行しても結果が同じであると考えられるいくつかのプログラムを,通常の作業負荷状況で実行します。 チューニングの前後にほぼ同じ作業負荷のもとでこのプログラムを実行してその動作時間を計測すれば,比較のための基準が分かります。
しかし,この方法では作業負荷がほぼ等しい条件のもとで計測をしないと意味がありません。
また,このテストだけではチューニングの成否を最終的に判断することはできません。
調整した項目が計測対象のイメージだけに好結果をもたらし,他の部分には悪影響を与えている可能性もあるからです。
したがって,どのような場合でもシステムの変更後しばらくは,システムの動作をよく観察してください。
3.8 性能オプションの選択
次に,オプションとして選択することができるシステム管理操作を示します。 通常,これらの操作はインストール後に行われ,その結果,多くの場合には全体的な性能が向上します。 実際のシステム環境に合ったオプションを選択してください。 すべてのオプションがどの環境にも適しているとはいえません。
システム・ライブラリの展開。
オペレーティング・システムに付属する大規模なライブラリのほとんどは,ディスク使用量を抑えるために縮小 (圧縮) されている。 ファイルが展開 (復元) されない限り,システムはアクセスのたびにファイルを動的に展開する必要がある。 その結果,リンク動作やオンライン・ヘルプを呼び出すときに,特に性能の低下が目立つ。 ディスク容量に余裕がある場合には,ライブラリをあらかじめ展開しておくと,CPU パワーおよび応答時間の両方が向上する。 システム・ライブラリの展開と LIBDECOMP.COM コマンド・プロシージャの使用方法についての詳細は,3.9 節を参照。
ファイル・システムのハイウォータ・マークの無効化。
ハイウォータ・マークとは,ボリュームの初期化時,各ユーザが自分で書き込んでいないデータの読み込みを不可能にする機密保護機能で,省略時の値として設定されている。
非共用順次ファイルの場合,ハイウォータ・マークが性能に与える影響は最小限に抑えられる。 ただし,非順次形式のファイルの場合,ハイウォータ・マーク処理により,オーバヘッドがかかる。 ファイルが作成されたり拡張されたりするたびに,割り当てられるディスク・ブロックの以前の内容が削除される。
この機能を無効にすることでシステムの性能がどのくらい向上するかは,次の要因によって決まる。
新規にファイルを作成する頻度
索引ファイルまたは相対ファイルの場合,既存のファイルを拡張する頻度
ボリュームのフラグメンテーションの状態
ハイウォータ・マーク機能を無効化する場合は,その前に機密保護上の問題がないかどうか考慮すること。
ハイウォータ・マークを無効にするためには,ボリュームを初期化するときに /NOHIGHWATER 修飾子を指定する。 あるいは,まず,DCL の SET VOLUME コマンドを次の形式で実行する。
SET VOLUME/NOHIGHWATER_MARKING # 装置指定 [:]
OpenVMS レコード管理サービス (RMS) のファイル拡張パラメータの設定。
シーケンシャル・ファイルはマルチブロック数 (省略時の値は 32) の 2 倍単位で拡張されるので,省略時の設定では,ディスクのクラスタ・サイズに最も近くなるまで 64 ブロックずつ拡張される (ファイルの拡張についての詳細は,『Guide to OpenVMS File Applications』を参照)。 ファイルが作成または拡張されるときには,入出力動作が増えるため,応答速度が低下することがある。 この問題は,ファイル拡張パラメータの値を大きくするか,システム・パラメータ RMS_EXTEND_SIZE を設定すれば解決する。 システム・パラメータの変更方法については,1.5 節 を参照。 システム・パラメータの一覧については,『OpenVMS システム管理 ユーティリティ・リファレンス・マニュアル』を参照。
ファイル拡張の詳細については,『Guide to Creating OpenVMS Modular Procedures』を参照。 ただし,現在は多数のネットワーク記憶装置が利用可能なため,他のガイドライン (逆効果のガイドラインまでも) が存在する可能性がある。
頻繁に使用するイメージのインストール。
複数のプロセスからルーチン単位で同時にアクセスされるイメージは,INSTALL ユーティリティで修飾子として /OPEN,/SHARED,および /HEADER_RESIDENT を指定してインストールする。 そうすれば,すべてのプロセスがそのイメージの同じ物理コピーを使用し,そのイメージが最も効率的な方法で起動されるようになる。
通常,修飾子 /OPEN,/HEADER_RESIDENT,および /SHARED を付けてインストールすると,イメージにはおよそ 2 つの物理ページが追加される。 INSTALL ユーティリティの LIST/FULL コマンドを使用すると,/SHARED 修飾子を使ってインストールされたイメージへの最大同時アクセス数が示される。 この値は,イメージのインストールがメモリの効果的な使用につながっているかどうかの判断に役立つ。
イメージのインストールについては,3.10.11 項 と,『OpenVMS システム管理 ユーティリティ・リファレンス・マニュアル』の INSTALL の節を参照。
共用可能イメージと実行可能イメージのインストール (Alpha システムおよび I64 システムの場合)。 インストール・ユーティリティで /RESIDENT 修飾子を指定する。 詳細は3.10.6 項 を参照。
これは CPU とメモリのどちらをとるかという問題になる。 /RESIDENT 修飾子を付けてイメージをインストールするということは,コードがページングされないということを意味する。 共用イメージの量によって,メモリが増えることも減ることもあり得る。
システム・ディスクの入出力の軽減。
頻繁にアクセスされるファイル(以下に例を示す)をシステム・ディスクから移動し,論理名を使用して記憶位置あるいは必要であれば他のポインタを指定する。
SYSUAF.DAT (SYSUAF は論理名)
RIGHTSLIST.DAT (RIGHTSLIST は論理名)
VMSMAIL_PROFILE.DAT (VMSMAIL_PROFILE は論理名)
NETPROXY.DAT (NETPROXY は論理名)
NET$PROXY.DAT (NET$PROXY は論理名)
キュー・データベース (詳細は『OpenVMS システム管理者マニュアル (上巻)』を参照)
ERRFMT ログ・ファイル (SYS$ERRORLOG は論理名)
MONITOR ログ・ファイル (SYS$MONITOR は論理名)
会計情報ログ・ファイル (ACCOUNTNG は論理名)
SECURITY_AUDIT.AUDIT$JOURNAL (SET AUDIT/JOURNAL=SECURITY/DESTINATION=ファイル指定)
省略時の DECnet for OpenVMS アカウント (OpenVMS ディストリビューション・キットの SYSUAF ファイルに含まれているレコード)
以上のシステム・ファイルの論理名を再定義する場合は,サイト別コマンド・プロシージャ SYS$MANAGER:SYLOGICALS.COM を変更する。 SYLOGICALS.COM で論理名を定義する方法については,『OpenVMS システム管理者マニュアル (上巻)』を参照。
ページングやスワッピングの動作をシステム・ディスクからアクセス頻度の低い別のディスクに移すのも,システム・ディスクの入出力を軽減する方法の 1 つである。 その場合は,移動先のディスクに大きな2次ページ・ファイルおよび 2次スワップ・ファイルを作成する。 しかし,システム障害を診断するためのクラッシュ・ダンプを保存したい場合は,システム・ディスク上のシステム固有のディレクトリ SYS$SPECIFIC:[SYSEXE] にダンプ・ファイルを格納する。 SYS$SPECIFIC:[SYSEXE] にダンプ・ファイルが存在しない場合,クラッシュ・ダンプを保存するためには 1次ページ・ファイルが必要になる。 ページ・ファイルおよびスワップ・ファイルの移動方法については,2.16 節 を参照。
Alpha システムおよび I64 システムでは,メモリ常駐セクションで使用するために,大量のメモリを確保しておく必要がある。 予約メモリ・レジストリでは,そのインタフェースから,SYSMAN ユーティリティで,OpenVMS Alpha システムまたは I64 システムが,メモリ常駐セクションで使用したり,特権を持つ他のアプリケーションで使用するための,大量のメモリを確保するように設定することができる。 さらに,予約メモリ・レジストリを使用することにより,割り当て済みの予約メモリを考慮しながら,AUTOGEN ユーティリティによって OpenVMS システムを適切にチューニングすることができる。 詳細は,3.11 節を参照。
OpenVMS オペレーティング・システムに付属する大規模なシステム・ライブラリの一部は,ディスク使用量を抑えるために縮小 (圧縮) されています。 これらのライブラリを展開 (つまり復元) すると,システムはこれらのライブラリにより短時間でアクセスできるようになりますが,使用するディスク領域は増加します。 システム・ライブラリの一部またはすべてを展開するために十分なディスク領域があるかどうかを判断する方法については,3.9.1 項 を参照してください。
既存のライブラリに対する削除アクセスがあり,ライブラリ・ディレクトリに対する書き込みアクセスがある場合には,以下のいずれかの方法でライブラリを展開したり,縮小 (圧縮) することができます。
LIBDECOMP.COM コマンド・プロシージャを実行する (3.9.2 項を参照)。 データ縮小 (圧縮) 形式で付属するライブラリのうち,選択したライブラリから 1 つ,複数,またはすべてを,展開または縮小することができるようになる。
DCL コマンド LIBRARY に /DATA 修飾子 (3.9.3 項 を参照) を付けて入力し,一度に 1 つずつ,データ縮小形式で付属していないライブラリを含めて,ライブラリを展開または縮小する。
注意
本書では,"復元" および "圧縮" は,LIBDECOMP.COM プロシージャまたは LIBRARY コマンドに /DATA=EXPAND 修飾子または /DATA=REDUCE 修飾子を付けて使用した結果実行される処理を意味します。 これらの処理を,/COMPRESS 修飾子を指定した結果実行される,全く異なる関係のない機能と混同しないように注意してください。 LIBRARY コマンドとその修飾子についての詳細は,『OpenVMS Command Definition, Librarian, and Message Utilities Manual』またはオンライン・ヘルプを参照してください。
3.9.1 ライブラリを展開するために使用可能なディスク領域の決定
ライブラリを展開する前には,展開されたファイルに対応するための十分な未使用ディスク領域がシステムにあることを確認します。 未使用ディスク領域のサイズを確認するには,以下のコマンドを入力します。
$ SHOW DEVICE SYS$SYSDEVICE
データ縮小形式で付属するライブラリすべてを拡張するために必要なディスク領域のサイズは,オペレーティング・システムおよび設定によって異なります。 Alpha システムおよび I64 システムの場合には,約 60,000 ブロックの未使用領域が必要です。 VAX システムの場合には,必要な未使用領域のサイズはこれよりも小さくなります。 特定のディスクの必要条件については,対応するオペレーティング・システムの『Upgrade and Installation Manual』を参照してください。
必要な未使用ディスク領域がない場合,またはシステム・ライブラリをすべて展開しない場合,一部を選んで展開することができます。
たとえば,システム・ヘルプ・ライブラリ (HELPLIB.HLB) と,システムで頻繁に使用する他のライブラリだけを展開して,他のライブラリをデータ縮小形式のままにしておくことができます。
3.9.2 ライブラリ復元ユーティリティ (LIBDECOMP.COM) の使用
ライブラリ復元ユーティリティはコマンド・プロシージャ LIBDECOMP.COM であり,SYS$UPDATE ディレクトリにあります。 LIBDECOMP.COM は LIBRARY コマンドを使用して,データ縮小形式で付属するシステム・ライブラリの一部またはすべてを,展開 (復元) または縮小 (圧縮) します (このようなライブラリのリストについては,3.9.2.1 項 を参照してください)。
LIBDECOMP.COM コマンド・プロシージャを使用すると,複数の LIBRARY コマンドではなく,1 つのコマンドを入力して,一度にすべてまたは多くのライブラリを展開または縮小することができます。
LIBDECOMP.COM は,会話型でも (3.9.2.2 項
を参照) バッチ・モードでも (3.9.2.3 項
を参照) でも実行することができます。
3.9.2.1 LIBDECOMP.COM が動作するライブラリ
ライブラリ復元ユーティリティは,一部の大規模なライブラリ,つまりデータ縮小形式で付属するライブラリで動作します。
ライブラリによってはプラットフォーム固有で,VAX システムだけに付属するものや,Alpha システムや I64 システムに付属するものがあります。
ライブラリの多くはオプションのコンポーネントであり,OpenVMS のインストール時にすべてのオプションが選択された場合以外は,システムによっては存在しないこともあります。
表 3-1
は,VAX システムと,Alpha システムや I64 システムで LIBDECOMP.COM が認識できるすべてのライブラリをリストしています。
表 3-1: LIBDECOMP.COM が認識できるライブラリ
| ライブラリ名 | プラットフォーム | 説明 |
| [SYSHLP] ディレクトリのヘルプ・ライブラリ・ファイル (.HLB) | ||
ACLEDT.HLB |
すべて |
アクセス制御リスト・エディタ・ヘルプ |
BKM$HELP.HLB |
すべて |
バックアップ・マネージャ・ヘルプ |
DBG$HELP.HLB |
すべて |
OpenVMS デバッガ・ヘルプ |
DBG$UIHELP.HLB |
すべて |
OpenVMS デバッガ・ヘルプ |
EDTHELP.HLB |
すべて |
EDT エディタ・ヘルプ |
EVE$HELP.HLB |
すべて |
EVE エディタ・ヘルプ |
EVE$KEYHELP.HLB |
すべて |
EVE キーパッド・ヘルプ |
EXCHNGHLP.HLB |
すべて |
Exchange ユーティリティ・ヘルプ |
HELPLIB.HLB |
すべて |
DCL ヘルプ |
LANCP$HELP.HLB |
すべて |
LAN 制御プログラム・ヘルプ |
LATCP$HELP.HLB |
すべて |
LAT 制御プログラム・ヘルプ |
MAILHELP.HLB |
すべて |
メール・ユーティリティ・ヘルプ |
NCPHELP.HLB |
すべて |
ネットワーク制御プログラム・ヘルプ |
SDA.HLB |
すべて |
System Dump Analyzer ヘルプ |
SHWCLHELP.HLB |
すべて |
Show Cluster ユーティリティ・ヘルプ |
SYSGEN.HLB |
すべて |
System Generation ユーティリティ・ヘルプ |
SYSMANHELP.HLB |
すべて |
System Management ユーティリティ・ヘルプ |
TPUHELP.HLB |
すべて |
Text Processing ユーティリティ・ヘルプ |
UAFHELP.HLB |
すべて |
Authorize ユーティリティ・ヘルプ |
| [SYSLIB] ディレクトリのマクロ・ライブラリ・ファイル (.MLB) | ||
LANIDEF.MLB |
Alpha または I64 |
LAN 内部ドライバ・マクロ |
LIB.MLB |
すべて |
オペレーティング・システム・マクロ |
STARLET.MLB |
すべて |
オペレーティング・システム・マクロ |
SYSBLDMLB.MLB |
VAX のみ |
システム構築マクロ |
| [SYSLIB] ディレクトリのオブジェクト・ライブラリ・ファイル (.OLB) | ||
DECCRTL.OLB |
VAX のみ |
HP C 実行時ライブラリ |
STARLET.OLB |
すべて |
システム・オブジェクト・ライブラリおよび実行時ライブラリ |
SYSBLDLIB.OLB |
VAX のみ |
システム構築ファイル |
VAXCRTL.OLB |
すべて |
HP C RTL ルーチン名エントリ・ポイント。 VAX G 浮動小数点倍精度エントリ・ポイントおよび浮動小数点エントリ・ポイント。 |
VAXCRTLD.OLB |
Alpha または I64 |
VAX D 浮動小数点倍精度エントリ・ポイントおよび浮動小数点エントリ・ポイントの一部サポート |
VAXCRTLDX.OLB |
Alpha または I64 |
VAX D 浮動小数点のサポート。 /L_DOUBLE_SIZE=128 コンパイラ修飾子のサポート |
VAXCRTLT.OLB |
Alpha または I64 |
IEEE T 浮動小数点倍精度エントリ・ポイント,浮動小数点エントリ・ポイント |
VAXCRTLTX.OLB |
Alpha または I64 |
IEEE T 浮動小数点のサポート。 /L_DOUBLE_SIZE=128 コンパイラ修飾子のサポート |
VAXCRTLX.OLB |
Alpha または I64 |
G 浮動小数点のサポート。 /L_DOUBLE_SIZE=128 コンパイラ修飾子のサポート |
VMS$VOLATILE_PRIVATE_INTERFACES.OLB |
Alpha または I64 |
OpenVMS バグチェック処理コード |
| [SYSLIB] ディレクトリのテキスト・ライブラリ・ファイル (.TLB) | ||
ERFLIB.TLB |
すべて |
ANALYZE/ERROR デバイス記述 |
LIB_ADA_SUBSET.TLB |
すべて |
Ada プログラマ・ツールキットのオペレーティング・システムの定義 |
NTA.TLB |
すべて |
NTA 機能に対して構築するファイル |
STARLET_RECENT_ADA_SUBSET.TLB |
すべて |
Ada プログラマ・ツールキットのオペレーティング・システムの定義 |
STARLETSD.TLB |
すべて |
レイヤード・プロダクトのインストール中に使用する STARLET の定義 |
SYS$LIB_C.TLB |
Alpha または I64 |
C 言語のヘッダ・ファイル。 LIB から派生。 |
SYS$STARLET_C.TLB |
すべて |
HP C のための公用ヘッダ・ファイル |
LIBDECOMP.COM コマンド・プロシージャのリスト関数を使用すれば,ライブラリ復元ユーティリティが認識できるすべてのライブラリのリストを,そのサイズおよびシステムでの状態を含めて出力することができます。
詳細および例は,3.9.2.2.1 項
を参照してください。
3.9.2.2 LIBDECOMP.COM の会話型での使用
ライブラリ復元ユーティリティを実行するための基本的なコマンドは,次のとおりです。
@ SYS$UPDATE:LIBDECOMP [parameters]
ライブラリ復元ユーティリティでは,最大で 8 つのオプションのパラメータを使用できます。 最初のパラメータは,このユーティリティの 3 つの機能のうち,どれを実行するかを制御します。 他のパラメータは,このユーティリティがどのライブラリを処理するかを制御します。 これら 3 つの機能については,この後のセクションで説明します。
リスト機能 (3.9.2.2.1 項 を参照)
ライブラリ復元ユーティリティが認識できるすべての VAX および Alpha または I64 ライブラリをリストし,現在使用しているシステムにあるライブラリのサイズおよび状態 (縮小されているか展開されているか) を表示します。
展開機能 (3.9.2.2.2 項を参照)
データ縮小形式のライブラリを展開します。 これは,省略時の機能です。
縮小機能 (3.9.2.2.3 項を参照)
展開されたライブラリを,データ縮小形式に圧縮します。
簡単なオンライン・ヘルプを表示するには,次のコマンドを入力します。
$
@SYS$UPDATE:LIBDECOMP HELP
ライブラリ復元ユーティリティが認識できるすべての VAX および Alpha または I64 ライブラリを,それらのサイズおよびシステムでの状態もともにリストするには,次のようにコマンドの中で LIST パラメータを指定します。
$ @SYS$UPDATE:LIBDECOMP LIST
コマンドを実行した結果表示されるリストには,VAX システムや Alpha システムまたは I64 システムに付属していないため,または関連付けられている機能がシステムにインストールされていないために,現在使用しているシステムにはないライブラリがどれであるかが示されます。 現在使用しているシステムにあるライブラリについては,そのサイズおよび現在の状態 (縮小されているか展開されているか) がリストに表示されます。 次の例は,Alpha システムまたは I64 システムでの出力例を示しています (注: ファイル・サイズは変わる可能性があります。 最も正確な情報については,現在使用しているシステムでの LIST の出力を参照してください)。
$ @SYS$UPDATE:LIBDECOMP LIST
OpenVMS Library Decompression Utility
List of all libraries known to LIBDECOMP
"Library not present" indicates not installed on this system
Libraries in SYS$SYSROOT:
Library Size
1) [SYSHLP]ACLEDT.HLB 70 Reduced format
2) [SYSHLP]BKM$HELP.HLB 156 Reduced format
3) [SYSHLP]DBG$HELP.HLB 1234 Reduced format
4) [SYSHLP]DBG$UIHELP.HLB 269 Reduced format
5) [SYSHLP]EDTHELP.HLB 154 Reduced format
6) [SYSHLP]EVE$HELP.HLB 676 Reduced format
7) [SYSHLP]EVE$KEYHELP.HLB 99 Reduced format
8) [SYSHLP]EXCHNGHLP.HLB 83 Reduced format
9) [SYSHLP]HELPLIB.HLB 9179 Reduced format
10) [SYSHLP]LANCP$HELP.HLB 119 Reduced format
11) [SYSHLP]LATCP$HELP.HLB 157 Reduced format
12) [SYSHLP]MAILHELP.HLB 211 Reduced format
13) [SYSHLP]NCPHELP.HLB 261 Reduced format
14) [SYSHLP]SDA.HLB 308 Reduced format
15) [SYSHLP]SHWCLHELP.HLB 103 Reduced format
16) [SYSHLP]SYSGEN.HLB 337 Reduced format
17) [SYSHLP]SYSMANHELP.HLB 492 Reduced format
18) [SYSHLP]TPUHELP.HLB 575 Reduced format
19) [SYSHLP]UAFHELP.HLB 241 Reduced format
20) [SYSLIB]LANIDEF.MLB 181 Reduced format
21) [SYSLIB]LIB.MLB 2715 Reduced format
22) [SYSLIB]STARLET.MLB 2335 Reduced format
23) [SYSLIB]SYSBLDMLB.MLB Library not present
24) [SYSLIB]DECCRTL.OLB Library not present
25) [SYSLIB]STARLET.OLB 27461 Reduced format
26) [SYSLIB]SYSBLDLIB.OLB Library not present
27) [SYSLIB]VAXCRTL.OLB 1163 Reduced format
28) [SYSLIB]VAXCRTLD.OLB 1587 Reduced format
29) [SYSLIB]VAXCRTLDX.OLB 1506 Reduced format
30) [SYSLIB]VAXCRTLT.OLB 1434 Reduced format
31) [SYSLIB]VAXCRTLTX.OLB 1449 Reduced format
32) [SYSLIB]VAXCRTLX.OLB 1285 Reduced format
33) [SYSLIB]ERFLIB.TLB 64 Reduced format
34) [SYSLIB]LIB_ADA_SUBSET.TLB
1839 Reduced format
35) [SYSLIB]NTA.TLB 34 Reduced format
36) [SYSLIB]STARLETSD.TLB 3940 Reduced format
37) [SYSLIB]SYS$LIB_C.TLB 9442 Reduced format
38) [SYSLIB]SYS$STARLET_C.TLB
5864 Reduced format
39) [SYSLIB]VMS$VOLATILE_PRIVATE_INTERFACES.OLB
445 Reduced format
40) [SYSLIB]STARLET_RECENT_ADA_SUBSET.TLB
1100 Reduced format
Total Libraries: 37 78568
LIBDECOMP.COM の省略時の処理は,展開機能です。 EXPAND をコマンド行の最初のパラメータとして指定することもできますが,特に必要はありません。 最初のパラメータが LIST または REDUCE である場合を除いて,省略時には展開機能が使用されます。
展開機能が使用される場合には,残りのパラメータは,どのライブラリが展開されるかを指定します。 ALL を指定して,ライブラリ復元ユーティリティが認識できるすべてのライブラリを展開することもできますが,ライブラリ名を 8 つまで (EXPAND を指定した場合には 7 つまで) 指定することもできます。 ワイルドカード文字は,許可されていません。 指定されるライブラリは,このユーティリティが認識できるものでなければなりません (他のどのライブラリも,展開するには,3.9.3 項 で説明するように,LIBRARY コマンドを使用しなければなりません)。 ALL またはライブラリのリストを指定しない場合,LIBDECOMP.COM は,展開するライブラリを選択するよう指示するプロンプトを表示します。 このプロンプトに対しては,いくつでもライブラリを指定することができます。
注意
LIBDECOMP.COM が認識できるすべてのライブラリを展開または縮小するには,通常およそ 5 〜 10 分かかります。 ただし,現在使用しているシステムのハードウェアおよびソフトウェア構成,およびその他の実行状態によっては,最大で 30 分以上になる場合もあるなど,さらに長くかかることがあります。
展開機能を使用すると,次の OpenVMS Alpha の例で表示される内容に似たものが表示されます。 ヘッダ行が表示された後,LIBDECOMP.COM がそれぞれのライブラリをチェックする間,一時停止します。
OpenVMS Library Decompression Utility
Candidate Libraries to be expanded
(Libraries not present and libraries already expanded are not listed)
1 ACLEDT.HLB 13 NCPHELP.HLB 25 VAXCRTLD.OLB
2 BKM$HELP.HLB 14 SDA.HLB 26 VAXCRTLDX.OLB
3 DBG$HELP.HLB 15 SHWCLHELP.HLB 27 VAXCRTLT.OLB
4 DBG$UIHELP.HLB 16 SYSGEN.HLB 28 VAXCRTLTX.OLB
5 EDTHELP.HLB 17 SYSMANHELP.HLB 29 VAXCRTLX.OLB
6 EVE$HELP.HLB 18 TPUHELP.HLB 30 ERFLIB.TLB
7 EVE$KEYHELP.HLB 19 UAFHELP.HLB 31 LIB_ADA_SUBSET.TLB
8 EXCHNGHLP.HLB 20 LANIDEF.MLB 32 NTA.TLB
9 HELPLIB.HLB 21 LIB.MLB 33 STARLETSD.TLB
10 LANCP$HELP.HLB 22 STARLET.MLB 34 SYS$LIB_C.TLB
11 LATCP$HELP.HLB 23 STARLET.OLB 35 SYS$STARLET_C.TLB
12 MAILHELP.HLB 24 VAXCRTL.OLB
36 VMS$VOLATILE_PRIVATE_INTERFACES.OLB
37 STARLET_RECENT_ADA_SUBSET.TLB
A ALL libraries to be expanded
H Display HELP information for LIBDECOMP
E EXIT this procedure
ALL を指定した場合,次のメッセージが表示され,ライブラリ復元ユーティリティは,リストされているすべてのライブラリを展開します。
"ALL" specified; all libraries will be processed
ALL を指定しない場合,次のプロンプトが表示されます。
* Enter a letter or the number(s) of libraries to be expanded
(Separate multiple numbers with a comma)
A,H,E,または 1 つまたは複数の数字を入力して,展開するライブラリを指定します。 指定できる数字の制限はありません。
展開する特定のライブラリを識別するパラメータを入力した場合,LIBDECOMP.COM が実行されても,例で示されているようなりストは表示されません。
それぞれのライブラリは,処理されるたびにリストされます。
例
次のいずれかのコマンドを実行すると,すべてのライブラリが展開されます。
$ @SYS$UPDATE:LIBDECOMP ALL
$ @SYS$UPDATE:LIBDECOMP EXPAND ALL
メニューにある一部またはすべてのライブラリを展開するかどうかを選択するには,まず,次のいずれかのコマンドを入力します。
$
@SYS$UPDATE:LIBDECOMP$
@SYS$UPDATE:LIBDECOMP EXPAND
次に,以前の例で示さたとおり,すべてのライブラリを指定するか,または展開する個々のライブラリの番号をいくつでも指定するよう,プロンプトが表示されます。
このメニューを省略し,選択したライブラリだけを展開するには,次のいずれかのコマンドのようなコマンドを入力して,プロンプトに応答する代わりに,コマンド行にライブラリ名を指定します。
$ @SYS$UPDATE:LIBDECOMP HELPLIB.HLB STARLET.MLB LIB.MLB
$ @SYS$UPDATE:LIBDECOMP EXPAND HELPLIB STARLET.MLB LIB
どちらのコマンドを実行しても,結果は同じです。 HELPLIB.HLB ライブラリ,STARLET.MLB ライブラリ,および LIB.MLB ライブラリが展開されます。
コマンド行で最初のパラメータとして REDUCE を指定して LIBDECOMP.COM を実行すると,展開されていたライブラリが縮小されます。
REDUCE の後に ALL を指定して,ライブラリ復元ユーティリティが認識できるすべてのライブラリを縮小することも,最大で 7 つまでのライブラリを指定することもできます。 ワイルドカード文字は,許可されていません。
ALL または少なくとも 1 つのライブラリの名前を指定しないと,LIBDECOMP.COM は,縮小するライブラリの名前を入力するようプロンプトを表示します。 このプロンプトに対してリストできるライブラリの数に制限はありません。
縮小機能を使用すると,展開機能を使用した場合に似た内容が表示されますが,縮小できるライブラリだけが表示される点が異なります。
例
次のコマンドを実行すると,展開されていたすべてのライブラリが縮小されます。
$ @SYS$UPDATE:LIBDECOMP REDUCE ALL
メニューにある一部またはすべてのライブラリを縮小するかどうかを選択するには,まず,次のいずれかのコマンドを入力します。
$ @SYS$UPDATE:LIBDECOMP REDUCE
次に,展開機能のセクションで示されたとおり,すべてのライブラリを指定するか,または展開する個々のライブラリの番号をいくつでも指定するよう,プロンプトが表示されます。
3.9.2.3 バッチ・モードでの LIBDECOMP.COM の使用
次のように,DCL コマンド SUBMIT に /PARAMETERS 修飾子を使用することによって,ライブラリ復元ユーティリティをバッチ・キューに登録することができます。
SUBMIT SYS$UPDATE:LIBDECOMP /PARAMETERS=(p1[,p2,...])
バッチ・プロシージャを実行すると会話型プロシージャと同じ結果が生成されますが,バッチ・ジョブの場合,HELP,LIST,ALL または少なくとも 1 つのライブラリ名を指定する必要があります。 バッチ・ジョブは,入力するようプロンプトを表示することができないためです。
パラメータは最大で 8 つまで指定することができます。 複数のパラメータを指定した場合,それらのパラメータは丸括弧で囲み,それぞれをコンマで区切る必要があります。
例
次のコマンドを実行すると,LIBDECOMP.COM が認識できるすべてのライブラリのリストが出力されます。
$ SUBMIT SYS$UPDATE:LIBDECOMP /PARAMETERS=LIST
省略時には,次のコマンドを実行すると,該当するすべてのコマンドが展開されます。
$ SUBMIT SYS$UPDATE:LIBDECOMP /PARAMETERS=ALL
次のコマンドを実行すると,HELPLIB.HLB,STARLET.MLB,および LIB.MLB ライブラリが展開されます。
$ SUBMIT SYS$UPDATE:LIBDECOMP -
_$ /PARAMETERS=(EXPAND,HELPLIB.HLB,STARLET.MLB,LIB.MLB)
3.9.3 LIBRARY コマンドでの /DATA 修飾子の使用
ライブラリ復元ユーティリティを使用せずに個々のライブラリを展開または縮小する方法としては,DCL コマンド LIBRARY に /DATA 修飾子を使用する方法があります。 この方法では,1 つの LIBRARY コマンドで指定できるライブラリは 1 つだけです。
LIBDECOMP.COM は,データ縮小形式で付属する約 40 個のライブラリに対してのみ実行できますが,LIBRARY コマンドは,ほとんどどのライブラリ・ファイルでも,展開または縮小することができます。 ただし,ライブラリ・タイプ (ファイル拡張子) は,OpenVMS Librarian ユーティリティが認識できるものでなければなりません。 以下のシステム・ライブラリは,縮小しないでください。
[SYSLIB]EPC$FACILITY.TLB
このファイルは,空のまま付属しています。
[SYSLIB]IMAGELIB.OLB
このライブラリに対する縮小処理は無効です。
[SYSLIB]NCS$LIBRARY.NLB
OpenVMS Librarian ユーティリティは,ライブラリ・タイプ .NLB を認識できません。
指定されたライブラリを展開するには,次のコマンド形式を使用します。
LIBRARY library-name.ext /DATA=EXPAND
指定されたライブラリを縮小するには,次のコマンド形式を使用します。
LIBRARY library-name.ext /DATA=REDUCE
ライブラリの拡張子 (.HLB,.MLB,.OLB,または .TLB) は,常に指定しなければなりません。
指定されたライブラリが現在の省略時のデバイスおよびディレクトリにない場合には,ライブラリ指定の中でデバイスおよびディレクトリも指定しなければなりません。 ほとんどのシステム・ライブラリは,次の例のように,SYS$HELP ([SYSHLP]) または SYS$LIBRARY ([SYSLIB]) にあります。
$ LIBRARY [SYSHLP]HELPLIB.HLB /DATA=EXPAND
LIBRARY コマンドのその他の修飾子についての詳細は,LIBRARY のオンライン・ヘルプまたは『OpenVMS Command Definition, Librarian, and Message Utilities Manual』を参照してください。
3.10 INSTALL による既知イメージのインストール
Install ユーティリティ (INSTALL) は,イメージに関する情報をメモリに格納します。 INSTALL は次の目的で使用します。
| 目的 | 参照箇所 |
同時に使用されるイメージが消費するメモリを節約する |
|
システム性能を向上させる |
|
Alpha システムおよび I64 システムにおいて,共用アドレス・データのあるイメージを使用することで性能を向上させる [脚注 15] |
|
拡張特権が必要な実行可能イメージを一般的に利用可能にする |
|
非特権イメージが,共用イメージの特権機能を呼び出せるようにする |
|
共用イメージが特権実行可能イメージにより起動できるように保護マークを付ける |
サイト別スタートアップ・コマンド・プロシージャ STARTUP.COM により,システム・ブート時に INSTALL を使用していくつかのシステム・プログラムがインストールされます。 それ以外のプログラムを必要に応じてインストールする場合は,INSTALL を使用します。
このようにメモリにインストールして使用するイメージ (インストール済みイメージ) は,システムのリブートのたびにインストールしなおす必要があります。 そのため,サイト別スタートアップ・コマンド・プロシージャ SYSTARTUP_VMS.COM に必要な INSTALL コマンドを追加します。 詳細は『OpenVMS システム管理者マニュアル (上巻)』を参照してください。
Install ユーティリティ (INSTALL) は,/NOTRACEBACK 修飾子でリンクされたイメージだけをインストールします。
INSTALL コマンドの機能は SYSGEN ユーティリティの INSTALL コマンドと異なる点に注意してください。
次に,インストール済みイメージの概念と Install ユーティリティの使用法を説明します。
3.10.1 イメージおよび既知イメージについて
イメージとは,実行可能プログラムを形成するために Linker ユーティリティによって結合されたプロシージャとデータの集まりです。 実行可能イメージはプロセス内で,あるいはコマンド・ライン・インタプリタ (CLI) または $CREPRC システム・サービスによって,実行できます。 通常,実行可能プログラムのファイル・タイプは .EXE です。
| イメージ・タイプ | 説明 |
実行可能 |
リンカで /EXECUTABLE 修飾子を指定して (あるいは /SHAREABLE 修飾子を指定しないで) リンクされたイメージ。 詳細は 『OpenVMS Linker Utility Manual』 を参照。 |
共用可能 |
Linker ユーティリティで /SHAREABLE 修飾子を指定してリンクされたイメージ。 共用可能イメージは,別のファイルのリンクの入力ファイルとして,暗黙的あるいは明示的に指定できることから,リンク可能イメージと呼ばれることもある。 共用可能イメージは,それにリンクする実行可能イメージにはコピーされない。 したがって,リンク実行可能イメージの数にかかわらず,ディスク上には共用可能イメージが 1 つだけ存在すればよい。 詳細は『OpenVMS Linker Utility Manual』 を参照。 |
システム |
オペレーティング・システムの制御のもとで実行しないイメージ。 スタンドアロン動作だけを目的とする。 システム・イメージの内容と形式は,共用可能イメージおよび実行可能イメージと異なる。 詳細は『OpenVMS Linker Utility Manual』 を参照。 |
INSTALL によってイメージをインストールすると,そのイメージには属性が割り当てられ,システムにとって「既知」のものになります。 このため,インストール済みイメージは既知イメージとも呼ばれます。
イメージ・アクティベータは,既知イメージを優先するために,検索リストを2 つのパスで処理します。
検索リストの 1 回目の検索で,イメージ・アクティベータは既知ファイルとしてイメージを探します。
必要な場合,検索リストの 2 回目の検索で,イメージ・アクティベータはディスク上でイメージを探します。
3.10.2 既知ファイルのエントリについて
システムは,既知イメージを既知ファイル・エントリと呼ばれる内部データ構造に定義します。 各エントリは,インストールされたイメージの名前と,インストール時に割り当てられた属性を示します (インストール済みイメージの属性についての詳細は,3.10.3 項 を参照してください)。
既知ファイル・エントリは,システムが稼働している間だけ存在します。
システムがシャットダウンしたり,何らかの理由で異常終了した場合には,システムのリブート後にすべての既知イメージを再インストールする必要があります。
3.10.3 既知イメージに割り当てることができる属性
INSTALL コマンドに修飾子を指定すれば,既知イメージに属性を割り当てることができます。
表 3-2
に,既知イメージに割り当てることができる属性と使用される修飾子を示します。
表 3-2: 既知イメージの属性
| 属性 | 説明 | 修飾子 |
ヘッダ常駐 |
イメージ・ファイルのヘッダ (ネイティブ・イメージのみ) がメモリに常駐したままとなるため,ファイルに 1 回アクセスするために行われるディスク入出力が 1 回少なくなる。 ヘッダが 1 ブロックだけで構成される場合,1 つのファイルあたり512 バイトのページング動的メモリが使用される。 ヘッダが複数のブロックで構成される場合,1 つのファイルあたりのメモリ消費量はヘッダのブロック数によって異なる。 ヘッダ・オープンとしてインストールされたイメージは,暗黙的に永久オープンとしてインストールされる。 |
/[NO]HEADER_RESIDENT |
永久オープン |
イメージ・ファイルはオープンしたままとなる。 そのため,そのイメージへのアクセスには,ファイル・システムを呼び出す必要がない。 |
/OPEN |
特権 |
イメージにこの属性を割り当てると,そのイメージを実行するすべてのプロセスに一時的に強い特権が割り当てられ,イメージの実行中には利用者登録ファイル (UAF) で指定された特権の制限を超える処理を行うことができる。 したがって,通常の特権を持つユーザでも,通常より上の特権が必要となるプログラムを実行できる。 この属性 (およびそれを作成するための /PRIVILEDGED 修飾子) は,実行可能イメージだけに適用できる。 |
/PRIVILEGED[=(privilege,...)] |
保護 |
イメージが起動されると,そのイメージのアドレス領域は,ユーザ・モードのコードによる変更から保護される。 このことは,カーネルまたはエグゼクティブ・モードで実行する共用可能コードには重要である。 |
/PROTECTED |
常駐 [脚注 16] |
Alpha システムおよび I64 システムの場合,イメージのコードまたは読み込み専用のデータは,メモリのシステム領域に永久に常駐される。 このため,変換バッファ (TB) のミス率を減らすための特殊なページ・マップを使用することで性能が向上する。 常駐属性は,修飾子 /SECTION_BINDING=(CODE,DATA) にリンクされた共用可能イメージまたは実行可能イメージに適用される。 |
/RESIDENT |
共用 |
イメージの読み込み専用セクションおよび参照時にコピーを行わない読み書き用セクションは,複数のユーザから同時にアクセスできる。 したがって,そのようなセクションは物理メモリに 1 つだけ存在すればよい。 一方,参照時にコピーを行うセクションは,それにアクセスする各プロセスごとに必要となる。 共用イメージは,暗黙に「永久オープン」として宣言される。 |
/SHARED |
書き込み可能 |
共用されている参照時にコピーを行わない書き込み可能セクションが物理メモリから削除される場合 (ページング機構により,あるいはそのセクションを参照するプロセスがないために),そのセクションは同時にイメージ・ファイルに書き戻される。 したがって,このセクションに行われた更新は保存され,初期値は失われる。 このイメージは同時に「共用」としても宣言されなければならない。 |
/WRITABLE |
次の条件を満たすイメージがインストールの対象となります。
イメージの起動性能を向上させる
Alpha システムおよび I64 システムの場合,共用イメージの実行性能を向上させる
物理メモリを節約する
実行中のイメージの特権を拡張する
ファイルをインストールするとページング動的メモリなどのシステム資源が必要になります。
したがって,システム性能を向上させ,サイトの要件を満たすファイルをインストールします。
INSTALL の LIST コマンドを利用すれば,イメージをインストールすることによって得られる利点を評価できます。
たとえば,各イメージがアクセスされた回数を計算し,同時に行われているアクセスの数を示します。
これらの値から,各イメージにオーバヘッドの価値があるかどうかを判断できます。
3.10.5 イメージ起動性能を向上するためのイメージのインストール方法
頻繁に実行されるイメージをインストールすることにより,イメージの起動性能を向上できます。 イメージの起動性能は,プログラムがインストールされている場合に向上しますが,これは,オペレーティング・システムがインストール済みファイルをファイル名ではなく,ファイル ID でオープンし,ディレクトリ操作が省略されるためです。
ヘッダ常駐としてイメージをインストールすると,システムがイメージ・ヘッダをメモリに読み込む場合の I/O 操作のオーバヘッドを防止するため,起動性能がさらに強化されます。
ヘッダ常駐としてイメージをインストールするためには,インストール時に /HEADER_RESIDENT 修飾子を指定します。 /HEADER_RESIDENT を指定すると,イメージ・ファイルのヘッダが永久常駐し,ディスク I/O を減少させます。 /HEADER_RESIDENT 修飾子が指定されると,イメージは暗黙的に永久オープンになります。
イメージ・ヘッダは,ページング動的メモリに格納されます。 イメージ・ヘッダのサイズはさまざまです。
頻繁にアクセスする重要なイメージは,オープンされたイメージとしてインストールすることができます。
イメージを「永久オープン」としてインストールするためには,インストール時に /OPEN 修飾子を指定します。
イメージ・ファイルはオープンしたままになるため,そのイメージへのアクセスには,ファイル・システムを呼び出す必要がなくなります。
イメージ・ファイルを永久オープンにしておくには,1 ファイルごとに,約 512 バイトの非ページング動的メモリが必要になります。
3.10.6 共用アドレス・データを付けたイメージのインストール
OpenVMS Alpha システムおよび I64 システム上で共用アドレス・データを使用すると,次のときに性能が向上します。
実行時,共用アドレス・データは,プロセス間のメモリの共用度を高めるので,物理メモリを節約する。
イメージの起動時,フィックスアップがインストレーション時に実行されるので,共用アドレス・データは CPU 時間と I/O 時間を減少させる。
詳細については,『OpenVMS システム管理 ユーティリティ・リファレンス・マニュアル』の INSTALL 項を参照してください。
関連項目
共用アドレス・データに関連する項目について,次で説明します。
1 つのイメージは,いくつものイメージ・セクションから構成されている。 1 つのイメージ・セクションには,次のものが含まれる。
命令 (コード)
読み込み専用データ (定数)
読み込み / 書き込み可能データ
次のコマンドを使用すると,イメージを共用既知イメージにすることができる。
$ INSTALL ADD イメージ名 /SHARED
このコマンドを入力すると,Install ユーティリティは読み込み専用イメージ・セクション用にグローバル・セクションを作成し,イメージを実行するすべてのプロセスがこのセクションを共用できるようにする。
イメージ・セクションの一種にはアドレス・データを含むものがある。 アドレス・データ・セクションは実行時には読み込み専用になる。 ただし,これらのアドレスはイメージの起動までは未知のものである。 このため,イメージ・セクションは,イメージ起動の最後までは読み込み / 書き込みが可能である。 共用イメージ用のアドレスは,マップされたイメージをさまざまなプロセスが独自に集める傾向があるので,一般に,プロセスによってさまざまである。
共用アドレス・データ
共用アドレス・データの機能は,P1 イメージ・セクションにある共用イメージに対して,独自の P1 空間アドレスを割り当てる (IMGREG_PAGES システム・パラメータが P1 空間のサイズを決定する)。 独自の P1 空間アドレスを割り当てる (IMGREG_PAGES システム・パラメータが P1 空間のサイズを決定する)。 割り当てられたアドレスによって,Install ユーティリティは,イメージをインストールする際に,アドレス・データ・セクションの内容を判断する。 それぞれのアドレス・データ・イメージ・セクションに対して,共用アクセスができるように,グローバル・セクションが作成される。
実行可能な (メイン) イメージも,共用アドレス・データ・セクションを使用できる。 ただし,これらのイメージは P1 アドレスには割り当てられない。 その理由は,実行可能なイメージの基底アドレスは,イメージがリンクされるときに判断されるためである。
OpenVMS ソフトウェア製品の一部である多くのイメージは,共用アドレス・データを伴う共用既知イメージとしてインストールされています。
これによって,システム管理者が特に何かを行わなくても,性能は向上します。
3.10.6.2 アプリケーション・イメージ
システム管理者は,共用アドレス・データ付きで追加のイメージをインストールするように決定することもあります。
これを考慮する際,アプリケーションの共用イメージに対する依存性を調査する必要があります。
3.10.7 物理メモリを節約するイメージのインストール方法
通常,複数のプロセスから同時に実行されるイメージをインストールすることにより,物理メモリを節約できます。 イメージをインストールしていない場合,または共用属性を付けずにインストールした場合には,イメージを実行する各プロセスは,メモリ内のプライベート・セクションを必要とします。 共用イメージは,コードのコピーが 1 つだけ常にメモリに存在し,多くのユーザが同時にそのコードにアクセスできるため,物理メモリを節約できます。 イメージを共用イメージとしてインストールする場合には,/SHARED 修飾子を使用します。
共用属性を付けてイメージをインストールする場合は,パーマネント・システム・グローバル・セクションが作成されます。 参照時にコピーを行わないグローバル・セクションを実行するときは,物理メモリに必要なコピーはセクションあたり 1 つだけです。 このことは,そのセクションを持つイメージを実行するプロセスの数には影響されません。
共用属性付きでインストールできるイメージの数は,システム・パラメータ GBLPAGES および GBLSECTIONS によって制限されます。
これらのシステム・パラメータについては,『OpenVMS システム管理 ユーティリティ・リファレンス・マニュアル』を参照してください。
3.10.8 イメージの特権を拡張するためのイメージのインストール方法
イメージを拡張特権環境で実行できるようにするためには,次の 2 つの方法があります。
既存の実行可能イメージを拡張特権付きでインストールし,特権を持たないプロセスがそのイメージの特権付きの機能を利用できるようにする。
INSTALL コマンドの CREATE または REPLACE に,/PRIVILEGED 修飾子を指定する。
重要
拡張した特権を持つイメージをインストールすることにより,システムの機密保護が侵される場合があります。 そのイメージにより,ユーザがその他の特権を使用できるような制御を得ることがないように確認してください。
特権付きの共用可能イメージ (ユーザが作成したシステム・サービスを実現するときに使用するもの) をインストールし,他の非特権イメージが,その特権を拡張しなくても特権付きコードの選択部分を実行できるようにする。
INSTALL コマンドの CREATE または REPLACE に,/PROTECTED および /SHARED 修飾子を指定する。
特権を持たないプロセス (非特権プロセス) でも,特権イメージとしてインストールされた実行イメージの特権付き機能を利用することができます。 そのためには,/PRIVILEGED 修飾子を指定して,該当する実行可能イメージを拡張特権付きでインストールします。 そのようなイメージ (実行可能イメージのみ) を実行するプロセスには強い特権が一時的に割り当てられ,イメージの実行中に利用者登録ファイル (UAF) で定義された特権の制限事項を超える動作ができます。 したがって,通常の特権を持つユーザでも,通常より高い特権が必要なプログラムを実行できます。
特権付きでインストールされたイメージから共用可能イメージなどの他のイメージを起動する場合には,そのイメージを特権イメージにリンクしたり,LIB$FIND_IMAGE_SYMBOL を使用して,次の条件を満たす必要があります。
共用可能イメージは,INSTALL を使用して既知イメージとしてインストールしなければならない。
そのイメージを検索するために使用する論理名およびテーブル名は,エグゼクティブ・モードあるいはカーネル・モードで定義されなければならない。 特に,標準のエグゼクティブ・モードで定義した LNM$FILE_DEV は LNM$SYSTEM にしか変換されない。 また,プロセス・テーブル,ジョブ・テーブル,あるいはグループ・テーブル内の定義は認識されない。
拡張特権付きでインストールするイメージは,必ずLinker ユーティリティの修飾子 /NODEBUG および /NOTRACE でリンクする。
特権付き共用可能イメージとは,内部 (エグゼクティブまたはカーネル) モードで実行するエントリ・ポイントが定義された共用可能イメージです。 共用可能イメージの内部モードのエントリ・ポイントは,ユーザが作成したシステム・サービスとして扱われます。
特権付き共用可能イメージを作成する場合,次の作業が必要です。
PLV (特権付きライブラリ・ベクタ) データ構造の VECTOR 属性を持つプログラム・セクションを作成する。
コマンド修飾子 /PROTECT または Linker ユーティリティの PROTECT= オプションを使用して共用可能イメージをリンクし,そのイメージを拡張特権の特定の形式にする。
イメージのすべての部分を保護する必要がある場合は,コマンド修飾子 /PROTECT を使用する。
特権付きの共用可能イメージの一部分だけを保護する必要がある場合は,PROTECT= オプションを使用する。
Install ユーティリティで修飾子 /PROTECTED および /SHARED の両方を指定し,特権付き共用可能イメージをインストールする。 /PROTECTED 修飾子は保護属性を,/SHARED 修飾子は共用属性をそれぞれ割り当てる。 これらの属性については,3.10.3 項を参照。
注意
INSTALL コマンドの ADD または CREATE に /PRIVILEGED 修飾子を指定して共用可能イメージに特権を付与することはできません。 この修飾子は,実行可能イメージの場合にのみ動作します。
特権付き共用可能イメージの作成についての詳細は,『OpenVMS Programming Concepts Manual』を参照してください。
3.10.9 特権コンテキストでのイメージの起動方法
プロセスが,次のいずれかの動作を行う場合は,イメージ・アクティベータが制限付きの操作モードに入ります。 これは,特権プログラムが実行されている場合に操作モードに入ったときと同様です。
実行アクセスを持つが読み込みアクセスを持たない,実行可能イメージまたは共用可能イメージを実行する。
/PRIVILEGE または /EXECUTE_ONLY 修飾子を指定してインストールされた実行可能イメージを起動する。
特権付き共用可能イメージによって呼び出されたイメージを起動する。
この操作モードには,次の制限があります。
イメージ・アクティベータは,イメージ・ファイルをオープンするときに信用論理名 (エグゼクティブ・モードまたはカーネル・モードに関連する論理名のこと) しか使用しないように OpenVMS RMS に指示する。
注意
実行専用の共用可能イメージを呼び出す実行可能イメージは,/EXECUTE_ONLY 修飾子を付けてインストールしなければなりません。 この修飾子によって,実行可能イメージは,プロセスが実行権を持つが読み込み権を持たない共用可能イメージを起動できるようになります。
/EXECUTE_ONLY 修飾子は,実行可能イメージに対してのみ有効です。
この制限により,特権コンテキストで実行されている共用可能イメージが保護され,期待通りの動作が保証されます。
INSTALL の各コマンドを使用する場合,そのファイル指定には既存の実行可能イメージあるいは共用可能イメージを指定する必要があります。 OpenVMS のレコード管理サービス (RMS) は,各ファイル指定を次の省略時の値を使用して解決します。
装置およびディレクトリのタイプは SYS$SYSTEM
ファイル・タイプは .EXE
CREATE コマンドまたは REPLACE コマンドを使用して,特定のバージョンのファイルを既知のバージョンのファイルとして指定できます。
同じファイルの他のバージョンが存在していても,該当するイメージの既知ファイルの検索時には,必ず指定したバージョンが一致します。
3.10.11 INSTALL によるイメージのインストール
この作業を始めるにあたって,次のことを理解してください。
作業方法
CMKRNL 特権を獲得する。
$ SET PROCESS/PRIVILEGES=CMKRNL
INSTALL を起動する。
$ INSTALL
CREATE コマンドを,次の形式で入力する。
CREATE ファイル名 [/ 修飾子...]
イメージに割り当てる属性に従って,次の修飾子のいずれかを指定する。
/EXECUTE_ONLY
/HEADER_RESIDENT
/OPEN
/PRIVILEGED
/PROTECTED
/RESIDENT (Alpha システムおよび I64 システムのみ)
/SHARED
/WRITABLE
イメージのインストール方法についての詳細は,『OpenVMS システム管理 ユーティリティ・リファレンス・マニュアル』の INSTALL コマンドの CREATE を参照してください。
注意
Install ユーティリティそのものをインストールする場合には,その前にインストールしておかなければならない共用可能イメージがいくつかあります。 そのような必須共用可能イメージ (SMG$SHR,LIBOTS など) の中に使用できないものがあった場合,Install ユーティリティは正常に実行できません。 このような状況では INSTALL は機能しないため,その欠落したイメージをインストールすることもできません。 この問題を解決するには,次のように INSTALL コマンドを再定義します。
$ DEFINE INSTALL SYS$SYSTEM:INSTALL.EXE;0
このようにして INSTALL コマンドを入力した場合,イメージ・アクティベータは INSTALL.EXE の既知のファイル・リストをチェックしないので,INSTALL コマンドは完了し,必要な共用イメージをインストールすることができるようになります。
既知イメージに関する情報を表示するためには,INSTALL の LIST コマンドを使用します。
LIST コマンドの /FULL 修飾子を使って表示された情報を利用して,イメージのインストールが適切であるかどうかを判断することができます。
作業方法
INSTALL を起動する。
$ INSTALL
すべての既知イメージとその属性を表示するには,LIST コマンドを入力する。 特定のイメージの属性を表示するには,次の形式でイメージの名前を指定する。
LIST ファイル名
次に例を示す。
INSTALL> LIST LOGINOUT
特定のイメージに関するすべての項目,すなわち,アクセス数,同時アクセス数,および作成されたグローバル・セクション数を表示する場合には,次のように,/FULL 修飾子を指定する。
LIST/FULL ファイル指定
例
LOGINOUT.EXE というインストール済みイメージのすべての情報を表示します。 表示される項目は,アクセス数,同時アクセス数,および作成されたグローバル・セクションの数です。
$ INSTALL
INSTALL> LIST/FULL LOGINOUT
DISK$VMS551:<SYS2.SYSCOMMON.SYSEXE>.EXE
LOGINOUT;2 Open Hdr Shar Prv
Entry access count = 36366
Current / Maximum shared = 1 / 10
Global section count = 3
Privileges = CMKRNL SYSNAM LOG_IO ALTPRI TMPMBX SYSPRV
INSTALL>
共用可能イメージが SYS$SHARE に存在しない場合,それに対してリンクされている実行可能イメージを実行するために,そのイメージの論理名を指定する必要があります。 たとえば,STATSHR のファイル指定が SYS$SHARE:STATSHR.EXE であれば論理名は不要です。 しかし,STATSHR を SYS$DEVICE:[TEST] に格納した場合,STATSHR を呼び出す実行可能イメージを実行する前に,論理名として STATSHR を定義する必要があります。 論理名は,共用可能イメージをリンクしたときにその入力ファイル指定で使用した名前と同じもの (インストールで使用した名前とも同じ) を使用します。 例を示します。
$ DEFINE STATSHR SYS$SYSDEVICE:[TEST]STATSHR
共用可能イメージの論理名を再定義すれば,実行可能イメージを呼び出して再リンクすることなく,その共用可能イメージを別のものに置き換えることができます。 たとえば,次の文はファイル名 STATSHR を再定義しています。 この名前は,STATSHR を呼び出す実行可能イメージのための,共用可能イメージ SYS$SYSDEVICE:[MAIN]STATSHR.EXE の論理名になります。
$ DEFINE STATSHR SYS$SYSDEVICE:[MAIN]STATSHR
注意
特権付きの実行可能イメージを実行する場合,プロセス論理名テーブルおよびグループ論理名テーブルで定義された論理名は無視されます。 イメージの検索には,エグゼクティブ・モードまたはカーネル・モードで定義された論理名およびテーブル名だけが使用されます。
INSTALL コマンドの REMOVE は,あるイメージの既知ファイル・エントリを削除した後,そのイメージのインストール時に作成されたグローバル・セクションをすべて削除します。 ボリュームに対応する既知ファイル・エントリが存在する場合には,そのボリュームはディスマウントできないことに注意してください。 ボリュームをディスマウントするには,そのボリュームに対応する既知イメージをすべて削除してください。 また,それらのイメージを使用するプロセスがすべて終了するまで待つ必要があります。 ファイルの状態を確認するには,DCL コマンドの SHOW DEVICES/FILES を使用します。
INSTALL の DELETE コマンドについては,『OpenVMS システム管理 ユーティリティ・リファレンス・マニュアル』の INSTALL の節を参照してください。
3.11 予約メモリ・レジストリ
SYSMAN ユーティリティからインタフェース経由で予約メモリ・レジストリを使用することにより,OpenVMS Alpha システムまたは I64 システムに,メモリ常駐セクション内で他の特権アプリケーションで使用するために取り置かれている大容量のメモリを設定することができます。 さらに,予約メモリ・レジストリを使用することにより,割り当て済みの予約メモリを考慮しながら,AUTOGEN ユーティリティによって OpenVMS システムを適切にチューニングすることもできます。
予約メモリ・レジストリを使用すると,次の処理を行うことができます。
メモリ常駐グローバル・セクション・オプションのために,システム非流動メモリを予約する。
メモリ常駐グローバル・セクション割り当てオプションのために,システム非流動メモリの他に,適切な物理ページを予約する。
予約メモリ・レジストリには,システムのブート中,割り当て済みページがゼロになるように指定する機能があります。 このオプションを使用すると,メモリ常駐グローバル・デマンド・ゼロ・セクションを作成するために必要な時間が短縮されます。
予約メモリ・レジストリのもう 1 つのオプションとして,予約メモリのメモリ常駐グローバル・セクションにマップするために必要なページ・テーブルのサイズに関するものがあります。
このオプションが指定され,予約メモリがメモリ常駐グローバル・セクションで使用されると,メモリ常駐グローバル・セクションは,共用ページ・テーブルを使用して作成されます。
3.11.1 予約メモリ・レジストリの使用
OpenVMS には,メモリ常駐グローバル・デマンド・ゼロ・セクション内で使用するために,非流動メモリを予約するメカニズムがあります。 予約メモリのメモリには,単純にシステムの非流動メモリ・サイズから差し引かれたものが使用されるか,またはページが事前に割り当てられます。
予約メモリ・レジストリを使用すると,AUTOGEN により,メモリ常駐セクション・ページをシステムの流動ページの計算に含まないように,システムが適切にチューニングされるようになります。 AUTOGEN はシステムのページ・ファイル,プロセスの数,およびワーキング・セットの最大サイズを,システムの流動ページ・カウントに基づいて計算します。 AUTOGEN が,別の目的で使用するために永久に予約されている物理メモリを考慮しない流動ページ・カウントに基づいてパラメータを調整すると,システムに重大な性能上の問題が発生することがあります。
さらに,予約メモリ・レジストリを使用すると,割り当てオプションが使用された場合に,隣接するアラインされたメモリをメモリ常駐セクションで使用できるようになります。
注意
このセクションでは,予約メモリをグローバル・セクションで使用する方法について説明していますが,この機能は,他の特権アプリケーションでも使用することができます。
予約済みの非流動メモリを消費することにより,メモリの特性が,システムの初期化中 (ブート時) に読み込まれるデータ・ファイルに入力されます。 データ・ファイルの操作の仕組みは,SYS$LOADABLE_IMAGES:VMS$SYSTEM_IMAGES.DATA と似ています (インストール固有のエグゼクティブ・ロードされたイメージを示します)。
このファイルの名前は,次のとおりです。
SYS$SYSTEM:VMS$RESERVED_MEMORY.DATA
このファイルは,SYSMAN ユーティリティによって (エグゼクティブ・ロードされたイメージのデータ・ファイルの場合と同様に) 保守されます。
3.11.1.2 AUTOGEN
予約メモリ・レジストリ・ファイル VMS$RESERVED_MEMORY.DATA は,AUTOGEN フィードバック・メカニズムによって読み込まれ,システムの流動ページ・カウントの設定が考慮されています。
AUTOGEN は,システムのページ・ファイル,プロセスの数,およびワーキング・セットの最大サイズを,システムの流動ページ・カウントに基づいて計算します。
3.11.1.3 予約メモリ・レジストリへのエントリの追加
データ・ファイルへのエントリの追加には,SYSMAN ユーティリティを使用します。 そのための SYSMAN コマンドは,次のとおりです。
SYSMAN RESERVED_MEMORY ADD gs_name -
/GROUP = n -
/SIZE = {size of reserved memory, unit: MB} -
/[NO]ALLOCATE -
/[NO]ZERO -
/[NO]PAGE_TABLES
gs_name フィールドは,この予約メモリに関連付けられたメモリ常駐グローバル・セクションの名前です。 名前を 1 つ指定しなければなりません。
/GROUP 修飾子がない場合,予約メモリの対象は,システム・グローバル・セクション (SYSGBL) になります。
/GROUP 修飾子がある場合,予約メモリの対象は,グループ・グローバル・セクションになります。 プロセスの UIC グループ番号 (8 進数) という値により,グループ・グローバル・セクションが作成されます。 作成者の UICグループ番号のプロセスだけが,このグローバル・セクションにアクセスすることができます。 たとえば,UIC が [6,100] のプロセスがグループ・グローバル・セクションの作成者である場合,/GROUP 修飾子に対して指定されるグループ番号は 6 になります。
/ALLOCATE 修飾子が指定されていない場合,または /NOALLOCATE 修飾子が指定されている場合,予約メモリは,システムの次のリブート中には割り当てられません。 予約メモリは,システムの流動ページ・カウントからのみ差し引かれ,メモリ常駐グローバル・セクションが作成された結果,フォルト・オプションが使用されることになります。
/ALLOCATE 修飾子が指定された場合,システムの次のリブート中にシステムが割り当てられます。 割り当てられたメモリは,システムの流動ページ・カウントから差し引かれ,メモリ常駐グローバル・セクションが作成された結果,割り当てオプションが使用されることになります。 ページの物理アラインメントは,予約メモリのサイズがわかっている場合にページをマップするために使用できる最大粒度ヒント係数に基づいています。 可能な粒度ヒント係数は 512 ページ (4 MB) および 64 ページ (512 KB) です。 したがって,システム・ページ・サイズが 8 KB とすると,予約メモリは,次のように物理的にアラインされます。
1. size >= 4 MB: physically aligned on a 4 Mbyte boundary
2. size < 4 MB: physically aligned on a 512 KB boundary
/ZERO 修飾子が指定されていないか,または /NOZERO が指定されている場合,割り当て済みページは,システム初期化中にゼロになりません。 これらのページは,グローバル・セクションが作成されるとゼロになります。
/ZERO 修飾子を使用できるのは,/ALLOCATE 修飾子が指定されている場合に限られます。 /ZERO 修飾子が指定されている場合,割り当て済みページは,システム初期化中にゼロになります。 ゼロになったページは,メモリ常駐グローバル・セクションで必要です。 ただし,これらのページは,システム初期化中にゼロにする必要はありません。
/PAGE_TABLES 修飾子が指定されていないか,または /NOPAGE_TABLES が指定されている場合,共用ページ・テーブルのための追加のメモリが取り置かれることはありません。 メモリ常駐グローバル・セクションが作成されても,このグローバル・セクションのための共用ページ・テーブルが作成されることはありません。
/PAGE_TABLES 修飾子が指定されている場合,共用ページ・テーブルのための追加のメモリが取り置かれます。 メモリ常駐グローバル・セクションが作成されると,このグローバル・セクションのための共用ページ・テーブルが作成されます。 /ALLOCATE 修飾子が指定されていないか,または /NOALLOCATE が指定されている場合,追加の予約メモリは,システムの流動ページ・カウントから差し引かれるだけです。 /ALLOCATE 修飾子が指定されている場合,共有ページ・テーブルのためにシステムの次のリブート中に追加のページが割り当てられ,追加の予約メモリがシステムの流動ページ・カウントから差し引かれます。
SYSMAN コマンドを次の形式で実行することで,予約メモリ・エントリを削除することができます。
SYSMAN> RESERVED_MEMORY REMOVE gs_name /GROUP = n
指定される
gs_name
は,予約メモリ・レジストリから削除されるエントリに関連付けられたメモリ常駐セクションの名前です。
名前を 1 つ指定しなければなりません。
/GROUP 修飾子によって指定される値 n は,削除されるメモリ常駐セクションに関連付けられた UIC グループ番号 (8 進数) です。 メモリ常駐グローバル・セクションがグループ・セクションの場合,/GROUP 修飾子を指定しなければなりません。 メモリ常駐グローバル・セクションがシステム・グローバル・セクションの場合,/GROUP 修飾子は指定しないでください。
ページ・テーブルが指定されたメモリ常駐グローバル・セクションのために取り置かれている場合,追加の予約メモリも削除されます。
REMOVE コマンドによって削除されるのは,予約メモリ・レジストリ・データ・ファイルのエントリだけです。
実行中のシステムのメモリが影響を受けることはありません。
3.11.2.1 予約メモリの割り当て
システム初期化中に,VMS$RESERVED_MEMORY.DATA データ・ファイルが読み込まれます。
このデータ・ファイルにあるエントリごとに,そのサイズが M バイト (MB) 単位で,RESERVED_MEMORY ADD コマンドで /SIZE 修飾子によって指定されたこのメモリ常駐グローバル・セクションのために,システムの流動ページ・カウントから差し引かれます。 /PAGE_TABLES が指定された場合,このメモリ常駐グローバル・セクションをマッピングする共用ページ・テーブルに必要な量のメモリも,システムの流動ページ・カウントから差し引かれます。
/ALLOCATE が RESERVED_MEMORY ADD コマンドで指定された場合,メモリ常駐グローバル・セクションのために,適切な大きさの物理ページも割り当てられ,取り置かれます。 /PAGE_TABLES が指定された場合,共用ページ・テーブルのために,適切な大きさの物理ページが割り当てられ,取り置かれます。 これらのページには,指定されたサイズに対応する,最大粒度ヒント係数に適した物理アラインメントがあります。 /ZERO が指定された場合,それらのページは,システム初期化中にまたはシステムの空き時間にゼロになります。 /ZERO が指定されなかった場合,または /NOZERO が指定された場合,それらのページは,メモリ常駐グローバル・セクションが作成されるとゼロになります。
システム・パラメータ STARTUP_P1 が MIN に設定されると,予約メモリ・レジストリのエントリは無視され,メモリは予約されません。
システム流動ページを予約するか,隣接するアラインされた物理ページを割り当てて予約メモリ・レジストリ・データ・ファイルを処理中,システム初期化中にエラーが発生すると,エラー・メッセージがコンソールに表示され,システムはブートを続けます。
3.11.2.2 予約メモリの解放
実行中のシステムで,次の形式で SYSMAN コマンドを入力することで,予約メモリを解放することができます。
SYSMAN> RESERVED_MEMORY FREE gs_name /GROUP = n
指定される
gs_name
は,予約メモリ・レジストリから解放されるエントリに関連付けられたメモリ常駐セクションの名前です。
名前を 1 つ指定しなければなりません。
/GROUP 修飾子によって指定された値 n は,解放されるメモリ常駐セクションに関連付けられた UIC グループ番号 (8 進法) です。 メモリ常駐グローバル・セクションがグループ・グローバル・セクションの場合,/GROUP 修飾子を指定しなければなりません。 メモリ常駐グローバル・セクションがシステム・グローバル・セクションの場合,/GROUP 修飾子を指定しないでください。
このグローバル・セクションのために,システム初期化中に物理ページが割り当て済みでなかった場合,予約メモリは単純に,システムの流動ページ・カウントに追加されるだけです。 それ以外の場合,物理ページは,システムの未使用ページ・リストまたはゼロ・ページ・リストに割り当て解除されます。 システムの流動ページ・カウントは,この割り当て解除されるページが含まれるように調整されます。
指定されたメモリ常駐グローバル・セクションのためにページ・テーブルも予約されている場合,共用ページ・テーブルのための予約メモリも解放されます。
予約メモリが,指定されたメモリ常駐グローバル・セクションによって使用中の場合,現在使用中でない予約メモリの量は解放されます。
RESERVED_MEMORY FREE コマンドは,予約メモリ・レジストリ・データ・ファイルの内容には影響を与えず,実行中のシステム内のメモリにのみ影響を与えます。
3.11.2.3 予約メモリの表示
予約メモリ情報は,異なる 2 か所,つまり予約メモリ・レジストリ・データ・ファイルと,このデータ・ファイルのエントリに基づいてシステムの初期化中に作成された,実行中のシステムの予約メモリ・レジストリにあります。
予約メモリに関する情報がどこにあるかによって,使用する表示メカニズムも異なります。
実行中のシステムにある予約メモリ・レジストリを表示するメカニズムには,SYSMAN,DCL SHOW MEMORY コマンド,および SDA の 3 つがあります。
SYSMAN
実行中のシステムにある予約メモリ・レジストリは,次の形式で SYSMAN コマンドを実行することによって表示することができます。
SYSMAN> RESERVED_MEMORY SHOW gs_name /GROUP = n
指定される
gs_name
は,実行中のシステムにある,表示対象のエントリに関連付けられたメモリ常駐グローバル・セクションの名前です。
gs_name が指定されない場合,すべての登録されたグローバル・セクションのための予約メモリが表示されます。
/GROUP 修飾子によって指定される値は,表示対象のメモリ常駐グローバル・セクションに関連付けられた UIC グループ番号 n (8 進法) です。 メモリ常駐グローバル・セクションがグループ・グローバル・セクションの場合,/GROUP 修飾子は指定しなければなりません。 メモリ常駐グローバル・セクションがシステム・グローバル・セクションの場合,/GROUP 修飾子は指定しないでください。 /GROUP 修飾子は,gs_name が指定されている場合に限って使用できます。
DCL SHOW MEMORY コマンド
実行中のシステムにある予約メモリ・レジストリは,次の DCL SHOW MEMORY コマンドを実行することによって表示することができます。 このコマンドを実行すると,予約メモリ/レジストリに関する情報を含む,実行中のシステムに関するすべてのメモリ常駐情報が表示されます。
SHOW MEMORY /RESERVED によって表示されるのは,実行中のシステムの予約メモリ・レジストリに関する情報だけです。
SHOW MEMORY によって表示される情報には,指定されたグローバル・セクションによって現在使用中のメモリの量も含まれます。 さらに,ページ・テーブルのために予約されているメモリおよび (もしあれば) 現在使用中のメモリの量も表示されます。
SDA
SDA にも,実行中のシステムの予約メモリ・レジストリの他,クラッシュ・ダンプ内の予約メモリ・レジストリについても表示するための,さまざまな拡張機能が含まれています。 コマンド・インタフェースは,SDA SHOW MEMORY コマンドです (CDATA "HP OpenVMS System Analysis Tools Manual">を参照してください)。
システム・サービス SYS$CREATE_GDZRO および SYS$CRMPSC_GDZRO_64 は,内部カーネル・モード OpenVMS Alpha ルーチンまたは I64 ルーチンを呼び出して,予約メモリ・レジストリに登録されている予約メモリを使用します。
グローバル・セクションは,予約メモリ・レジストリに登録する必要がありません。 グローバル・セクション名が予約メモリ・レジストリに登録されている場合でも,グローバル・セクションのサイズは,予約メモリのサイズと正確に一致しません。 グローバル・セクションが登録されていない場合,またはグローバル・セクションが予約メモリ・レジストリに登録されていても,/NOALLOCATE が指定されている場合,メモリ常駐グローバル DZR0 セクションに,フォルト・オプションが使用されます。 このサイズが予約メモリよりも大きい場合,システムに十分な流動ページがないと,メモリ常駐グローバル DZR0 セクションを作成するシステム・サービス呼び出しは,失敗します。
グローバル・セクションが予約メモリ・レジストリに登録され,/ALLOCATE が指定された場合,メモリ常駐グローバル DZR0 セクションには,割り当てオプションが使用されます。
グローバル・セクションのサイズは,予約され,割り当てられたメモリのサイズ以下でないと,システム・サービスの呼び出しによって,エラー SS$_MRES_PFNSMALL が戻されます。
3.11.2.5 予約メモリの復帰
メモリ常駐グローバル・セクションが削除されると,そのグローバル・セクションに使用されていた物理ページは,このグローバル・セクションに事前に割り当てられていなかった場合,未使用ページ・リストに割り当て解除されます。 システムの流動ページ・カウントは,このグローバル・セクションの予約メモリ・レジストリに予約されていないページについてのみ,調整されます。
メモリ常駐グローバル・セクションが削除されると,そのグローバル・セクションに使用されていた物理ページは,このグローバル・セクションに事前に割り当てられていた場合,予約メモリ・レジストリに戻されます。 これらの物理ページは未使用ページ・リストに割り当て解除されず,予約されたまま残ります。 システムの流動ページ・カウントは,全く調整されません。
予約メモリは,SYSMAN ユーティリティの RESERVED_MEMORY FREE コマンドを使用した場合にのみ,実行中のシステムに解放できます。
注意
パーマネント・グローバル・セクションは,SYS$DGBLSC を呼び出し,グローバル・セクションへの最後の参照が実行された時点で削除されます。 非パーマネント・グローバル・セクションは,単にグローバル・セクションへの最後の参照が実行された時点で削除されます。
メモリ常駐グローバル・セクションを使用する OpenVMS Alpha アプリケーションまたは I64 アプリケーションを構成するには,次のステップを実行します。
SYSMAN RESERVED_MEMORY ADD コマンドを実行して,予約メモリの使用が必要であることを指定する。
AUTOGEN を実行して,システムの流動ページ・カウントを適切に設定し,システムのページ・ファイル,プロセスの数,および最大ワーキング・セット・サイズが適切に設定されるようフィードバックする。
システムをリブートして,予約メモリがシステムの流動ページ・カウントから差し引かれ,隣接するアラインされたページが必要に応じて割り当てられ,ゼロにされるようにする。