OpenVMS Alpha
オペレーティング・システム
OpenVMS VAX から OpenVMS Alpha へのアプリケーションの移行


前へ 次へ 目次 索引


11.5.5 プラットフォームに依存する機能

DEC Pascal はコンパイルされたプラットフォームと同じプラットフォーム (オペレーティング・システムとハードウェアの組み合わせ)でのみ環境ファイルを使用できます。

さらに,VAXシステムでのみサポートされるDEC Pascalの機能を以下に示します。

以下にAlphaシステムでのみサポートされるDEC Pascalの機能を示します。

11.5.6 古い機能

この節では,サポートされてはいても使用が勧められない機能について説明します。これらは,弊社の他のPascalコンパイラとの互換性のためにのみ提供されます。

11.5.6.1 /OLD_VERSION 修飾子

/OLD_VERSION 修飾子は,コンパイラにVAX Pascalバージョン1.0の言語の定義を使用して,VAX Pascalバージョン1.0とその後のバージョンの違いを解決させます。この修飾子を指定すれば,既存のプログラムを引き続き使えます。

11.5.6.2 /G_FLOATING修飾子

/G_FLOATING修飾子は,コンパイラにDOUBLE型の値に対してG_floatingの表現と命令を使用することを指定します。[[NO]G_FLOATING] 属性はOpenVMS VAXシステムでも OpenVMS Alphaシステムでも指定できます。

/G_FLOATING修飾子の使用が,ソース・プログラムやモジュール内で指定された倍精度属性と矛盾するときは,エラーとなります。倍精度数の受け渡しを行うルーチンやコンパイル単位間で複数の浮動小数点フォーマットを混在させることはできません。すべてのOpenVMS VAX プロセッサがG浮動小数点データ型をサポートするわけではありません。

これより前に,コンパイラが浮動小数点データ型を指定する方法だった,/FLOAT修飾子の説明も参照してください。/FLOAT修飾子は,AlphaシステムのみでサポートされるIEEE浮動小数点データ型も選択できます。

11.5.6.3 OVERLAID 属性

OVERLAID 属性はコンパイル単位で宣言された変数へ,記憶領域がどのように割り当てられるかを指定します。コンパイル・ユニットでOVERLAID が指定されると,プログラムやモジュール・レベルで宣言された変数は(STATICまたはPSECT属性を持たない限り),すべての他の上書きされたコンパイル・ユニットで,静的変数の記憶領域を上書きします。

この属性は,VAX Pascal バージョン1.0で提供された分割コンパイル機能を用いているプログラムでの使用のみを対象としています。


付録 A
アプリケーション評価チェックリスト

このチェックリストの例は,OpenVMS Alphaに移行する対象としてアプリケーションを評価するために弊社が使用したチェックリストをもとにしています。

質問の後の大括弧で囲んだコメントは,その質問の目的を正確に示しています。

アプリケーション評価チェックリスト

開発の履歴と計画
 1. アプリケーションは現在,他のオペレーティング・システムまたはハードウェア・アーキテクチャで実行されていますか? [  ] YES [  ] NO
  その場合には,アプリケーションは現在,RISCシステムで実行されていますか? [  ] YES [  ] NO
  [その場合には,OpenVMS Alphaへの移行は容易に実行できます。]    
 2. 移行後のアプリケーションの開発/保守計画はどのようになっていますか?    
  a. 開発は行わない [  ]YES [  ] NO
  b. 保守リリースのみ [  ]YES [  ] NO
  c. 機能を追加または変更する [  ]YES [  ] NO
  d. VAXソースとAlphaソースを個別に保守する [  ] YES [  ] NO
  [aに対する回答が"YES"の場合には,アプリケーションのトランスレートを考慮してください。bまたはcに対する回答が"YES"の場合には,アプリケーションの再コンパイルと再リンクによって得られる利点を評価してください。ただし,トランスレーションも可能です。VAXソースとAlphaソースを個別に保守する場合,つまり,dに対する回答が"YES"の場合には,相互操作性と整合性に関する問題を考慮しなければなりません。特に,アプリケーションの異なるバージョンが,同じデータベースをアクセスできる場合には,このことを考慮しなければなりません。]    
外部的な依存性
 3. アプリケーションの開発環境を設定するために,どのようなシステム構成(CPU,メモリ,ディスク)が必要ですか?                 
  [この質問は移行に必要な資源の計画を立てるのに役立ちます。]    
 4. アプリケーションの典型的なユーザ環境を設定するために,どのようなシステム構成(CPU,メモリ,ディスク)が必要ですか? インストレーション検証プロシージャ,リグレッション・テスト,ベンチマーク,作業負荷も含めて 考慮してください。                 
  [この質問は,ユーザ環境全体をOpenVMS Alphaで実現できるかどうかを,判断するのに役立ちます。]    
 5. アプリケーションで特殊なハードウェアが必要ですか? [  ] YES [  ] NO
  [この質問は,必要なハードウェアをOpenVMS Alphaで使用できるかどうかと,アプリケーションにハードウェア固有のコードが含まれているかどうかを判断するのに役立ちます。]    
 6. a. アプリケーションは現在,OpenVMSのどのバージョンで実行されていますか?                 
  b. アプリケーションはOpenVMS VAXバージョン7.1で実行されていますか? [  ] YES [  ] NO
  c. アプリケーションはOpenVMS Alpha で有効でない機能を使用しますか? [  ] YES [  ] NO
  [OpenVMS Alphaへの移行の基礎となるのは,OpenVMS VAXバージョン7.1です。cに対する回答が"YES"の場合には,アプリケーションはOpenVMS Alphaでまだサポートされていない機能を使用する可能性があり,またOpenVMS Alphaの現在のバージョンと互換性のないOpenVMS RTL,または他の共有可能イメージに対してリンクされている可能性があります。]    
 7. アプリケーションを実行するために,レイヤード・プロダクトが必要ですか?    
  a. 弊社が提供するプロダクト(コンパイラRTL以外のプロダクト) [  ] YES [  ] NO
  b. サード・パーティが提供するプロダクト: [  ] YES [  ] NO
  [aに対する回答が"YES"のときに,OpenVMS Alphaで弊社のレイヤード・プロダクトが提供されているかどうかがよくわからない場合には,弊社の担当者に質問してください。bに対する回答が"YES"の場合には,サード・パーティ・プロダクトの業者に問い合わせてください。]    
アプリケーションの構造
 8. アプリケーションのサイズは?    
  モジュール数は?                 
  コードの行数またはキロバイト数は?                 
  必要なディスク空間?                 
  [この質問は,移行のために必要な作業量と資源の"サイズ"を判断するのに役立ちます。]    
 9. a. アプリケーションはどの言語で作成されていますか? (複数の言語が使用されている場合には,各言語の割合を示してください。)                 
  [コンパイラがまだ提供されていない場合には,アプリケーションをトランスレートするか,または別の言語で再作成しなければなりません。]    
  b. VAX MACROを使用している場合には,その理由は何ですか?                 
  c. VAX MACROコードの機能を各高級の言語コンパイラ,またはシステム・サービス(プロセス名を検索するための$GETJPIなど)で実行できますか? [  ] YES [  ] NO
  [Alphaアプリケーションで,VAX MACROや MACRO--64 Assembler for OpenVMS Alphaを使用することは,望ましくありません。アプリケーションを最初に開発した段階では,まだ提供されていなかった OpenVMSシステム・サービスを呼び出すことにより,特定のユーザ・モード・アプリケーションで,アセンブリ言語コードを他のコードに置換することができます。]    
 10. a. アプリケーションを構成する,すべてのソース・ファイルをアクセスできますか? [  ] YES [  ] NO
  b. 弊社サービスの使用を検討している場合には,弊社がこれらのソース・ファイルとビルド・プロシージャをアクセスできますか? [  ] YES [  ] NO
  [aに対する回答が"YES"の場合には,ソース・ファイルを入手できない部分の移行はトランスレーションによって実行しなければなりません。bに対する回答が "YES"の場合には,広範囲にわたって弊社の移行サービスを利用できます。]    
 11. a. アプリケーションをテストするために必要なリグレッション・テストが準備されていますか? [  ]YES [  ] NO
  b. 準備されている場合には,DEC Test Managerが必要ですか? [  ] YES [  ] NO
  [aに対する回答が"YES"の場合には,これらのリグレッション・テストの移行を考慮しなければなりません。OpenVMS Alphaの初期リリースでは,DEC Test Managerは提供されません。リグレッション・テストでこのプロダクトが必要な場合には,弊社の担当者にご連絡ください。]    
VAXアーキテクチャへの依存
12. a. アプリケーションで H浮動小数点データ型を使用しますか? [  ] YES [  ] NO
  b. アプリケーションでD浮動小数点データ型を使用しますか? [  ] YES [  ] NO
  c. アプリケーションでD浮動小数点を使用する場合,56ビットの精度 (16桁の有効桁数)が必要ですか,または53ビットの精度(15桁の有効桁数)で十分ですか? [  ] 56ビット [  ] 53ビット
  [aに対する回答が"YES"の場合には,H浮動小数点の互換性を維持するためにアプリケーションをトランスレートするか,またはデータをG浮動小数点,S浮動小数点,またはT浮動小数点フォーマットに変換しなければなりません。bに対する回答が"YES"の場合には,アプリケーションをトランスレートして,VAXでの D浮動小数点の完全な56ビットの精度の互換性を維持するか,Alphaシステムが準備している53ビットの精度のD-floatinフォーマットを使用するか,またはデータを G浮動小数点,S浮動小数点,またはT浮動小数点のいずれかのフォーマットに変換しなければなりません。]    
13. a. アプリケーションで大量のデータ,またはデータ構造を使用しますか? [  ] YES [  ] NO
  b. データがバイト,ワード,またはロングワードでアラインされていますか? [  ] YES [  ] NO
  [aに対する回答が"YES"であり,bに対する回答が"NO"の場合には,Alphaの最適な性能を実現するために,データを自然なアラインメントにすることを考慮しなければなりません。多くのプロセスで共有されるグローバル・セクションにデータが格納されている場合や,メイン・プログラムとASTとの間でデータが共有される場合には,データを自然なアラインメントにしなければなりません。]    
14. コンパイラがデータをアラインする方法に関して,アプリケーションで何らかの仮定を設定していますか(つまり,データ構造がパックされていること,自然なアラインメントにされていること,ロングワードでアラインされていることなどをアプリケーションで仮定していますか)? [  ] YES [  ] NO
  [回答が"YES"である場合には,Alphaプラットフォームでのコンパイラの動作と,VAXプラットフォームでのコンパイラの動作の違いから発生する,移植性と相互操作性の問題を考慮しなければなりません。コンパイラ・スイッチによって,アラインメントは強制的に設定されるため,データ・アラインメントに関するコンパイラの省略時の設定はさまざまです。通常,VAXシステムでは,省略時のデータ・アラインメントはパック形式のアラインメントですが,Alphaコンパイラの省略時の設定は,可能な限り自然なアラインメントです。]    
15. a. アプリケーションで,ページ・サイズが 512バイトであると仮定していますか? [  ] YES [  ] NO
  b. アプリケーションで,メモリ・ページがディスク・ブロックと同じサイズであると仮定していますか? [  ] YES [  ] NO
  [aに対する回答が"YES"の場合には,Alphaのページ・サイズに対応できるように,アプリケーションを準備しなければなりません。Alphaのページ・サイズは512バイトよりはるかに大きく,各システムで異なります。したがって,ページ・サイズを明示的に参照することは避け,可能な限り,メモリ管理システム・サービスとRTLルーチンを使用してください。bに対する回答が "YES"の場合には,ディスク・セクションをメモリにマッピングする $CRMPSCシステム・サービスと,$MGBLSCシステム・サービスに対するすべての呼び出しを確認し,これらの仮定を削除しなければなりません。]    
16. アプリケーションで,OpenVMSシステム・サービスを呼び出しますか? [  ] YES [  ] NO
  特に,次の操作を実行するサービスを呼び出しますか?    
  a. グローバル・セクションを作成,またはマッピングするシステム・サービス(たとえば$CRMPSC, $MGBLSC,$UPDSEC) [  ] YES [  ] NO
  b. ワーキング・セットを変更するシステム・サービス(たとえば $LCKPAG,$LKWSET) [  ] YES [  ] NO
  c. 仮想アドレスを操作するシステム・サービス(たとえば $CRETVA, $DELTVA) [  ]YES [  ] NO
  [これらの質問に対する回答が"YES"の場合には,コードを調べ,必要な入力パラメータが正しく指定されているかどうかを判断しなければなりません。]    
17. a. アプリケーションで複数の協調動作プロセスを使用しますか? [  ] YES [  ] NO
  使用する場合:    
  b. プロセスの数?                 
  c. 使用するプロセス間通信方式?                 
   

[  ] $CRMPSC [  ]メールボックス [  ] SCS [  ]その他
[  ] DLM [  ] SHM,IPC [  ] SMG$ [  ] STR$

   
  d. 他のプロセスとの間でデータを共有するために,グローバル・セクション($CRMPSC)を使用する場合には,どのような方法でデータ・アクセスの同期をとりますか?                 
  [この質問は,明示的な同期を使用しなければならないのかどうかを判断し,アプリケーションの各要素間で,同期を保証するのに必要な作業レベルを判断するのに役立ちます。一般に,高いレベルの同期方式を使用すれば,アプリケーションをもっとも容易に移行できます。]    
18. アプリケーションは現在,マルチプロセッサ(SMP)環境で実行されていますか? [  ] YES [  ] NO
  [回答が"YES"の場合には,アプリケーションはすでに適切なプロセス間同期方式を採用している可能性が高いと言えます。]    
19. アプリケーションで,AST(非同期システム・トラップ)メカニズムを使用しますか? [  ] YES [  ] NO
  [回答が"YES"の場合には,ASTとメイン・プロセスが,プロセス空間でデータ・アクセスを共有するかどうかを判断しなければなりません。共有する場合には,明示的にこのようなアクセスの同期をとらなければなりません。]    
20. a. アプリケーションに条件ハンドラが含まれていますか? [  ] YES [  ] NO
  b. アプリケーションで,算術演算例外の即時報告が必要ですか? [  ] YES [  ] NO
  [Alphaアーキテクチャでは,算術演算例外はただちに報告されません。条件ハンドラが条件を修正しようとするときに,例外の原因となった命令シーケンスを再起動する場合には,ハンドラを変更しなければなりません。]    
21. アプリケーションは特権モードで実行されますか,またはSYS.STBに対してリンクされますか? [  ] YES [  ] NO
  その場合は理由を示してください。                 
  [アプリケーションがOpenVMSエグゼクティブに対してリンクされるか,または特権モードで実行される場合には,ネイティブなAlphaイメージとして実行されるように,アプリケーションを変更しなければなりません。]    
22. 独自のデバイス・ドライバを作成しますか? [  ] YES [  ] NO
  [OpenVMS Alphaの初期リリースでは,ユーザ作成デバイス・ドライバはサポートされません。この機能が必要な場合には,弊社の担当者にご連絡ください。]    
23. アプリケーションで,接続/割り込みメカニズムを使用しますか? [  ] YES [  ]NO
  使用する場合には,どのような機能を使用しますか?                 
  [接続/割り込みは,OpenVMS Alphaシステムでサポートされません。この機能が必要な場合には,弊社の担当者にご連絡ください。]    
24. アプリケーションで,機械語を直接作成または変更しますか? [  ] YES [  ] NO
  [OpenVMS Alphaでは,命令ストリームに書き込まれた命令が,正しく実行されることを保証するには,多大な注意が必要です。]    
25. アプリケーションのどの部分が性能にもっとも大きな影響を与えますか? それは入出力ですか,浮動小数点ですか,メモリですか,リアルタイムですか(つまり,割り込み待ち時間)。                 
  [この質問は,アプリケーションの各部分に対する作業に優先順位をつけるのに役立ち,お客様にとってもっとも意味のある性能向上を,弊社が計画するのに役立ちます。]    


前へ 次へ 目次 索引