日本-日本語

製品  >  ソフトウェア  >  OpenVMS  >  マニュアル

OpenVMS マニュアル


≫ 

OpenVMS
ライブラリ

タイトルページ
目次
まえがき
第 1 章:VAX, AlphaおよびOpenVMS
第 2 章:移行プロセスの概要
第 3 章:アプリケーションの評価: モジュールの調査
第 4 章:移行方法の選択
第 5 章:移行計画の作成
第 6 章:アプリケーションの移行
付録 A :アプリケーション評価チェックリスト
付録 B :移行計画の例
用語集
索引
PDF
OpenVMS ホーム
OpenVMS AXP オペレーティング・システム | HPE 日本

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システムに移行する作業は,次に示すように複数の段階に分かれています。

  • 移行環境を設定する

  • 移行評価の基礎を設定するためにVAXシステムでアプリケーションをテストする

  • AXPシステムで実行するためにアプリケーションを変換する

  • 移行したアプリケーションをデバッグおよびテストする

  • 移行したアプリケーションをソフトウェア・システムに統合する



6.1 移行環境の設定

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

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

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

6.1.1 ハードウェア

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

  • CPU

  • ディスク

  • メモリ

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

  • AXPシステムでは,イメージ・サイズが従来より大きくなること

    VAXシステムとAXPシステムとの間で,コンパイルしたイメージとトランスレートしたイメージを比較してください。

  • AXPシステムでは,ページ・サイズと物理メモリ・サイズが従来より大きくなること

  • 必要なCPU

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

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

  • 256 MBのメモリを装備した6 VUP以上のマルチプロセッサ・システム

  • 1 GBのシステム・ディスク

  • 各アプリケーション当り1 GBのディスク

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

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

  • コンパイラまたはVESTは,作業量の少ない時刻にバッチ・ジョブとして実行してください。

  • 移行作業をAXP Migration Center(AMC)で実行してください。

  • 移行作業のために必要な機器をリースしてください。



6.1.2 ソフトウェア

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

  • 移行ツール

    次のツールも含めて,互換性のある移行ツールが必要です。

    • コンパイラ

    • トランスレーション・ツール

      • VESTとVEST/DEPENDENCY

      • TIE

    • RTL

    • システム・ライブラリ

    • Cプログラムのためのインクルード・ファイル

  • 論理名

    VAXバージョンとAXPバージョンのツールとファイルをそれぞれ適切に指すように,論理名は矛盾のないように定義しなければなりません。詳しくは 第 6.4 節 を参照してください。

  • コンパイル/リンク・プロシージャ

    これらのプロシージャは新しいツールおよび新しい環境に適合するように調整しなければなりません。

  • ソースの管理とイメージのビルドのためのツール

    • CMS

    • MMS

ネイティブなAXP開発

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

トランスレーション

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

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

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

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

  • 『 OpenVMS AXP オペレーティング・システムへの移行:再コンパイルと再リンク』

  • 『DECmigrate for OpenVMS AXP Systems Translating Images』

  • 『Migrating to an OpenVMS AXP System: Porting VAX MACRO Code』

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

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

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




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

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

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

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

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

  • Ada

  • BASIC

  • C

  • C++

  • COBOL

  • FORTRAN

  • Pascal

  • PL/I

  • MACRO-32(クロス・コンパイラ)

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

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

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

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

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

  • OpenVMSリンカ

    OpenVMS リンカは,VAXオブジェクト・ファイルまたはAXPオブジェクト・ファイルを受け付け,VAXイメージまたはAXPイメージを作成できるようになりました。また,VAXハードウェアでAXPイメージを作成できるため,クロス・リンカとして機能します。

  • OpenVMSデバッガ

    OpenVMS AXPで実行されるOpenVMS デバッガは,現在のOpenVMS VAXデバッガと同じコマンド・インターフェイスを使用します。OpenVMS AXPシステムでも,VAXシステム上のグラフィカル・インターフェイスが提供されています。

  • OpenVMSライブラリアン・ユーティリティ

    OpenVMS ライブラリアン・ユーティリティは,VAXライブラリまたは AXPライブラリを作成します。

  • OpenVMS メッセージ・ユーティリティ

    OpenVMS メッセージ・ユーティリティを使用すれば,OpenVMSシステム・メッセージに独自のメッセージを追加できます。

  • MACRO--64 Assembler for OpenVMS AXP

    MACRO--64 AssemblerはネイティブなAXPアセンブリ言語を作成します。

  • ANALYZE/IMAGEユーティリティ

    ANALYZE/IMAGEユーティリティはVAXイメージまたはAXPイメージを分析できます。

  • ANALYZE/OBJECTユーティリティ

    ANALYZE/OBJECTユーティリティはVAXオブジェクトまたはAXPオブジェクトを分析できます。

  • DECset

    DECsetは包括的なCASEツール群であり,Language Sensitive Editor(LSE),Source Code Analyzer(SCA),Code Management System(CMS),Module Management System(MMS)をはじめ,多くの要素で構成されます。



6.2.2 トランスレーション

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

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

  • VAX Environment Software Translator(VEST)は,VAXイメージを分析し,イメージをトランスレートし,同じ機能を実行するイメージを作成するユーティリティです。VESTを使用すれば,次の処理が可能です。

    • VAXイメージをトランスレートできるかどうかを判断する

    • VAXイメージをAXPイメージにトランスレートする

    • イメージ内でOpenVMS AXPと互換性のない部分を識別し,これらの互換性のない部分をソース・ファイルで修正する方法を入手する

    • トランスレートされたイメージの実行時の性能を改善する方法を判断する

  • Translated Image Environment(TIE)は,トランスレートされたイメージを実行時にサポートするAXPの共有可能イメージです。TIEは,トランスレートされたイメージを実行するためにOpenVMS VAXに類似した環境を準備し,ネイティブな AXPシステムとのすべてのやりとりを処理します。TIEには次の要素が含まれています。

    • VAX命令インタプリタ

      次の機能をサポートします。

      • VAXシステムでの実行に類似したVAX命令の実行(命令の不可分性も含む)

      • サブルーチンとしての複雑なVAX命令

    • VAXと互換性のある例外ハンドラ

    • ネイティブ・コードとトランスレートされたコードの間のやりとりを可能にするジャケット・ルーチン

    • エミュレートされたVAXスタック

    トランスレートされたイメージを実行する場合には,TIEが自動的に起動されます。TIEを呼び出す必要はありません。

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

  • VESTが静的に識別できなかった命令

  • H浮動小数点およびD56(56ビットのD浮動小数点)浮動小数点演算

命令の解釈は速度の遅い処理であり,おそらく平均的な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)から提供される情報を利用して,トランスレートされたイメージの実行時の性能を向上する方法も説明されています。


目次 索引

印刷用画面へ
プライバシー 本サイト利用時の合意事項