632
OS/390 MVS プログラミング: アセンブラー・サービスの手引き GC88-6583-02 (英文原典:GC28-1762-08)

MVS プログラミング アセンブラー・サービスの手 …c8865832).pdfMVS Programming: Assembler Services Guide 発 行: 日本アイ・ビー・エム株式会社 担

  • Upload
    others

  • View
    35

  • Download
    0

Embed Size (px)

Citation preview

  • OS/390

    MVS プログラミング:アセンブラー・サービスの手引き

    GC88-6583-02

    (英文原典:GC28-1762-08)

    ���

  • OS/390

    MVS プログラミング:アセンブラー・サービスの手引き

    GC88-6583-02

    (英文原典:GC28-1762-08)

    ���

  • お願い本書、および本書に記述されている製品 (プロダクト) をご使用になる際は、前もって必ず 575ページの『付録B. 特記事項』をお読みください。

    本書は、GC88-6583-01 の大幅な改訂版です。

    本書は、OS/390 のバージョン 2 (プログラム番号 5647-A01) リリース 10 に適用されます。また、改訂版などで特に断りがない限り、後続のリリースおよび修正レベルにも適用されます。

    本マニュアルに関するご意見やご感想は、次の URL からお送りください。今後の参考にさせていただきます。

    http://www.ibm.com/jp/manuals/main/mail.html

    なお、日本 IBM 発行のマニュアルはインターネット経由でもご購入いただけます。詳しくは

    http://www.ibm.com/jp/manuals/ の「ご注文について」をご覧ください。

    (URL は、変更になる場合があります)

     原 典: GC28–1762–08OS/390

    MVS Programming: Assembler Services

    Guide

     発 行: 日本アイ・ビー・エム株式会社

     担 当: ナショナル・ランゲージ・サポート

    第1刷 2000.10

    この文書では、平成明朝体™W3、平成明朝体™W9、平成角ゴシック体™W3、平成角ゴシック体™W5、および平成角ゴシック体™W7を使用しています。この(書体*)は、(財)日本規格協会と使用契約を締結し使用しているものです。フォントとして無断複製することは禁止されています。

      注* 平成明朝体™W3、平成明朝体™W9、平成角ゴシック体™W3、平成角ゴシック体™W5、平成角ゴシック体™W7

    © Copyright International Business Machines Corporation 1988, 2000. All rights reserved.

    Translation: © Copyright IBM Japan 2000

    注注注注: この PDFは同じ資料番号のドキュメントを日本語検索可能にしたものです。以前のものと内容に違いはありません。

  • 目次

    図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv

    本書について . . . . . . . . . . . . . . . . . . . . . . . . . xix本書の読者 . . . . . . . . . . . . . . . . . . . . . . . . . . xix本書の使い方 . . . . . . . . . . . . . . . . . . . . . . . . . xixその他の関連資料 . . . . . . . . . . . . . . . . . . . . . . . . xx

    変更の要約 . . . . . . . . . . . . . . . . . . . . . . . . . . xxi

    第1章 はじめに . . . . . . . . . . . . . . . . . . . . . . . . . 1

    第2章 リンケージ規約 . . . . . . . . . . . . . . . . . . . . . . 5呼び出しプログラムのレジスターの保管 . . . . . . . . . . . . . . . . 6呼び出し側が用意する保管域 . . . . . . . . . . . . . . . . . . . 6浮動小数点レジスターのリンケージ規約 . . . . . . . . . . . . . . . 6浮動小数点制御レジスターのリンケージ規約 . . . . . . . . . . . . . 7システムが用意するリンケージ・スタック . . . . . . . . . . . . . . 7

    リンケージ・スタックの使用 . . . . . . . . . . . . . . . . . . . . 7リンケージ・スタックの使用例 . . . . . . . . . . . . . . . . . . 8

    呼び出しプログラムが用意した保管域の使用 . . . . . . . . . . . . . . 8呼び出しプログラムが用意した保管域の使用例 . . . . . . . . . . . . 10

    基底レジスターの設定 . . . . . . . . . . . . . . . . . . . . . . 10基本モード・プログラムのリンケージ手順 . . . . . . . . . . . . . . . 11基本モード・プログラムが制御を受け取るとき . . . . . . . . . . . . 11基本モード・プログラムが制御を戻すとき . . . . . . . . . . . . . . 12基本モード・プログラムが別のプログラムを呼び出すとき . . . . . . . . 12

    AR モード・プログラムのリンケージ手順 . . . . . . . . . . . . . . . 13AR モード・プログラムが制御を受け取るとき . . . . . . . . . . . . 13AR モード・プログラムが制御を戻すとき . . . . . . . . . . . . . . 13AR モード・プログラムから別のプログラムを呼び出すとき . . . . . . . 14

    パラメーター・リストによる情報の引き渡しについての規約 . . . . . . . . 14基本モードのプログラム . . . . . . . . . . . . . . . . . . . . 14AR モードのプログラム . . . . . . . . . . . . . . . . . . . . 15

    第3章 サブタスクの生成と制御 . . . . . . . . . . . . . . . . . . . 17タスクの生成. . . . . . . . . . . . . . . . . . . . . . . . . . 17優先順位 . . . . . . . . . . . . . . . . . . . . . . . . . . . 18アドレス・スペース優先順位 . . . . . . . . . . . . . . . . . . . 18タスク優先順位 . . . . . . . . . . . . . . . . . . . . . . . . 18サブタスク優先順位 . . . . . . . . . . . . . . . . . . . . . . 18優先順位の割り当てと変更. . . . . . . . . . . . . . . . . . . . 19

    サブタスクの停止および再始動 (STATUS マクロ) . . . . . . . . . . . . 19タスクとサブタスクの連絡. . . . . . . . . . . . . . . . . . . . . 20

    第4章 プログラム管理 . . . . . . . . . . . . . . . . . . . . . . 23プログラムの常駐モードとアドレッシング・モード . . . . . . . . . . . 23常駐モードの定義 . . . . . . . . . . . . . . . . . . . . . . . 24アドレッシング・モードの定義 . . . . . . . . . . . . . . . . . . 24

    リンケージ上の考慮事項 . . . . . . . . . . . . . . . . . . . . . 24浮動小数点の考慮事項 . . . . . . . . . . . . . . . . . . . . . 25

    © Copyright IBM Corp. 1988, 2000 iii

  • 同じ AMODE をもつプログラム間での制御の受け渡し . . . . . . . . . 26異なる AMODE をもつプログラム間での制御の受け渡し . . . . . . . . 26すべてのレジスターを変更しないプログラム間での制御の引き渡し. . . . . 27

    ロード・モジュール構造の種類 . . . . . . . . . . . . . . . . . . . 29単純構造 . . . . . . . . . . . . . . . . . . . . . . . . . . 30動的構造 . . . . . . . . . . . . . . . . . . . . . . . . . . 30

    ロード・モジュールの実行. . . . . . . . . . . . . . . . . . . . . 30単純構造における制御の引き渡し . . . . . . . . . . . . . . . . . . 30戻ることを前提としない制御の引き渡し. . . . . . . . . . . . . . . 30戻ることを前提とした制御の引き渡し . . . . . . . . . . . . . . . 33

    動的構造における制御の引き渡し . . . . . . . . . . . . . . . . . . 40仮想記憶域へのロード・モジュール読み込み . . . . . . . . . . . . . 40戻ることを前提とした制御の引き渡し . . . . . . . . . . . . . . . 48戻すことを前提としない制御の引き渡し. . . . . . . . . . . . . . . 52

    APF 許可プログラムおよびライブラリー . . . . . . . . . . . . . . . 56追加の入り口点 . . . . . . . . . . . . . . . . . . . . . . . . . 56デバッグ手段としての入り口点 ID と呼び出し手順 ID . . . . . . . . . . 57ロード済みモジュールに関する情報の取り出し . . . . . . . . . . . . . 57

    CSVINFO マクロの使用. . . . . . . . . . . . . . . . . . . . . 57CSVINFO マクロのための MIPR のコーディング . . . . . . . . . . . 60

    実行時ライブラリー・サービス (RTLS) を要求する CSVRTLS の使用 . . . . 62

    第5章 31 ビット・アドレッシングについて . . . . . . . . . . . . . . 65仮想記憶域 . . . . . . . . . . . . . . . . . . . . . . . . . . 65アドレッシング・モードと常駐モード . . . . . . . . . . . . . . . 6631 ビット・アドレッシング・モードにおける実行の要件 . . . . . . . . 6931 ビット・アドレッシングの規則と規約 . . . . . . . . . . . . . . 69モードの影響を受ける命令. . . . . . . . . . . . . . . . . . . . 69ブランチ命令. . . . . . . . . . . . . . . . . . . . . . . . . 7031 ビット・アドレッシングの使用 . . . . . . . . . . . . . . . . . 71

    31 ビット・アドレッシングへの移行計画 . . . . . . . . . . . . . . . 71既存プログラムの移行 . . . . . . . . . . . . . . . . . . . . . 7231 ビット・アドレッシングを行うプログラムの新規作成 . . . . . . . . 75MVS/370 と 31 ビット・アドレッシング MVS システム用のプログラムの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

    アドレッシング・モードと常駐モード . . . . . . . . . . . . . . . . 79アドレッシング・モード - AMODE . . . . . . . . . . . . . . . . 79常駐モード - RMODE . . . . . . . . . . . . . . . . . . . . . 79AMODE と RMODE の組み合わせ . . . . . . . . . . . . . . . . 80実行時における AMODE と RMODE の組み合わせ . . . . . . . . . . 80ロード・モジュールの AMODE と RMODE の確認 . . . . . . . . . . 81アセンブラー H による AMODE と RMODE のサポート . . . . . . . . 82DFP リンケージ・エディターによる AMODE と RMODE のサポート . . . 83DFP ローダーによる AMODE と RMODE のサポート . . . . . . . . . 86MVS による AMODE と RMODE のサポート . . . . . . . . . . . . 87アドレッシング・モードの変更方法 . . . . . . . . . . . . . . . . 90

    リンケージの確立 . . . . . . . . . . . . . . . . . . . . . . . . 91BASSM 命令と BSM 命令の使用 . . . . . . . . . . . . . . . . . 93ポインター定義リンケージの使用 . . . . . . . . . . . . . . . . . 95監視プログラム援助リンケージの使用 . . . . . . . . . . . . . . . 97リンケージ援助ルーチン . . . . . . . . . . . . . . . . . . . . 98キャッピングの使用 - プロローグとエピローグを使用したリンケージ . . . 103

    iv OS/390 V2.10 MVS プログラミング : アセンブラー・サービス ガイド

  • 31 ビット・アドレッシング・モードにおける入出力の実行 . . . . . . . . 104EXCP マクロの使用 . . . . . . . . . . . . . . . . . . . . . . 105EXCPVR の使用 . . . . . . . . . . . . . . . . . . . . . . . 105

    中央ストレージの使用について . . . . . . . . . . . . . . . . . . 116中央ストレージについてユーザー・プログラムでの考慮事項 . . . . . . . 117

    第6章 リソース管理 . . . . . . . . . . . . . . . . . . . . . . 121タスクの同期化 (WAIT、POST、および EVENTS マクロ) . . . . . . . . 122タスクの同期化 (一時停止、解放、および制御の引き渡し) . . . . . . . . 124一時停止エレメントおよび一時停止エレメント・トークン . . . . . . . 125サービスの使用 . . . . . . . . . . . . . . . . . . . . . . . 126

    リソース・アクセスの逐次化 (ENQ マクロと DEQ マクロ) . . . . . . . . 130リソースの命名 . . . . . . . . . . . . . . . . . . . . . . . 130リソースのスコープの定義 . . . . . . . . . . . . . . . . . . . 131排他的制御または共用制御の要求 . . . . . . . . . . . . . . . . . 132リソースに対する並行要求の制限 . . . . . . . . . . . . . . . . . 133要求の処理 . . . . . . . . . . . . . . . . . . . . . . . . . 133RESERVE マクロによるリソースに対するアクセスの逐次化 . . . . . . . 138

    リソースおよびその要求元に関する情報の収集 (GQSCAN マクロ) . . . . . 138GQSCAN がリソース情報を戻す方法 . . . . . . . . . . . . . . . 139

    第7章 プログラム割り込みサービス. . . . . . . . . . . . . . . . . 143ユーザー出口ルーチンの指定 . . . . . . . . . . . . . . . . . . . 143

    SPIE マクロの使用 . . . . . . . . . . . . . . . . . . . . . . 144ESPIE マクロの使用 . . . . . . . . . . . . . . . . . . . . . 145ユーザー出口ルーチンに制御が渡ったときの環境 . . . . . . . . . . . 147ユーザー出口ルーチンで実行される機能 . . . . . . . . . . . . . . 147

    第8章 リカバリー処理の準備 . . . . . . . . . . . . . . . . . . . 149一般的なリカバリーの概念について . . . . . . . . . . . . . . . . . 150リカバリー処理を準備するかどうかの判断 . . . . . . . . . . . . . 151MVS におけるエラーについて . . . . . . . . . . . . . . . . . . 152リカバリー・ルーチンの状態について . . . . . . . . . . . . . . . 153リカバリー環境における各種ルーチンについて . . . . . . . . . . . . 154適切なリカバリー・ルーチンの選択 . . . . . . . . . . . . . . . . 155リカバリー・ルーチン・オプションについて . . . . . . . . . . . . 157リカバリー環境におけるルーチンの対話について . . . . . . . . . . . 158

    リカバリー・ルーチンの作成 . . . . . . . . . . . . . . . . . . . 160リカバリー・ルーチンの処理について . . . . . . . . . . . . . . . 161通信手段について . . . . . . . . . . . . . . . . . . . . . . 168ESTAE タイプ・リカバリー・ルーチンの特別な考慮事項 . . . . . . . . 176

    リカバリー環境について . . . . . . . . . . . . . . . . . . . . . 180レジスターの内容 . . . . . . . . . . . . . . . . . . . . . . 181リカバリーにおける他の環境要素 . . . . . . . . . . . . . . . . . 186

    リカバリーのコーディング例 . . . . . . . . . . . . . . . . . . . 192高度なリカバリーのトピックについて . . . . . . . . . . . . . . . . 194

    RTM の呼び出し (ABEND マクロ) . . . . . . . . . . . . . . . . 195複数のリカバリー・ルーチンの準備 . . . . . . . . . . . . . . . . 196リカバリー・ルーチンのためのリカバリーの準備 . . . . . . . . . . . 197マルチタスキング・プログラムのためのリカバリー処理の準備 . . . . . . 197

    STAE/STAI ルーチンの使用 . . . . . . . . . . . . . . . . . . . . 198

    目次 v

  • 第9章 仮想記憶域のダンプ (ABEND、SNAPX、SNAP、および IEATDUMPマクロ) . . . . . . . . . . . . . . . . . . . . . . . . . . 203異常終了ダンプ . . . . . . . . . . . . . . . . . . . . . . . . 204症状ダンプの入手 . . . . . . . . . . . . . . . . . . . . . . 204以前のダンプと重複するダンプの抑止 . . . . . . . . . . . . . . . 205

    スナップ・ダンプ . . . . . . . . . . . . . . . . . . . . . . . 211スナップ・ダンプでの情報探索 . . . . . . . . . . . . . . . . . 212異常終了ダンプまたはスナップ・ダンプの要約ダンプの入手 . . . . . . . 212

    トランザクション・ダンプ . . . . . . . . . . . . . . . . . . . . 212

    第10章 症状レコードの報告 (SYMRBLD および SYMREC マクロ). . . . . 215Logrec データ・セットへの症状レコードの書き出し . . . . . . . . . . . 215症状レコードの形式 . . . . . . . . . . . . . . . . . . . . . . . 216症状ストリング - SDB 形式 . . . . . . . . . . . . . . . . . . 217

    SYMRBLD マクロを使用した症状レコードの組み立て . . . . . . . . . . 217ADSR および SYMREC マクロを使用した症状レコードの組み立て . . . . . 218セクション 1 のプログラミング上の注意 . . . . . . . . . . . . . . 218セクション 2 のプログラミング上の注意 . . . . . . . . . . . . . . 219セクション 2.1 のプログラミング上の注意 . . . . . . . . . . . . . 220セクション 3 のプログラミング上の注意 . . . . . . . . . . . . . . 222セクション 4 のプログラミング上の注意 . . . . . . . . . . . . . . 223セクション 5 のプログラミング上の注意 . . . . . . . . . . . . . . 223

    第11章 仮想記憶の管理 . . . . . . . . . . . . . . . . . . . . . 225仮想記憶域の明示的要求 . . . . . . . . . . . . . . . . . . . . . 225

    GETMAIN マクロによるストレージの取得 . . . . . . . . . . . . . 226STORAGE マクロによるストレージの取得 . . . . . . . . . . . . . 228CPOOL マクロの使用 . . . . . . . . . . . . . . . . . . . . . 230サブプールの取り扱い . . . . . . . . . . . . . . . . . . . . . 231

    仮想記憶域の暗黙的要求 . . . . . . . . . . . . . . . . . . . . . 235再入可能ロード・モジュール . . . . . . . . . . . . . . . . . . 236再入可能マクロ . . . . . . . . . . . . . . . . . . . . . . . 236再入不能ロード・モジュール . . . . . . . . . . . . . . . . . . 238仮想記憶域の解放 . . . . . . . . . . . . . . . . . . . . . . 238

    第12章 呼び出し可能セル・プール・サービス . . . . . . . . . . . . . 241CPOOL マクロと呼び出し可能セル・プール・サービスの比較 . . . . . . . 241ストレージに関する考慮事項 . . . . . . . . . . . . . . . . . . 242呼び出し可能セル・プール・サービスのリンク・エディット . . . . . . . 244

    呼び出し可能セル・プール・サービスの使用 . . . . . . . . . . . . . 244戻りコードの処理 . . . . . . . . . . . . . . . . . . . . . . . 246呼び出し可能セル・プール・サービスのコーディング例 . . . . . . . . . 246

    第13章 仮想域内データ . . . . . . . . . . . . . . . . . . . . . 251仮想域内データをいつ使用するか . . . . . . . . . . . . . . . . . . 252パフォーマンスに影響する因子 . . . . . . . . . . . . . . . . . 252線形データ・セットの作成 . . . . . . . . . . . . . . . . . . . 253

    仮想域内データ・サービスの使用 . . . . . . . . . . . . . . . . . . 254Identify . . . . . . . . . . . . . . . . . . . . . . . . . . 254ACCESS . . . . . . . . . . . . . . . . . . . . . . . . . . 254MAP . . . . . . . . . . . . . . . . . . . . . . . . . . . 255SAVE、SAVELIST、および RESET . . . . . . . . . . . . . . . . 256Unmap . . . . . . . . . . . . . . . . . . . . . . . . . . . 257

    vi OS/390 V2.10 MVS プログラミング : アセンブラー・サービス ガイド

  • UNACCESS . . . . . . . . . . . . . . . . . . . . . . . . . 257Unidentify. . . . . . . . . . . . . . . . . . . . . . . . . . 257

    IDENTIFY サービス. . . . . . . . . . . . . . . . . . . . . . . 258ACCESS サービス . . . . . . . . . . . . . . . . . . . . . . . 258MAP サービス . . . . . . . . . . . . . . . . . . . . . . . . . 261SAVE サービス . . . . . . . . . . . . . . . . . . . . . . . . 267SAVELIST サービス . . . . . . . . . . . . . . . . . . . . . . 269RESET サービス . . . . . . . . . . . . . . . . . . . . . . . . 270

    RESET に対する RETAIN モードの影響 . . . . . . . . . . . . . . 270UNMAP サービス . . . . . . . . . . . . . . . . . . . . . . . 271UNACCESS サービスと UNIDENTIFY サービス . . . . . . . . . . . . 273オブジェクトにおけるデータの共用 . . . . . . . . . . . . . . . . . 273仮想域内データの使用におけるその他の制約 . . . . . . . . . . . . . 274DIV マクロ・プログラミング例 . . . . . . . . . . . . . . . . . . 274プログラム概説 . . . . . . . . . . . . . . . . . . . . . . . 274仮想域内データ処理のプログラム・コード例 . . . . . . . . . . . . 276プログラムの実行 . . . . . . . . . . . . . . . . . . . . . . 281

    第14章 アクセス・レジスターの使用 . . . . . . . . . . . . . . . . 283アクセス・リスト . . . . . . . . . . . . . . . . . . . . . . . 285アクセス・リストの種類 . . . . . . . . . . . . . . . . . . . . 285

    AR モード・プログラムの作成. . . . . . . . . . . . . . . . . . . 287AR モードにおける命令のコーディング . . . . . . . . . . . . . . . 288AR 内容の操作 . . . . . . . . . . . . . . . . . . . . . . . . 289

    AR に ALET をロードする . . . . . . . . . . . . . . . . . . . 290AR に 0 値をロードする . . . . . . . . . . . . . . . . . . . . 290

    ALESERV マクロ . . . . . . . . . . . . . . . . . . . . . . . 291アクセス・リストへの項目の追加 . . . . . . . . . . . . . . . . . 291アクセス・リストからの項目の削除 . . . . . . . . . . . . . . . . 292

    AR モードで MVS マクロを出す . . . . . . . . . . . . . . . . . . 292SYSSTATE の使用例 . . . . . . . . . . . . . . . . . . . . . 293X マクロの使用 . . . . . . . . . . . . . . . . . . . . . . . 293

    AR 情報の形式設定と表示 . . . . . . . . . . . . . . . . . . . . 294

    第15章 データ・スペースとハイパースペース . . . . . . . . . . . . . 295データ・スペースおよびハイパースペースとは何か . . . . . . . . . . . 295データ・スペースまたはハイパースペースでプログラムに何ができるか . . . 296プログラムはどのようにしてデータ・スペースとハイパースペースを取得するか . . . . . . . . . . . . . . . . . . . . . . . . . . . 296プログラムはどのようにしてデータ・スペースまたはハイパースペースにデータを移動させるか . . . . . . . . . . . . . . . . . . . . . 296だれがデータ・スペースまたはハイパースペースを所有するか . . . . . . 297データ・スペースとハイパースペースの使用はインストール・システムで制限できるか . . . . . . . . . . . . . . . . . . . . . . . . 297プログラムはデータ・スペースまたはハイパースペースのストレージをどう管理するか . . . . . . . . . . . . . . . . . . . . . . . . 298

    データ・スペースとハイパースペースの違い . . . . . . . . . . . . . 298データ・スペースとハイパースペースにおける物理ストレージの使用比較 300

    プログラムでどちらを使用すべきか . . . . . . . . . . . . . . . . . 301データ・スペースの使用例 . . . . . . . . . . . . . . . . . . . 301ハイパースペースの使用例 . . . . . . . . . . . . . . . . . . . 301

    データ・スペースの作成と使用 . . . . . . . . . . . . . . . . . . 302

    目次 vii

  • データ・スペースにあるデータの操作 . . . . . . . . . . . . . . . 302データ・スペースの作成、削除、管理の規則 . . . . . . . . . . . . 302データ・スペースの作成 . . . . . . . . . . . . . . . . . . . . 304データ・スペースへのアドレッシングをできるようにする . . . . . . . 308データ・スペース内外へのデータ移動の例 . . . . . . . . . . . . . 308データ・スペースの現行サイズの拡大 . . . . . . . . . . . . . . . 310データ・スペース・ストレージの解放 . . . . . . . . . . . . . . . 312中央ストレージの内外へのデータ・スペース・ストレージのページング 312データ・スペースの削除 . . . . . . . . . . . . . . . . . . . . 313呼び出し可能セル・プール・サービスの使用によるデータ・スペース域の管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . 313

    PSW キー 8 ~ F の問題プログラム状態プログラム間でのデータ・スペースの共用 . . . . . . . . . . . . . . . . . . . . . . . . . 315

    PASN-AL によるデータ・スペースの共用. . . . . . . . . . . . . . 317仮想域内データ・オブジェクトのデータ・スペースへのマッピングの例 318データ・スペースの効率的使用 . . . . . . . . . . . . . . . . . 319データ・スペースの作成、使用、削除の例 . . . . . . . . . . . . . 320データ・スペース内のストレージのダンプ . . . . . . . . . . . . . 321チェックポイント / 再始動の使用 . . . . . . . . . . . . . . . . 321

    ハイパースペースの作成と使用 . . . . . . . . . . . . . . . . . . 322標準のハイパースペース . . . . . . . . . . . . . . . . . . . . 323ハイパースペースの作成 . . . . . . . . . . . . . . . . . . . . 325ハイパースペース内外へのデータ転送 . . . . . . . . . . . . . . . 326ハイパースペースの現行サイズの拡大 . . . . . . . . . . . . . . . 331ハイパースペース・ストレージの解放 . . . . . . . . . . . . . . . 331ハイパースペースの削除 . . . . . . . . . . . . . . . . . . . . 332標準ハイパースペースの作成、使用の例 . . . . . . . . . . . . . . 332仮想域内データとハイパースペースの併用 . . . . . . . . . . . . . 334チェックポイント / 再始動の使用 . . . . . . . . . . . . . . . . 338

    第16章 ウィンドウ・サービス . . . . . . . . . . . . . . . . . . . 341データ・オブジェクト . . . . . . . . . . . . . . . . . . . . . . 341永続 . . . . . . . . . . . . . . . . . . . . . . . . . . . 341一時データ・オブジェクト . . . . . . . . . . . . . . . . . . . 341データ・オブジェクトの構造 . . . . . . . . . . . . . . . . . . 342ウィンドウ・サービスは何を提供するか . . . . . . . . . . . . . . 342ウィンドウ・サービスによるオブジェクトのマッピング方法 . . . . . . . 343永続データ・オブジェクトへのアクセス . . . . . . . . . . . . . . 346一時データ・オブジェクトへのアクセス . . . . . . . . . . . . . . 347

    ウィンドウ・サービスの使用 . . . . . . . . . . . . . . . . . . . 348データ・オブジェクトへのアクセスの取得 . . . . . . . . . . . . . 350ウィンドウから見えるデータ・オブジェクト内容の定義 . . . . . . . . 351予期される参照パターンの定義 . . . . . . . . . . . . . . . . . 353複数ウィンドウにおけるオブジェクト内容の定義 . . . . . . . . . . . 355暫定的変更の永続データ・オブジェクトへの保管 . . . . . . . . . . . 356一時データ・オブジェクトの更新 . . . . . . . . . . . . . . . . . 357変更されたデータのリフレッシュ . . . . . . . . . . . . . . . . . 357DASD 上にある永続オブジェクトの更新 . . . . . . . . . . . . . . 358ウィンドウ内のオブジェクト内容の切り替え . . . . . . . . . . . . 359データ・オブジェクトへのアクセスの終了 . . . . . . . . . . . . . 360呼び出し可能ウィンドウ・サービスのリンク・エディット . . . . . . . 361

    ウィンドウ・サービスのコーディング例 . . . . . . . . . . . . . . . 361

    viii OS/390 V2.10 MVS プログラミング : アセンブラー・サービス ガイド

  • 第17章 アプリケーション・データの共用 (名前 / トークン呼び出し可能サービス) . . . . . . . . . . . . . . . . . . . . . . . . . . . 365

    名前 / トークンの対とレベルについて . . . . . . . . . . . . . . . . 365名前 / トークンの対 . . . . . . . . . . . . . . . . . . . . . 365名前 / トークンの対のレベル . . . . . . . . . . . . . . . . . . 366名前 / トークンの対を利用してプログラムで行えることの判別. . . . . . 367

    必要な名前 / トークン・レベルの判定 . . . . . . . . . . . . . . . . 367タスク・レベルの名前 / トークンの対 . . . . . . . . . . . . . . . 368ホーム・レベルの名前 / トークンの対 . . . . . . . . . . . . . . . 368

    名前 / トークンの対の所有と削除 . . . . . . . . . . . . . . . . . 370名前 / トークンの対がある場合のチェックポイント再始動の使用 . . . . . . 370名前 / トークン・サービスのリンク・エディット. . . . . . . . . . . . 370

    第18章 主記憶域の管理 . . . . . . . . . . . . . . . . . . . . . 373仮想記憶域の解放 . . . . . . . . . . . . . . . . . . . . . . . 374ストレージの解放 . . . . . . . . . . . . . . . . . . . . . . . 374一定の範囲の仮想記憶ページの保護 . . . . . . . . . . . . . . . . . 375仮想記憶域のロードとページアウト . . . . . . . . . . . . . . . . . 376仮想サブエリア・リスト (VSL) . . . . . . . . . . . . . . . . . . 377ページ・サービス・リスト (PSL) . . . . . . . . . . . . . . . . . . 377参照パターンの定義 (REFPAT). . . . . . . . . . . . . . . . . . . 378システムは配列中のデータをどう扱うか . . . . . . . . . . . . . . 379REFPAT マクロの使用 . . . . . . . . . . . . . . . . . . . . . 382REFPAT による参照パターンの定義例 . . . . . . . . . . . . . . . 387参照パターンの定義の解消 . . . . . . . . . . . . . . . . . . . 388

    第19章 仮想記憶域内のデータの共用 (IARVSERV マクロ) . . . . . . . . 389IARVSERV を用いたデータ共用の概念について . . . . . . . . . . . . 390IARVSERV で使用できるストレージ . . . . . . . . . . . . . . . . 391ソースとターゲットのためのストレージの取得 . . . . . . . . . . . . . 391データおよびアクセスを共用するためのストレージの定義 . . . . . . . . 391ストレージ・アクセスの変更 . . . . . . . . . . . . . . . . . . . 393データの共用および非共用の方法 . . . . . . . . . . . . . . . . . . 394共用グループ内でのデータへのアクセス . . . . . . . . . . . . . . . 395IARVSERV を用いたストレージの共用例 . . . . . . . . . . . . . . . 396仮想域内データでの使用 (DIV マクロ) . . . . . . . . . . . . . . . . 397共用データに関する問題の診断 . . . . . . . . . . . . . . . . . . 398中央ストレージ・アドレスの仮想記憶域アドレスへの変換 (IARR2V マクロ) 398

    第20章 計時と通信 . . . . . . . . . . . . . . . . . . . . . . . 401タイマー同期化の検査 . . . . . . . . . . . . . . . . . . . . . . 401時刻と日付の取得 . . . . . . . . . . . . . . . . . . . . . . . 401時刻および日付の TOD クロック形式への変換 . . . . . . . . . . . . . 402間隔計時 . . . . . . . . . . . . . . . . . . . . . . . . . . . 402プロセッサー時間累計の入手 . . . . . . . . . . . . . . . . . . . 404メッセージの書き出しと削除 (WTO、WTOR、DOM、および WTL) . . . . . 405メッセージのルーティング . . . . . . . . . . . . . . . . . . . 406複数行メッセージの書き出し . . . . . . . . . . . . . . . . . . 410複数行メッセージへのラベル行の組み込み . . . . . . . . . . . . . 410

    シスプレックス環境での通信 . . . . . . . . . . . . . . . . . . . 410プログラマーへの書き出し . . . . . . . . . . . . . . . . . . . . 411システム・ログへの書き出し . . . . . . . . . . . . . . . . . . . 411

    目次 ix

  • すでに書き出されているメッセージの削除 . . . . . . . . . . . . . 412コンソール情報の取り出し (CONVCON マクロ) . . . . . . . . . . . . 412コンソールの名前または ID の確認 . . . . . . . . . . . . . . . . 413コンソール名または ID の妥当性検査とコンソールのアクティブ検査 . . . 414コンソール・エリア ID の妥当性検査 . . . . . . . . . . . . . . . 415

    第21章 メッセージの翻訳 . . . . . . . . . . . . . . . . . . . . 417アプリケーションへのデータ・セット割り振り . . . . . . . . . . . . . 419メッセージ・インストール・ファイルの作成 . . . . . . . . . . . . . 420バージョン・レコードの作成 . . . . . . . . . . . . . . . . . . 420メッセージ・スケルトンの作成 . . . . . . . . . . . . . . . . . 420メッセージ・スケルトンの形式 . . . . . . . . . . . . . . . . . 421スケルトンのメッセージ・テキスト . . . . . . . . . . . . . . . . 423

    メッセージ・スケルトンの妥当性検査 . . . . . . . . . . . . . . . . 424妥当性検査済み実行時メッセージ・ファイル用ストレージの割り振り . . . 424メッセージ・ファイルのコンパイル . . . . . . . . . . . . . . . . 425メッセージ・コンパイラーからの戻りコードの検査 . . . . . . . . . . 429

    システム実行時メッセージ・ファイルの更新 . . . . . . . . . . . . . 429アプリケーションでの MMS 翻訳サービスの使用. . . . . . . . . . . . 430使用可能な言語の判別 (QRYLANG マクロ) . . . . . . . . . . . . . 430翻訳メッセージの取り出し (TRANMSG マクロ) . . . . . . . . . . . 431メッセージの表示例 . . . . . . . . . . . . . . . . . . . . . . 433

    新しいメッセージでのメッセージ・パラメーター・ブロックの使用 (BLDMPBマクロおよび UPDTMPB マクロ) . . . . . . . . . . . . . . . . . 434追加言語のサポート . . . . . . . . . . . . . . . . . . . . . . . 435MMS 翻訳サービスを使用するアプリケーションの例 . . . . . . . . . . 436

    第22章 データ圧縮・展開サービス . . . . . . . . . . . . . . . . . 439CSRCESRV によって提供されるサービス . . . . . . . . . . . . . . . 439

    MVS/ESA システムのもとでの実行 . . . . . . . . . . . . . . . . 440MVS/XA システムのもとでの実行 . . . . . . . . . . . . . . . . 441

    CSRCMPSC によって提供されるサービス. . . . . . . . . . . . . . . 442圧縮・展開辞書 . . . . . . . . . . . . . . . . . . . . . . . 443CSRYCMPS エリアの作成 . . . . . . . . . . . . . . . . . . . 444CSRCMPSC マクロをシステム上で出すことができるかどうかの判別. . . . 446圧縮処理 . . . . . . . . . . . . . . . . . . . . . . . . . . 447展開処理 . . . . . . . . . . . . . . . . . . . . . . . . . . 448辞書項目 . . . . . . . . . . . . . . . . . . . . . . . . . . 448

    第23章 装置制御ブロック (UCB) へのアクセス . . . . . . . . . . . . 459入出力構成変更の検出 . . . . . . . . . . . . . . . . . . . . . . 459UCB の走査 . . . . . . . . . . . . . . . . . . . . . . . . . 460指定装置の UCB 情報の取得 . . . . . . . . . . . . . . . . . . . 461適格装置テーブル情報の取得 . . . . . . . . . . . . . . . . . . . 462

    EDTINFO マクロの使用 . . . . . . . . . . . . . . . . . . . . 462

    第24章 内部読み取りプログラム . . . . . . . . . . . . . . . . . . 465内部読み取りプログラムの設定および使用 . . . . . . . . . . . . . . 465内部読み取りプログラム・データ・セットの割り振り . . . . . . . . . 466内部読み取りプログラム・データ・セットのオープン . . . . . . . . . 467内部読み取りプログラムへのジョブ出力の送信 . . . . . . . . . . . . 467内部読み取りプログラム・データ・セットのクローズ . . . . . . . . . 468

    x OS/390 V2.10 MVS プログラミング : アセンブラー・サービス ガイド

  • 第25章 シンボル置換サービスの使用 . . . . . . . . . . . . . . . . 471シンボルとは何か . . . . . . . . . . . . . . . . . . . . . . . 471シンボルのタイプ . . . . . . . . . . . . . . . . . . . . . . 471ユーザー・シンボルの例 . . . . . . . . . . . . . . . . . . . . 472

    ASASYMBM サービスの呼び出し . . . . . . . . . . . . . . . . . 473ASASYMBP マッピング・マクロの設定 . . . . . . . . . . . . . . 474ASASYMBM へシンボル・テーブルを提供する . . . . . . . . . . . 475プログラム中でのシンボルの使用 . . . . . . . . . . . . . . . . . 480

    第26章 システム・ロガー・サービスの使用 . . . . . . . . . . . . . . 483システム・ロガーとは . . . . . . . . . . . . . . . . . . . . . . 483ログ・ストリーム . . . . . . . . . . . . . . . . . . . . . . 484

    システム・ロガーの構成 . . . . . . . . . . . . . . . . . . . . . 487システム・ロガーのコンポーネント . . . . . . . . . . . . . . . . 489LOGR 結合データ・セット (LOGR ポリシー) . . . . . . . . . . . . 490カップリング・ファシリティー上のログ・データ . . . . . . . . . . . 491DASD ログ・データ・セット上のログ・データ . . . . . . . . . . . 492ログ・データの二重化 . . . . . . . . . . . . . . . . . . . . . 492

    システム・ロガー・サービスの概要 . . . . . . . . . . . . . . . . . 494システム・ロガー・サービスの要約 . . . . . . . . . . . . . . . . 494システム・ロガー・リソースに対する許可を定義する . . . . . . . . . 495同期処理と非同期処理 . . . . . . . . . . . . . . . . . . . . . 496IXGBRWSE、IXGWRITE、および IXGDELET のシステム・ロガー完了出口のコーディング . . . . . . . . . . . . . . . . . . . . . . 497システム・ロガーによる、ログ・ストリーム内のギャップの扱い方 . . . . 499データ消失 (804- タイプ) 状態でのダンプ . . . . . . . . . . . . . 500システム・ロガー応答域の使用 (ANSAREA パラメーター) . . . . . . . 503システム・ロガー・アプリケーションにおける ENF イベント・コード 48の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . 504

    IXGINVNT: LOGR ポリシーの管理 . . . . . . . . . . . . . . . . . 506LOGR 結合データ・セットでのモデル・ログ・ストリームの定義 . . . . . 506DASD-Only としてのログ・ストリームの定義 . . . . . . . . . . . . 507DASD-Only からカップリング・ファシリティーへのログ・ストリームのアップグレード . . . . . . . . . . . . . . . . . . . . . . . . 508

    IXGCONN: ログ・ストリームとの接続と切り離し . . . . . . . . . . . 508ログ・ストリームとの接続方法の例 . . . . . . . . . . . . . . . . 509システム・ロガーは、接続時に新しいログ・ストリームに対して構造スペースをどのように割り振るか . . . . . . . . . . . . . . . . . . 510接続プロセスとステージング・データ・セット . . . . . . . . . . . . 511アプリケーションのログ・ストリームに対する許可の要求 . . . . . . . 511リソース・マネージャーとしての接続 . . . . . . . . . . . . . . . 511書き込みまたはインポート接続の要求 - IMPORTCONNECT パラメーター 513ログ・ストリームへのユーザー・データの指定 . . . . . . . . . . . . 513接続要求がリジェクトされた場合の ENF イベント 48 の使用法 . . . . . 514切り離し時のシステム・ロガー処理 . . . . . . . . . . . . . . . . 514IXGCONN 用のリソース・マネージャー出口のコーディング. . . . . . . 515

    IXGWRITE: ログ・ストリームへの書き込み . . . . . . . . . . . . . . 519ログ・ブロック・バッファー . . . . . . . . . . . . . . . . . . 520ログ・ブロックの発生順シーケンスの確認 . . . . . . . . . . . . . 520データがログ・ストリームにコミットされる時期 . . . . . . . . . . . 521ログ・ストリーム・カップリング・ファシリティーのストレージが限界に達した場合 . . . . . . . . . . . . . . . . . . . . . . . . . 521

    目次 xi

  • ステージング・データ・セット・ストレージの限界に達した場合 . . . . . 522ステージング・データ・セットがフォーマットされている場合 . . . . . . 522

    IXGBRWSE: ログ・ストリームの表示 / 読み取り. . . . . . . . . . . . 522IXGBRWSE の用語 . . . . . . . . . . . . . . . . . . . . . . 523IXGBRWSE 要求 . . . . . . . . . . . . . . . . . . . . . . . 523アクティブおよび非アクティブの両方のデータのブラウズ . . . . . . . 524タイム・スタンプによる、ログ・ブロックの表示 . . . . . . . . . . . 524複数ログ・ブロックのブラウズ . . . . . . . . . . . . . . . . . 526戻りコードと理由コードに関する考慮事項 . . . . . . . . . . . . . 526IXGBRWSE と IXGWRITE の使用 . . . . . . . . . . . . . . . . 527IXGBRWSE 要求と IXGDELET 要求の併用 . . . . . . . . . . . . . 527

    IXGDELET: ログ・ストリームからのログ・ブロックの削除 . . . . . . . . 528BLOCKS パラメーターの使用 . . . . . . . . . . . . . . . . . . 528削除要求およびリソース・マネージャー出口処理 . . . . . . . . . . . 529

    IXGIMPRT: ログ・ブロックのインポート . . . . . . . . . . . . . . . 529ログ・ブロックを必ず順番にインポートする - ログ・ブロック ID について 530ログ・データがインポートに安全であることを確認 . . . . . . . . . . 531

    IXGQUERY: ログ・ストリームについての情報の入手 . . . . . . . . . . 531安全なインポート点: IXGQUERY および IXGIMPRT を一緒に使用 . . . . 532カップリング・ファシリティー・リスト構造バージョン番号 . . . . . . . 535

    IXGOFFLD: DASD ログ・データ・セットへのオフロードの開始 . . . . . . 536ターゲット・ログ・ストリームの管理: IXGIMPRT、IXGOFFLD、および

    IXGQUERY を共に使用 . . . . . . . . . . . . . . . . . . . 536IXGUPDAT: ログ・ストリーム制御情報の変更 . . . . . . . . . . . . . 537再構築および IXGUPDAT 処理 . . . . . . . . . . . . . . . . . 538

    システム・ロガー構成の設定 . . . . . . . . . . . . . . . . . . . 538ENF イベント 48 listen 出口ルーチンの作成 . . . . . . . . . . . . 538

    データ・セット形式のログ・ストリームからのデータの読み取り . . . . . . 540手元のアプリケーションは LOGR サブシステムに適格か . . . . . . . . 541LOGR サブシステムの使用 . . . . . . . . . . . . . . . . . . . 542LOGR サブシステムのための JCL . . . . . . . . . . . . . . . . 542

    うまくいかない場合 - システム・ロガーのためのリカバリー・シナリオ . . . 545システム・ロガー・アプリケーションで障害が発生した場合 . . . . . . . 545MVS システムまたはシスプレックスで障害が発生した場合 . . . . . . . 545DASD-Only ログ・ストリームのためのリカバリー . . . . . . . . . . 546システム・ロガー・アドレス・スペースで障害が発生した場合 . . . . . . 547カップリング・ファシリティー構造で障害が発生した場合 . . . . . . . 547ログ・ストリームのカップリング・ファシリティー・スペースが満杯になった場合 . . . . . . . . . . . . . . . . . . . . . . . . . . 549ステージング・データ・セットが満杯になった場合 . . . . . . . . . . 550ログ・ストリームに損傷がある場合 . . . . . . . . . . . . . . . . 550DASD ログ・データ・スペースが満杯の場合 . . . . . . . . . . . . 551回復不能 DASD 入出力エラーが発生した場合 . . . . . . . . . . . . 552リソース・マネージャーが失敗する場合 . . . . . . . . . . . . . . 554

    第27章 ユニコード命令サービス: CSRUNIC . . . . . . . . . . . . . 555

    付録A. 装置検証サービスの使用 . . . . . . . . . . . . . . . . . . 557装置検証の機能 . . . . . . . . . . . . . . . . . . . . . . . . 557グループの検査 - 機能コード 0 . . . . . . . . . . . . . . . . . 557装置の検査 - 機能コード 1 . . . . . . . . . . . . . . . . . . . 558装置名の戻し - 機能コード 2 . . . . . . . . . . . . . . . . . . 558

    xii OS/390 V2.10 MVS プログラミング : アセンブラー・サービス ガイド

    ||||

    ||

  • 装置制御ブロック (UCB) アドレスの戻し - 機能コード 3 . . . . . . . 558グループ ID の戻し - 機能コード 4 . . . . . . . . . . . . . . . 558装置名が参照値であることの指示 - 機能コード 5. . . . . . . . . . . 558参照値の戻し - 機能コード 6 . . . . . . . . . . . . . . . . . . 558参照値への装置タイプの変換 - 機能コード 7 . . . . . . . . . . . . 558属性の戻し - 機能コード 8 . . . . . . . . . . . . . . . . . . . 558戻されたストレージに対するサブプールの指定 - 機能コード 10 . . . . . 559ある装置クラスに対応する装置名の戻し - 機能コード 11 . . . . . . . . 559

    付録B. 特記事項 . . . . . . . . . . . . . . . . . . . . . . . . 575プログラミング・インターフェース情報 . . . . . . . . . . . . . . . 576商標 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576

    索引 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579

    目次 xiii

  • xiv OS/390 V2.10 MVS プログラミング : アセンブラー・サービス ガイド

  • 1. 保管域の形式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92. 基本モードのパラメーター・リスト . . . . . . . . . . . . . . . . . . . . . . . . 153. AR モードのパラメーター・リスト . . . . . . . . . . . . . . . . . . . . . . . . 154. ジョブ・ステップ内のタスク・レベル . . . . . . . . . . . . . . . . . . . . . . . 205. AMODE/RMODE のアセンブラー定義 . . . . . . . . . . . . . . . . . . . . . . . 236. アドレッシング・モードの切り替えの例 . . . . . . . . . . . . . . . . . . . . . . 277. 単純構造における制御の引き渡し . . . . . . . . . . . . . . . . . . . . . . . . . 328. 制御をパラメーター・リストとともに引き渡す例 . . . . . . . . . . . . . . . . . . . 339. 戻ることを前提とした制御の引き渡し . . . . . . . . . . . . . . . . . . . . . . . 35

    10. CALL による制御の引き渡し . . . . . . . . . . . . . . . . . . . . . . . . . . 3511. 正常な戻りかどうかのテスト . . . . . . . . . . . . . . . . . . . . . . . . . . 3612. ブランチ・テーブルを使用しての戻りコードのテスト . . . . . . . . . . . . . . . . . 3713. 戻りコードの設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3814. RETURN マクロの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3915. フラグを立てる RETURN マクロ . . . . . . . . . . . . . . . . . . . . . . . . . 3916. モジュール探索 (EP または EPLOC パラメーターを指定、DCB=0 または DCB パラメーターを省略) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

    17. モジュール探索 (EP または EPLOC パラメーターを指定、DCB パラメーターに専用ライブラリーを指定) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

    18. DE パラメーターを指定した場合のモジュール探索 . . . . . . . . . . . . . . . . . . 4619. LINK マクロの使用 (ジョブ・ライブラリーまたはリンク・ライブラリーの場合) . . . . . . . 4920. LINK マクロの使用 (専用ライブラリーの場合) . . . . . . . . . . . . . . . . . . . . 5021. BLDL マクロの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5022. DE パラメーターをもつ LINK マクロ . . . . . . . . . . . . . . . . . . . . . . . 5023. 制御プログラム機能の誤用が予測できない結果を引き起こす例 . . . . . . . . . . . . . . 5524. CSVINFO マクロおよび呼び出し側の MIPR の処理の流れ . . . . . . . . . . . . . . . 6025. 2 ギガバイトの仮想記憶域マップ . . . . . . . . . . . . . . . . . . . . . . . . . 6726. AMODE 31 に変更するモジュールとの正しいインターフェースの保持 . . . . . . . . . . . 7327. AMODE と RMODE の組み合わせ . . . . . . . . . . . . . . . . . . . . . . . . 8128. リンケージ・エディターによる AMODE と RMODE の処理 . . . . . . . . . . . . . . 8429. ローダーによる AMODE と RMODE の処理 . . . . . . . . . . . . . . . . . . . . 8730. 16 メガバイトより上にあるデータを取り出すためのモード切り替え . . . . . . . . . . . . 9031. 異なる AMODE および RMODE をもつモジュール間のリンケージ . . . . . . . . . . . . 9232. ブランチ・保管・モード設定命令の説明 . . . . . . . . . . . . . . . . . . . . . . 9333. ブランチ・モード設定命令の説明 . . . . . . . . . . . . . . . . . . . . . . . . . 9434. BASSM と BSM の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9535. ポインター定義リンケージの例. . . . . . . . . . . . . . . . . . . . . . . . . . 9736. 監視プログラム援助リンケージの例 . . . . . . . . . . . . . . . . . . . . . . . . 9837. リンケージ援助ルーチンの例 . . . . . . . . . . . . . . . . . . . . . . . . . . 10038. AMODE 24 モジュールのキャップ . . . . . . . . . . . . . . . . . . . . . . . . 10439. 16 メガバイトより上で入出力を実行する . . . . . . . . . . . . . . . . . . . . . 10740. イベント制御ブロック (ECB) . . . . . . . . . . . . . . . . . . . . . . . . . . 12341. WAIT マクロと POST マクロにおける LINKAGE=SYSTEM の使用 . . . . . . . . . . . 12442. 一時停止および解放の例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12743. 解放および一時停止の例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12844. 一時停止なしの制御の引き渡し例 . . . . . . . . . . . . . . . . . . . . . . . . 12945. ENQ マクロの処理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13446. インターロック状態 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

    © Copyright IBM Corp. 1988, 2000 xv

  • 47. 2 つのリソースに対する 2 つの要求 . . . . . . . . . . . . . . . . . . . . . . . 13748. 2 つのリソースに対する 1 つの要求 . . . . . . . . . . . . . . . . . . . . . . . 13749. 範囲が STEP、SYSTEM、SYSTEMS、または ALL の場合の GQSCAN の作業域の内容 . . . . 14150. SPIE マクロの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14551. 1 つのリカバリー・ルーチンが用意されているメインライン・ルーチン . . . . . . . . . . 15952. 複数のリカバリー・ルーチンが用意されているメインライン・ルーチン . . . . . . . . . . 16053. GETMAIN マクロの使用例 . . . . . . . . . . . . . . . . . . . . . . . . . . . 22854. 仮想記憶域の管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23255. DEQ マクロのリスト形式と実行形式の使用 . . . . . . . . . . . . . . . . . . . . 23756. セル・プール・ストレージ . . . . . . . . . . . . . . . . . . . . . . . . . . . 24357. アドレス・スペースからのマッピング . . . . . . . . . . . . . . . . . . . . . . . 26258. データ・スペースまたはハイパースペースからのマッピング . . . . . . . . . . . . . . 26259. 多重マッピング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26460. ALET を使用したアドレス・スペースまたはデータ・スペースの指定 . . . . . . . . . . . 28461. DU-AL の図解 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28662. AR モードでの命令の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28863. データ・スペースにあるデータへのアクセス . . . . . . . . . . . . . . . . . . . . 29964. ハイパースペースにあるデータへのアクセス . . . . . . . . . . . . . . . . . . . . 30065. データ・スペースのサイズ指定の例 . . . . . . . . . . . . . . . . . . . . . . . 30766. データ・スペースの現行サイズの拡大例 . . . . . . . . . . . . . . . . . . . . . . 31267. データ・スペースに対する呼び出し可能セル・プール・サービスの使用例 . . . . . . . . . 31568. SCOPE=SINGLE データ・スペースを共用する 2 つの問題プログラム . . . . . . . . . . . 31769. 標準ハイパースペースをスクロールしていく例 . . . . . . . . . . . . . . . . . . . 32470. HSPSERV による書き込み操作と読み取り操作の図解 . . . . . . . . . . . . . . . . . 32771. 標準ハイパースペースの作成とデータの転送の例 . . . . . . . . . . . . . . . . . . 33372. 仮想域内データ・オブジェクトのハイパースペースへのマッピング例 . . . . . . . . . . . 33673. 仮想域内データ・オブジェクトとしての標準ハイパースペース . . . . . . . . . . . . . 33774. データ・オブジェクトの構造 . . . . . . . . . . . . . . . . . . . . . . . . . . 34275. スクロール域をもたない永続オブジェクトのマッピング . . . . . . . . . . . . . . . . 34476. スクロール域をもつ永続オブジェクトのマッピング . . . . . . . . . . . . . . . . . . 34477. 一時オブジェクトのマッピング . . . . . . . . . . . . . . . . . . . . . . . . . 34578. オブジェクトの複数ウィンドウへのマッピング . . . . . . . . . . . . . . . . . . . 34579. 複数オブジェクトのマッピング . . . . . . . . . . . . . . . . . . . . . . . . . 34680. 名前とトークンの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36681. 単一アドレス・スペースでのタスク・レベルの使用 . . . . . . . . . . . . . . . . . . 36882. ホーム・レベルとタスク・レベルの名前 / トークンの対の使用 . . . . . . . . . . . . . 36983. 仮想記憶域の解放 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37584. 大きな配列に REFPAT を使用する例 . . . . . . . . . . . . . . . . . . . . . . . 37985. ギャップを含む参照パターンの図 . . . . . . . . . . . . . . . . . . . . . . . . 38186. 正方向の参照パターンの図 . . . . . . . . . . . . . . . . . . . . . . . . . . . 38387. 逆方向の参照パターンの図 . . . . . . . . . . . . . . . . . . . . . . . . . . . 38488. 2 つの典型的な参照パターン . . . . . . . . . . . . . . . . . . . . . . . . . . 38489. IARVSERV によるデータ共用. . . . . . . . . . . . . . . . . . . . . . . . . . 39090. IARVSERV を用いたストレージの共用 . . . . . . . . . . . . . . . . . . . . . . 39791. 時間間隔処理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40492. オペレーターあて書き出し . . . . . . . . . . . . . . . . . . . . . . . . . . . 40893. 応答要求付きのオペレーターあて書き出し . . . . . . . . . . . . . . . . . . . . . 41094. メッセージの翻訳の準備 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41995. 実行時メッセージ・ファイルのデータ・セットを作成するために IDCAMS を呼び出すサンプル・ジョブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425

    96. 単一 PDS を入力とした場合の、JCL によるコンパイラー呼び出し . . . . . . . . . . . . 42697. 複数 PDS を連結して入力とした場合の、JCL によるコンパイラー呼び出し . . . . . . . . 426

    xvi OS/390 V2.10 MVS プログラミング : アセンブラー・サービス ガイド

  • 98. 単一 PDS を入力とした場合の TSO/E CLIST によるコンパイラーの呼び出し . . . . . . . . 42699. 複数 PDS を連結して入力とした場合の、TSO/E CLIST によるコンパイラーの呼び出し . . . . 427

    100. 単一 PDS を入力とした場合の、REXX exec によるコンパイラー呼び出し . . . . . . . . . 427101. 複数 PDS を連結して入力とした、REXX exec によるコンパイラー呼び出し . . . . . . . . 428102. TRANMSG マクロの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . 433103. 実行時に MVS システムのレベルをテストする . . . . . . . . . . . . . . . . . . . 441104. 連続したシンボル・テーブル . . . . . . . . . . . . . . . . . . . . . . . . . . 478105. 連続していないシンボル・テーブル . . . . . . . . . . . . . . . . . . . . . . . 479106. システム・ロガー・ログ・ストリーム . . . . . . . . . . . . . . . . . . . . . . . 484107. カップリング・ファシリティーおよび DASD 上のログ・ストリーム・データ . . . . . . . . 485108. ローカル・ストレージ・バッファーおよび DASD ログ・データ・セットにあるログ・ストリー

    ム・データ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486109. カップリング・ファシリティー・ログ・ストリーム構成の全体図 . . . . . . . . . . . . . 488110. DASD-only の構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489111. ENF イベント・コード 48 を listen するための ENFREQ の出し方 . . . . . . . . . . . 505112. ログ・ストリームをモデルとして定義してから、それをひな型にしたログ・ストリームを作成す

    る . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507113. タイム・スタンプによるログ・ブロックの探索 . . . . . . . . . . . . . . . . . . . 525114. ある範囲のログ・ブロックの削除 . . . . . . . . . . . . . . . . . . . . . . . . 529115. ソースおよびターゲット・ログ・ストリームがどのように同期化されなくなるか . . . . . . . 533116. ログ・ストリーム SUBSYS データ・セット指定 . . . . . . . . . . . . . . . . . . . 543117. 入力パラメーター・リスト . . . . . . . . . . . . . . . . . . . . . . . . . . . 560118. 機能コード 0 の要求 (グループの検査) . . . . . . . . . . . . . . . . . . . . . . 561119. 機能コード 1 の要求 (装置の検査) . . . . . . . . . . . . . . . . . . . . . . . . 562120. 機能コード 2 の要求 (装置名の戻し) . . . . . . . . . . . . . . . . . . . . . . . 563121. 機能コード 2 からの出力 (装置名の戻し) . . . . . . . . . . . . . . . . . . . . . 563122. 機能コード 3 の要求 (UCB アドレスの戻し) . . . . . . . . . . . . . . . . . . . . 563123. 機能コード 3 からの出力 (UCB アドレスの戻し) . . . . . . . . . . . . . . . . . . 564124. 機能コード 4 の要求 (グループ ID の戻し) . . . . . . . . . . . . . . . . . . . . 565125. 機能コード 4 からの出力 (グループ ID の戻し) . . . . . . . . . . . . . . . . . . . 565126. 機能コード 5 の要求 (装置名が参照値であることの指示) . . . . . . . . . . . . . . . 566127. 機能コード 6 の要求 (参照値の戻し) . . . . . . . . . . . . . . . . . . . . . . . 566128. 機能コード 6 からの出力 (参照値の戻し) . . . . . . . . . . . . . . . . . . . . . 567129. 機能コード 7 の要求 (参照値への装置タイプの変換) . . . . . . . . . . . . . . . . . 567130. 機能コード 7 からの出力 (参照値への装置タイプの変換) . . . . . . . . . . . . . . . 568131. 機能コード 8 の要求 (属性の戻し) . . . . . . . . . . . . . . . . . . . . . . . . 568132. 機能コード 10 の要求 (戻されたストレージに対するサブプールの指定) . . . . . . . . . . 569133. 機能コード 11 の要求 (ある装置クラスに対応する装置名の戻し) . . . . . . . . . . . . 570134. 機能コード 11 からの出力 (ある装置クラスに対応する装置名の戻し) . . . . . . . . . . . 570135. 機能コード 0 と 1 への入力 . . . . . . . . . . . . . . . . . . . . . . . . . . 571136. 機能コード 0 と 1 からの出力 . . . . . . . . . . . . . . . . . . . . . . . . . 571137. 機能コード 3 と 10 への入力. . . . . . . . . . . . . . . . . . . . . . . . . . 572138. 機能コード 3 と 10 からの出力 . . . . . . . . . . . . . . . . . . . . . . . . . 572139. 機能コード 1 と 5 への入力 . . . . . . . . . . . . . . . . . . . . . . . . . . 573140. 機能コード 1 と 5 からの出力 . . . . . . . . . . . . . . . . . . . . . . . . . 573

    図 xvii

  • xviii OS/390 V2.10 MVS プログラミング : アセンブラー・サービス ガイド

  • 本書について

    本書では、非許可プログラムで使用できるオペレーティング・システム・サービスについて説明します。非許可プログラムとは、監視プログラム状態では作動しないプログラム、または PSW キー 0 ~ 7 をもたないプログラム、あるいは APF 許可ライブラリー上に存在しないプログラムのことです。サービスを使用したいとき、プログラムはマクロを出します。本書の姉妹編である OS/390 MVS プログラミング : アセンブラー・サービス解説書 には、マクロのコーディングに関する詳細な説明があります。

    本書で説明する項目の一部は、OS/390 MVS Programming: Authorized AssemblerServices Guide および次の諸資料でも説明されています。

    v OS/390 MVS Programming: Authorized Assembler Services Reference ALE-DYNv OS/390 MVS Programming: Authorized Assembler Services Reference ENF-IXGv OS/390 MVS Programming: Authorized Assembler Services Reference LLA-SDUv OS/390 MVS Programming: Authorized Assembler Services Reference SET-WTO

    ただし、これらの資料に記載するサービスとマクロは、許可プログラム用です。

    本書の読者本書は、アセンブラー言語プログラマー用に書かれたもので、オペレーティング・システムについて、また、その制御下で作動するプログラムから呼び出すことができるサービスについて説明しています。

    本書では、読者がシステムの概念を理解していることと、アセンブラー言語でプログラムが書けることを想定しています。

    アセンブラー言語のプログラミングについては、次に挙げる資料に記述されています。v HLASM Programmer’s Guidev HLASM Language Reference

    この資料を使用するには、オペレーティング・システム、およびその下で実行されるプログラムが呼び出すことのできるサービスについての知識が必要です。

    本書の使い方本書は、MVS 用のプログラミング資料セットの中の 1 つです。プログラミング資料セットは、アセンブラー言語または C、FORTRAN、および COBOL などの高水準言語によるプログラムの書き方について説明したものです。この資料セットの内容の詳細については、OS/390 情報ロードマップ を参照してください。

    © Copyright IBM Corp. 1988, 2000 xix

  • その他の関連資料本書では、必要に応じ、略式の資料名を用いて、他の資料を参照します。 OS/390に関連する全プロダクトに関する資料のタイトル、資料番号については、OS/390 情報ロードマップ を参照してください。

    xx OS/390 V2.10 MVS プログラミング : アセンブラー・サービス ガイド

  • 変更の要約

    変更の要約GC88-6583-02 (英文原典: GC28-1762-08)OS/390 バージョン 2 リリース 10

    本書には、以前 OS/390 バージョン 2 リリース 9 をサポートする資料GC28-1762-07 に記載されていた情報が入っています。

    新規情報

    v 483ページの『第26章 システム・ロガー・サービスの使用』には、IXGBRWSEサービスの MULTIBLOCK サポートについての情報が入っています。この変更には、システム・ロガー応答域 (IXGANSAA) の新しいフィールドも含まれます。

    v 555ページの『第27章 ユニコード命令サービス: CSRUNIC』

    変更された情報

    v 仮想記憶域管理に関する内容が更新されています。

    削除された情報

    v 仮想取り出しについての情報が削除されました。仮想取り出しは、 OS/390 バージョン 2 リリース 10 以降ではサポートされません。

    本改訂版には、用語、保守、および編集上の訂正や変更も加えられています。 本文や図表に対する技術上の変更または追加は、該当する個所の左側に縦線を付けて示してあります。

    変更の要約GC28-1762-07OS/390 バージョン 2 リリース 9

    本書には、以前 OS/390 第 2 版リリース 8 をサポートする資料 GC88-6583-01 (英文原典: GC28-1762-06) に記載されていた情報が入っています。

    本改訂版には、用語、保守、および編集上の訂正や変更も加えられています。 本文や図表に対する技術上の変更または追加は、該当する個所の左側に縦線を付けて示してあります。

    変更の要約GC88-6583-01 (英文原典 : GC28-1762-06)OS/390 第 2 版 リリース 8

    この改訂版には、以前 OS/390 第 2 版リリース 6 をサポートする、GC28-1762-05で説明されていた情報が収録されています。

    新規情報

    v 並列アクセス・ボリューム (PAV) の説明が 装置制御ブロック (UCB) へのアクセスに追加されています。

    以下の APAR に対するサポートが記載されています。

    © Copyright IBM Corp. 1988, 2000 xxi

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

  • v OW36830

    本改訂版には、用語、保守、および編集上の訂正や変更も加えられています。 本文や図表に対する技術上の変更または追加は、該当する個所の左側に縦線を付けて示してあります。

    変更の要約GC28-1762-05OS/390 第 2 版リリース 6

    この改訂版には以前、OS/390 バージョン 2 第 5 版をサポートする資料である アセンブラー・サービスの手引き、GC88-6291 で説明されていた情報が収録されています。

    新規情報

    v IEEE 浮動小数点サポート、および浮動小数点レジスターと浮動小数点制御レジスターの取り扱いについて説明しています。

    IEEE 浮動小数点の完全なサポートには、OS/390 リリース 6 およびいくつかのソフトウェアの特定リリースに対する PTF が必要です。IEEE 浮動小数点のソフトウェア要件については、OS/390 インストール計画 を参照してください。

    本改訂版には、用語、保守、および編集上の訂正や変更も加えられています。 本文や図表に対する技術上の変更または追加は、該当する個所の左側に縦線を付けて示してあります。

    変更の要約GC28-1762-04OS/390 第 2 版リリース 5

    この改訂版には、以前 OS/390 第 2 版リリース 4 をサポートする、GC28-1762-03で説明されていた情報が収録されています。

    新規情報

    本改訂版には、用語、保守、および編集上の訂正や変更も加えられています。 本文や図表に対する技術上の変更または追加は、該当する個所の左側に縦線を付けて示してあります。

    変更の要約GC28-1762-03OS/390 第 2 版リリース 4

    この改訂版には、以前 OS/390 第 1 版リリース 3 をサポートする、GC28-1762-02で説明されていた情報が収録されています。

    新規情報

    v 483ページの『第26章 システム・ロガー・サービスの使用』には、DASD-only ログ・ストリーム・アプリケーションによるシステム・ロガー・サービスの使用についての新情報が含まれています。変更内容には以下のものが含まれています。

    – システム・ロガー応答域 (IXGANSAA) の新規フィールド。

    xxii OS/390 V2.10 MVS プログラミング : アセンブラー・サービス ガイド

  • – ログ・ストリームが DASD-only であるかどうかを示すための、 IXGINVNTサービスでの新規 DASDONLY パラメーターの使用。

    – ログ・ストリームの DASD-only からカップリング・ファシリティー・ベースへのアップグレード。

    – DASD-only ログ・ストリームへの接続およびそれからの切断 (IXGCONN)。

    – DASD-only ログ・ストリームおよび安全なインポート点 (IXGQUERY)。

    – DASD-only ログ・ストリームのために行われるリカバリー。

    – DASD ログ・データ・セットが満杯になった場合のリカバリー。

    v トランザクション・ダンプv 実行時ライブラリー・サービス (RTLS) の機能を要求するために CSVRTLS が追加されています。

    本改訂版には、用語、保守、および編集上の訂正や変更も加えられています。 本文や図表に対する技術上の変更または追加は、該当する個所の左側に縦線を付けて示してあります。

    変更の要約GC28-1762-02OS/390 第 1 版リリース 3

    この改訂版には、以前 OS/390 第 1 版リリース 2 をサポートする、GC28-1762-01で説明されていた情報が収録されています。

    新規情報

    v 483ページの『第26章 システム・ロガー・サービスの使用』には、以下のサービスを含め、システム・ロガー・サービスの新規機能が記載されています。

    – 新規サービス: IXGIMPRT、IXGQUERY、IXGOFFLD、および IXGUPDAT。

    – IXGBRWSE、IXGWRITE、および IXGDELET の新規の完了出口ルーチン。

    – 既存システム・ロガー・サービスの新規キーワードの説明。

    – システム・ロガー・リソース・マネージャーのコーディングの説明。

    – IXGCONN 用の新規リソース・マネージャー出口ルーチン。

    – 新規 ENF イベント 48 イベント。

    v セルの割り振り方の説明に CSRPRGT1 および CSRPRGT1 が追加されています。

    v セルの解放方法の説明に CSRPRFR1 および CSRPRFR1 が追加されています。

    本改訂版には、用語、保守、および編集上の訂正や変更も加えられています。 本文や図表に対する技術上の変更または追加は、該当する個所の左側に縦線を付けて示してあります。

    変更の要約GC28-1762-01OS/390 リリース 2

    この改訂版には、以前 OS/390 第 1 版リリース 1 をサポートするOS/390 MVS プログラミング : アセンブラー・サービス ガイド、 GC88-6583-00 (英文原典:GC28-1762-00) で説明されていた情報が収録されています。

    変更の要約 xxiii

  • 変更の要約GC88-6583-00 (英文原典 : GC28-1762-00)OS/390 リリース 1

    この改訂版には以前、MVS/ESA システム・プロダクト第 5 版 をサポートする資料である MVS/ESA プログラミング : アセンブラー・サービスの手引き 、GC88-6291 で説明されていた情報が収録されています。

    本改訂版には、用語、保守、および編集上の訂正や変更も加えられています。 本文や図表に対する技術上の変更または追加は、該当する個所の左側に縦線を付けて示してあります。

    xxiv OS/390 V2.10 MVS プログラミング : アセンブラー・サービス ガイド

  • 第1章 はじめに

    システムは、すべてのプログラムに処理が適切に配分されるように、コンピューターによる作業の流れを制御します。 システムを効率よく利用するためには、システムが提供するサービスの内容をよく理解し、その利用に関するプログラミング上の規約に従う必要があります。

    本書の各章では、以下のトピックについて説明しています。

    リンケージ規約 - プログラムは、他のプログラムから呼び出される際、あるいは他のプログラムを呼び出す際には、レジスターと保管域の規約に従う必要があります。この規約に従うことによって、プログラムは、正常に実行させるために必要なレジスター内容とパラメーター・データを保存して、おたがいに制御の引き渡しを支障なく行うことができます。

    サブタスクの生成と制御 - システムは、大きなプログラムよりも小さなプログラムのほうが容易に取り扱うことができるため、大きなプログラムもタスクと呼ばれるいくつかの部分に分割すると、実行が早くなることがあります。適切な規約に従えば、システムのリソースに関する競合がより効率的に行なわれるように、プログラムをいくつかのタスクに分割することができます。

    プログラム管理 - この章では、プログラムの常駐モードとアドレッシング・モードのほかプログラム間のリンケージについて説明します。さらに、保管域、アドレス可能度、およびあるプログラムから別のプログラムへの制御の引き渡しに関する規約についても説明します。

    31 ビット・アドレッシングについて - この章では、31 ビット・アドレッシング関係の用語を定義します。 31 ビット・アドレスを使用した既存のプログラムの修正を行なう場合には、事前にこの章をお読みください。

    リソース管理 - テーブル、ストレージ・デバイス、他のプログラムなど、プログラムの実行に必要なものはすべてリソースと見なされます。 あるプログラムが、他のプログラムでのイベントの発生を前提としているような場合は、そのイベントもリソースであり、そのイベントが完了するまでは、プログラムの実行を一部据え置く必要が出てくることもあります。多くのプログラムが同じリソースを要求する可能性があるため、さらにリソースによっては 1 度に 1 つのプログラムでしか使用できないものもあるため、しばしば同期をとる必要が出てきます。プログラムを正常に実行させるために不可欠なリソースへのアクセスを規制するには、リソースの制御が役立ちます。 GQSCAN マクロを使用することによって、リソースとその要求元に関する情報を入手することができます。

    プログラム割り込みサービス - システムは、システムの処理中に発生する異常状態の検出と処理を行うために、多くのサービス機能を用意しています。プログラムで検出される条件によっては、プログラム割り込みやプログラム例外を生じるものもあります。このトピックでは、SPIE または ESPIE マクロを使用したユーザー出口ルーチンの指定方法、およびユーザー出口ルーチンで実行される機能について示しています。

    © Copyright IBM Corp. 1988, 2000 1

  • リカバリーの準備 - プログラムがエラーを検出した際、リカバリーを準備していないと、プログラムは異常終了する場合があります。 エラーからリカバリーするためには、エラー発生時に制御が渡されるリカバリー・ルーチンを作成することができます。 このようなルーチンでは、エラーの訂正を試行し、プログラムが通常の処理を再開できるようにすることができます。このトピックでは、リカバリー処理の概念とリカバリー・ルーチンの作成方法について説明します。

    仮想記憶のダンプ (ABEND、SNAPX、および SNAP マクロ) - プログラムで重大なエラーが生じると、システムはそのプログラムを終了させます。ユーザーの要求があれば、システムは、その終了に伴ってダンプを生成します。このダンプは異常終了ダンプと呼ばれます。 また、スナップ・ダンプと呼ばれる別のタイプのダンプも要求することができます。 プログラムでは、スナップ・ダンプはいつでも要求できるうえ、ダンプに含める情報のソース、フォーマット、および宛先を指定することができます。

    症状レコードの報告 (SYMRBLD および SYMREC マクロ) - アプリケーションでは、それぞれのエラーごとに logrec データ・セットに症状レコードを書き込むことができます。logrec データ・セットは、MVS がエラー情報を収集するオンライン・リポジトリーです。 logrec データ・セットに保管された情報の単位のことを症状レコードと呼びます。症状レコードには、プログラミング障害の記述とともに、障害が生じた環境についての記述が含まれています。アプリケーションは、SYMRBLDまたは SYMREC マクロのいずれかを呼び出すことによって、症状レコードを作成し、logrec データ・セットに書き込むことができます。

    仮想記憶管理 - システムは、中央ストレージと補助ストレージを組み合わせて、アドレス可能なメモリーが実際に存在するのものより、見かけ上大きくなるようにします。 この見かけ上の大容量メモリーを仮想記憶域と呼びます。 システムがストレージをこのように管理することによって、プログラムとデータに課せられるサイズ制限が緩和されます。システムが個々の、お互いに関連したプログラムのグループに割り当てるストレージのことをアドレス・スペースと呼びます。プログラムが要求するストレージの量は、実行とともに変化する場合があります。 この章に述べる規約に従えば、プログラムはストレージの必要量が増えたときにそれを取得し、不要になったときには余分なストレージを戻すことができます。

    呼び出し可能セル・プール・サービス - 呼び出し可能セル・プール・サービスは、ユーザーが取得した仮想記憶域を効率よく管理し、ハイパフォーマンスのサービスを提供し、アドレス・スペースとデータ・スペースの両方のストレージを使用できるようにします。この章は、呼び出し可能セル・プール・サービスについて説明しており、CPOOL マクロを使用するか、あるいは呼び出し可能セル・プール・サービス使用するかの判断に役立ちます。

    仮想域内データ - 従来の GET および PUT マクロを使わずに、外部ストレージのデータを作成し、読み取り、更新するための、簡単な手法を使用して、このタイプの大量データを使用するプログラムを作成することができます。このようなデータは、個々のレコードには分割されずに、全体が一度に仮想記憶域に現れます。この手法は多くのアプリケーションで、従来のアクセス方式よりも優れたパフォーマンスをもたらします。

    アクセス・レジスターの使用 - データ・スペース内のデータにアクセスする必要がある場合には、「アクセス・レジスター」と呼ばれるレジスターのセットを使用

    2 OS/390 V2.10 MVS プログラミング : アセンブラー・サービス ガイド

  • し、「AR モード」と呼ばれるアドレス・スペース制御 (ASC) モードにする必要があります。この章は、AR モードにあるときに、データ・スペース内のデータにアクセスし、システム・サービスを使用する際に役立ちます。

    データ・スペースとハイパースペース - 1 個のアドレス・スペースから得られる以上の仮想記憶域が必要で、しかも他のユーザーにはそのストレージにアクセスさせたくない場合は、データ・スペースとハイパースペースを使用することができます。

    ウィンドウ・サービス - アセンブラー言語プログラムは、ウィンドウ・サービスのもとで永続的または一時的なデータ・オブジェクトの作成あるいはアクセスを行なうことができます。ウィンドウ・サービスから提供されるサービス・プログラムを呼び出すことにより、次のことが可能になります。v 既存の仮想域内データ・オブジェクトの読み取りまたは更新。v 新しい永続的な仮想域内データ・オブジェクトの作成と保管。v 一時的な仮想域内データ・オブジェクトの作成と使用。

    アプリケーション・データの共用 (名前 / トークン呼び出し可能サービス) - 名前 /トークン呼び出し可能サービスを使用すると、同じタスクのもとで実行する 2 つのプログラム間、あるいは 2 つ以上のタスクまたはアドレス・スペース間でデータを共用することができます。このトピックでは、名前 / トークンの対の説明、名前 /トークンの対のレベルについての説明、対の所有と削除、名前 / トークンの対を利用したチェックポイント再始動の使用、およびリンケージ援助ルーチンを使用して、再入可能プログラムをリンク・エディットする JCL の例が含まれています。

    主記憶域の管理 - システムは、主記憶域 (つまり、中央ストレージと拡張ストレージ) の使用状況を管理し、補助ストレージと中央ストレージ間の仮想ページの移動(ページ・サイズのブロック単位) を制御します。仮想記憶域の内容を解放し、仮想記憶域を中央ストレージにロードし、仮想記憶ページを読み取り専用または変更可能にし、さらに仮想記憶域を中央ストレージからページアウトすることができます。参照パターン・サービスによって、プログラムがこれから参照しようとしている、指定されたエリアの参照パターンを定義することができます。

    仮想記憶域でのデータ共用 (IARVSERV マクロ) - このトピックでは IARVSERVマクロについて説明します。このマクロは、アドレス・スペースまたはデータ・スペースでプログラムが仮想記憶域を共用できるようにするサービスを提供します。また、IARR2V マクロに関する説明も含まれています。このマクロは、中央ストレージのアドレスを仮想記憶域のアドレスに変換するものです。

    計時と通信 - システムは内部刻時機構を持っています。プログラムでこれを使用して日時を取得したり、インターバル・タイマーとして使用することもできます。プログラムでは、時間間隔を設定し、設定した時間間隔の残り時間を調べ、設定した時間間隔を取り消すことができます。 通信サービスを利用して、システム・オペレーター、TSO/E 端末、またはシステム・ログにメッセージを送ることができます。

    メッセージの翻訳 - MVS メッセージ・サービス (MMS) を使用すると、MVS または MVS ベースのアプリケーションのメッセージを米国英語から各国語に翻訳して表示することができます。 また、このサービスによって、アプリケーション・プログラムがメッセージを MMS 実行時メッセージ・ファイルに保管し、そこから取り出すことができます。

    第1章 はじめに 3

  • データ圧縮・拡張サービスの使用 - データ圧縮・拡張サービスを使用すると、データが使用されていない時には、データが占めるスペースを少なくするよう、特定のタイプのデータを圧縮することができます。圧縮されたデータは必要な時にもとの状態に復元することができます。

    装置制御ブロック (UCB) へのアクセス - 構成に含まれる各装置は、装置制御ブロック (UCB) によって示されます。この章では、UCB を走査し、入出力構成変更を検出する方法について説明します。

    内部読み取りプログラム - 内部読み取りプログラムは、カード読取装置、テープ装置、またはジョブを JES に実行要求できる TSO/E 端末に類似した論理装置です。この章では、内部読み取りプログラムのセットアップおよび使用の方法、内部読み取りデータ・セットの割り振り、内部読み取りデータ・セットのオープンとクローズ、およびジョブ出力の内部読み取りプログラムへの送出について説明します。

    シンボル置換サービスの使用 - このトピックでは、アプリケーション・プログラムおよびベンダー・プログラムで使用できるシンボルのタイプについて説明します。また、それらのシンボルにテキストを置き換える ASASYMBM サービスの呼び出し方法についても説明します。

    システム・ロガー・サービスの使用 - システム・ロガー・サービスを使用すると、アプリケーションがシスプレックス環境でログ・データを管理できるようになります。このトピックでは、システム・ロガー構成の計画、システム・ロガー・アプリケーションの計画とセットアップ、システム・ロガー・アプリケーションのリカバリー計画の方法について説明します。

    付録 - 本書には、以下それぞれのトピックに関する付録も付いています。

    v 装置検証サービスの使用v 仮想取り出しサービスの使用

    重要事項 -------- 以下をお読みください本書をお読みになる際には、以下の用語の使い方にご注意ください。

    v レジスターという用語は、汎用レジスターを意味します。 汎用レジスターが他のレジスター (たとえば、アクセス・レジスター) と混同する恐れのあるようなセクションでは、汎用レジスターという長い用語を使用します。

    v 特に断りのない限り、プログラムのアドレス・スペース制御 (ASC) モードが基本モードです。

    4 OS/390 V2.10 MVS プログラミング : アセンブラー・サービス ガイド

  • 第2章 リンケージ規約

    リンケージ規約とは、プログラムが他のプログラムから制御を受け取るとき、または他のプログラムを呼び出すときに従わなければならない、レジスターと保管域に関する規約のことです。プログラムが実行に必要なレジスター内容とパラメーター・データを保存しながら、相互間で支障なく制御の引き渡しを行うには、すべてのプログラムがここに述べるリンケージ規約に従うことが重要です。

    あるプログラムから別のプログラムを呼び出すには、次に示すいずれかのブランチ命令やマクロで使用することができます。v BALR、BASR、または BASSM 命令v LINK、LINKX、XCTL、XCTLX、および CALL マクロ

    ブランチ命令またはマクロを出すプログラムは呼び出しプログラムです。制御を受け取るプログラムはターゲット・プログラムです。プログラムは、以下の場合にこれらの規約に従わなければなりません。v 呼び出しプログラ