OpenVMS AXP
オペレーティング・システム
OpenVMS AXP オペレーティング・システムへの移行:システム移行の手引き


前へ 次へ 目次 索引



第 5 章
移行計画の作成

アプリケーションを調査し,移行方法が決まったら,移行計画を作成します。移行計画では,移植性に関する問題と,ハードウェアおよびソフトウェアへの依存に関する問題も含めて,アプリケーションの技術的な分析結果を詳しく記述し,各移行段階の概要を示し,移行に関する各作業を誰が実行するかを指定します。移行計画に記述した情報は,アプリケーションの将来の移植性と,性能を向上するための最適化の可能性に関して,技術的およびビジネス的な判断を下すのに役立ちます。

移行計画の概要

この章では,典型的な移行計画の概要を示します。移行計画の具体的な例については,付録 B を参照してください。

  1. エクゼクティブ・サマリ

    移行の概要。移行作業の目標を記述し,機能,品質,納期,および性能上の目標を設定します。アプリケーションが現在実行されている主なプラットフォームを列記し,アプリケーションで使用されている言語も示します。また,アプリケーションの依存性やリスクが,移行目標や移行の完了にどのような影響を与えるかを記述します。最後に,必要となる資源と完了予定日も指定します。

    1. アプリケーションの識別

      名前,所有者

    2. アプリケーションの機能

      アプリケーションが何を実行するのか

    3. 移行の全般的な計画

      他のリリース計画との関係も指定します。

      トランスレーションの使用目的

      • アプリケーションを移行するため

      • ネイティブ・コンパイラを使用できるようになるまでの準備として

  2. 技術分析

    この部分では,イメージ分析とソース分析の結果をもとに,アプリケーションを OpenVMS AXPに移行するための作業範囲を定義します。

    1. アプリケーションの特性

      これはアプリケーションの一般的な記述であり,アプリケーションに含まれるイメージの数,プロシージャの数,データ・ファイルの数,コードの行数とモジュール数,使用されている言語と各言語の割合および特定の機能,VAX MACROが使用されている場合はその理由,アプリケーションが一般に移植可能であるのか,VAXアーキテクチャに依存しているのか,アプリケーションを実行または変更するために特殊なハードウェアまたはソフトウェアが必要かも記述します。

    2. イメージ調査の結果

      • テストしたイメージ

      • 検出されたVESTメッセージ/エラー

    3. ソース分析の結果

      どのようなソース分析を実行したかと,検出された問題点の一般的な説明。

      付録 A に示した質問を使用してください。

    4. 移行に関する問題

      次の各要素に対してアプリケーションが依存しているかどうかを記述してください。

      • データ・アラインメント

      • VAXデータ型

      • 読み込み/書き込みの粒度

      • ページ・サイズ

      • 読み込み/書き込みの順序

      • 例外の即時報告

      • VAXプロシージャ呼び出し規則

      • VAX例外処理メカニズム

      • VAX ASTパラメータ・リスト

      • VAX命令の形式と動作

      • VAX命令の実行時作成

  3. 中間目標と成果物

    移行の中間目標を示し,スケジュールを決定します。

  4. 技術的アプローチ

    移行の各段階で対処する問題を示し,これを前に示した中間目標と比較します。主な問題に対処する順序,それらの問題に対処する人,およびその場所を指定します。さらに DECの移行サービスを利用するかどうかも決定します。

    次の例を参照してください。

    1. 正しくアラインされていないメモリ参照の修正

    2. ページ・サイズへの依存の修正

    3. ANSI以外のコーディング構造の修正

    4. 不可分性に関する問題の修正

    5. その他の依存性への対処


    必要に応じて次の情報も指定してください。

    1. ジャケット・ルーチンが自動的に作成されないときに,ジャケット・ルーチンを作成しなければならないかどうか。

    2. アプリケーションをコンパイル,リンク,またはトランスレートするために特殊なセットアップ・プロシージャが必要かどうか。たとえば,コンパイラ修飾子である /TIE やリンカ・オプションである /[NO]NATIVE_ONLY を使用するかどうか。


    移行の各段階で必要となる作業量

  5. 依存関係とリスク

    他のソフトウェア,ハードウェア,他の組織からのサポート

  6. 必要な資源

    1. ハードウェア

    2. 訪問トレーニング

    3. 電話によるサポート

    4. 技術的な援助

    5. テストの支援


第 6 章
アプリケーションの移行

アプリケーションを実際にAXPシステムに移行する作業は,次に示すように複数の段階に分かれています。

6.1 移行環境の設定

ネイティブなAXP環境は,VAXシステムと同様に完全な開発環境です(しかし,いくつかのDECのコンパイラは,現在のところAXPシステム上で使用できません)。

現在のところ,移行したアプリケーションのデバッグおよびテストは,AXPシステム上で行わなければなりません。

Alpha AXP移行環境の重要な要素はDECからサポートされ,DECはアプリケーションの変更,デバッグ,およびテストのために必要な支援を提供できます。

6.1.1 ハードウェア

移行のためにどのハードウェアが必要かを計画する場合,複数の問題を検討しなければなりません。まず,通常のVAX開発環境でどのような資源が必要であるかを検討してください。

AXP移行環境にとって必要な資源を見積もるには,次の問題を考慮しなければなりません。

VESTを使用すると,多くのCPU時間が必要となります(実際に必要なCPU時間を予測することは困難です。これは,必要なCPU時間は,アプリケーションのサイズよりもアプリケーションの複雑さに大きく依存するからです)。また,VESTを使用する場合,ログ・ファイルのためのディスク空間,AXPイメージのためのディスク空間,フローグラフのためのディスク空間などが大量に必要になります。新しいイメージには,元のVAX命令と新しい Alpha AXP命令の両方が含まれます。したがって,元のVAXイメージより必ず大きくなります。

望ましい構成は次のとおりです。

マルチプロセッサ・システムでは,各プロセッサが別々のアプリケーションのイメージ分析を行うことができます。

コンピユータ資源が不足する場合には,次のいずれかの処置で対処してください。

6.1.2 ソフトウェア

効率のよい移行環境を構築するには,次の要素を確認しなければなりません。

ネイティブなAXP開発

VAXで使用できる標準的な開発ツールはすべて,AXPシステムでもネイティブ・ツールとして提供されています。

トランスレーション

VESTソフトウェア・トランスレータはVAXシステムとAXPシステムの両方で実行されます。Translated Image Environment(TIE)はトランスレートされたイメージを実行するために必要な環境であり,OpenVMS AXPの一部です。したがって,トランスレートされたイメージの最終的なテストはAXPシステムで実行しなければなりません。

6.2 アプリケーションの変換

コードを完全に分析し,移行計画を適切に作成している場合には,この最終段階はかなり簡単に終了できます。多くのプログラムはまったく変更せずに再コンパイルまたはトランスレートできます。直接に再コンパイルまたはトランスレートできないプログラムでも,多くの場合,簡単な変更だけでAXPシステムで実行できるようになります。

コードの実際の変換についての詳しい説明は,OpenVMS AXPの移行に関する次の解説書を参照してください。

これらの各解説書についての説明は,本書のまえがきを参照してください。

2つの移行環境と,各環境で使用される基本的なツールは,図 6-1 に示すとおりです。

図 6-1 移行環境とツール


6.2.1 再コンパイルと再リンク

一般に,アプリケーションを移行する場合には,コードの変更,コンパイル,リンク,およびデバッグを繰り返し実行しなければなりません。これらの処理を実行することにより,開発ツールから指摘されたすべての構文エラーとロジック・エラーを解決します。通常,構文エラーは簡単に修正できますが,ロジック・エラーを修正するには,コードの大幅な変更が必要になります。

新しいコンパイラ・スイッチやリンカ・スイッチに対応するために,コンパイル・コマンドとリンク・コマンドは,ある程度変更しなければなりません。たとえば,複数のAXPプラットフォーム間で移植可能にするために,リンカは AXPシステムの省略時のページ・サイズを64KBとして設定します。この結果,各プロセッサのシステム・ページ・サイズとは無関係に,OpenVMS AXPイメージはどのAXPプロセッサでも実行可能になります。また,AXPの共有可能イメージは,普遍的なエントリ・ポイントとシンボルを宣言するために,VAX転送ベクタ・メカニズムではなく,リンカ・オプション・ファイル内のシンボル・ベクタ宣言を使用します。

AXPプラットフォームでソフトウェアを開発し,移行するために,多くのネイティブ・コンパイラとその他のツールが提供されます。

6.2.1.1 ネイティブなAXPコンパイラ

既存のVAXソースを再コンパイルおよび再リンクすると,ネイティブなAXPイメージが作成され,このイメージはRISCアーキテクチャの性能上の利点をすべて利用して,AXP環境で実行されます。AXPコードでは,一連の高度に最適化されたコンパイラを使用します。これらのコンパイラは共通の最適化コード・ジェネレータを備えています。しかし,各言語に対して異なるフロント・エンドを使用し,これらの各フロント・エンドは現在のVAXコンパイラと互換性があります。

OpenVMS AXPオペレーティング・システムバージョン6.1では,次の言語に対してネイティブなAXPコンパイラが提供されています。

OpenVMS AXPの将来のリリースでは,LISPも含めた他の言語のためのネイティブ・コンパイラも提供されます。

他の言語で作成されたユーザ・モードのVAXプログラムは,VESTを使用してトランスレートすることにより,AXPシステムで実行できます。また,サード・パーティからも他の言語のためのコンパイラが提供されます。

一般に,AXPコンパイラには,コマンド・ライン修飾子と言語セマンティックが準備されており,VAXアーキテクチャに依存するコードをほとんど変更せずに,AXPシステムでも実行できるようにしています。このようなVAXアーキテクチャへの依存のリストについては,表 4-2 を参照してください。詳しい説明は,『 OpenVMS AXP オペレーティング・システムへの移行:再コンパイルと再リンク』を参照してください。

VAXプログラムをAXPシステムに移行するために,AXPコンパイラを使用する方法についての説明は,『 OpenVMS AXP オペレーティング・システムへの移行:再コンパイルと再リンク』を参照してください。

6.2.1.2 その他の開発ツール

ネイティブなAXPイメージを作成するために,コンパイラの他にもいくつかのツールが提供されます。

6.2.2 トランスレーション

AXPシステムで実行するためにVAXイメージをトランスレートする処理については,『DECmigrate for OpenVMS AXP Systems Translating Images』を参照してください。一般に,この処理は簡単ですが,エラーなしにトランスレートするには,コードを少し変更しなければならないことがあります。

6.2.2.1 VAX Environment Software Translator(VEST)と Translated Image Environment(TIE)

ユーザ・モードのVAXイメージをOpenVMS AXPに移行するための主なツールは,静的トランスレータと実行時サポート環境です。

VESTは,できるだけ多くのVAXコードをAXPコードにトランスレートします。TIEは,Alpha AXP命令に変換できなかったVAXコードを解釈します。たとえば,次のコードはTIEによって解釈されます。

命令の解釈は速度の遅い処理であり,おそらく平均的な1つのVAX命令に対して100前後の Alpha AXP命令が必要となるため,VESTは実行時にインタプリタを通じた解釈の必要性をできるだけ少なくするために,できるだけ多くのVAXコードをトランスレートしようとします。トランスレートされたイメージは,ネイティブなAXPイメージと比較すると,約3分の1の速度で実行されます。ただし,この速度はTIEがどれだけのVAXコードを解釈しなければならないかに応じて異なります。トランスレートされたVAXイメージは,少なくともVAXハードウェアと同じ速度で実行されます(同じレベルのプロセス技術を使用したCPUの場合)。

AXPシステムでVAXイメージの動的解釈を指定することはできません。イメージを OpenVMS AXPで実行するには,その前にVESTを使用してイメージをトランスレートしなければなりません。

VAXイメージをトランスレートすると,AXPハードウェアで実行されるイメージが作成されます。このようにして作成されるAXPイメージは,単にVAXイメージを解釈したバージョンやエミュレートしたバージョンではなく,元のVAXイメージ内の命令が実行する操作と同じ操作を実行するAlpha AXP命令を含むイメージです。AXPの .EXEファイルには,元のVAXイメージが完全に登録されているため,TIEはVESTがトランスレートできなかったコードを解釈できます。

VESTの分析機能は,トランスレートする場合だけでなく,再コンパイルする予定のプログラムを評価する場合も役立ちます。

VESTとTIEについての詳しい説明は,『DECmigrate for OpenVMS AXP Systems Translating Images』を参照してください。このマニュアルでは,フローグラフなども含めて,VESTが作成するすべての出力とその解釈方法が詳しく説明されています。また,VESTが作成するイメージ情報ファイル(IIF)から提供される情報を利用して,トランスレートされたイメージの実行時の性能を向上する方法も説明されています。


前へ 次へ 目次 索引