ASCB
ASCB(Address Space Control Block)は、アドレス空間を管理するコントロール・ブロックです。RBや後述のTCBなど空間内のローカル・リソースを管理するコントロール・ブロックと違ってシステムの共通域(SQA)に存在します。バッチジョブの場合、ASCBはイニシエーター空間を管理します。ABENDダンプではリストの冒頭にフォーマットされて出力されますが、たいていのプログラムではデバッグのためにASCBを見るようなことはほとんどありません。
オフセット | フィールド名 | 意味、内容 |
---|---|---|
+x04 +x08 |
ASCBFWDP ASCBBWDP |
ASCBキューの次あるいは1つ前のASCBへのポインター |
+x24 | ASCBASID | アドレス空間の識別番号(ASID) |
+x2B | ASCBDP | 空間のディスパッチング・プライオリティー |
+x30 | ASCBLDA | LDA(空間内の仮想記憶を管理するコントロール・ブロック)領域へのポインター |
+x40 | ASCBEJST | アドレス空間の累積CPU時間 |
+x6C | ASCBASXB | ASCB拡張部へのポインター |
+xAC | ASCBJBNI | バッチジョブのジョブ名フィールドへのポインター |
+xB0 | ASCBJBNS | STCタスクやTSOユーザー空間のジョブ名フィールドへのポインター (バッチジョブの場合はイニシエーターの名前「INIT」が入る) |
+xD8 | ASCBTCBS | 空間内の実行可能TCBの数 |
+x11C | ASCBXTCB | ジョブステップタスクのTCBアドレス |
+x150 | ASCBASSB | ASSB(2次ASCB)へのポインター |
アドレス空間の管理と制御に関する情報は、ASCBの他、ASCBからポイントされるASSB(Address Space Secondary Block)およびASXB(Address Space Extension Block)にも格納されています。ASSBは拡張SQAに存在していて、ジョブ・スケジューラーのアドレス空間管理用コントロール・ブロックであるJSABへのポインターなど追加の管理、制御用情報が格納されます。JSABを参照すればジョブのジョブ番号を求めることもできます。ASXBは共通域ではなくPVT内に存在し、空間内のタスク数、TCBキューへのポインター、割込みキュー・エレメントやACEE(RACFなどがセキュリティー制御のために使用するコントロール・ブロック)コントロール・ブロックへのポインターなどの追加の管理、制御用情報が格納されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
ASCB: 00F48380 +0000 ASCB..... ASCB FWDP..... 00F48200 BWDP..... 00F48500 LTCS..... 00000000 SVRB..... 009FD788 +0014 SYNC..... 000007D3 IOSP..... 00000000 R01C..... 0000 WQID..... 0000 SAWQ..... 00000000 +0024 ASID..... 0021 R026..... 0000 LL5...... 00 HLHI..... 01 DPH...... 00F7 +002C TCBE..... 00000000 LDA...... 7FF18EA0 RSMF..... 00 FLG3..... 00 R036..... 0000 +0038 CSCB..... 07485700 TSB...... 00000000 EJST..... 00000004 B3DFF62F +0048 EWST..... CA77B1F0 D0618000 JSTL..... 000141DE ECB...... 809FDC80 UBET..... 00000000 +005C TLCH..... 00000000 DUMP..... 009FFE88 AFFN..... FFFF RCTF..... 01 FLG1..... 00 : : +00E7 IODP..... FA LOCI..... 00000000 CMLW..... 00000000 CMLC..... 00000000 SSO1..... 000000 +00F7 SSO4..... 00 ASTE..... 020DA840 LTOV..... 7FFC7000 ATOV..... 7FFF0128 ETC...... 0000 +0106 ETCN..... 0000 LXR...... 0000 AXR...... 0000 STKH..... 009FE960 GQEL..... 00000000 +0114 LQEL..... 07568E78 GSYN..... 00000000 XTCB..... 009EC0A0 CS1...... 00 CS2...... 00 +0122 R122..... 0000 GXL...... 020FDA88 EATT..... 00000001 65648FFD +0130 INTS..... CA77B1E9 E990D000 LL1...... 00 LL2...... 00 LL3...... 00 +013B LL4...... 00 RCMS..... 00000000 IOSC..... 000001BE PKML..... 0000 XCNT..... 01F4 +0148 NSQA..... 00000000 ASM...... 01DFEA58 ASSB..... 01DFE880 TCME..... 00000000 GQIR..... 00000000 +015C R15C..... 00000000 00000000 00000000 CREQ..... 00000000 RSME..... 01DFE238 AVM1..... 00 +0171 AVM2..... 00 AGEN..... 0000 ARC...... 00000000 RSMA..... 01DFE0D0 DCTI..... 00000000 ASSB: 01DFE880 +0000 ASSB..... ASSB VAFN..... 00000000 EVST..... 00000000 00000000 +0010 VFAT..... 00000000 00000000 XMF1..... 00 XMF2..... 00 XMCC..... 0000 +001C CBTP..... 00000000 VSC...... 00000000 NVSC..... 00000000 ASRR..... 00000000 DEXP..... 00000000 +0030 STKN..... 00000084 00000001 BPSA..... 00000000 CSCT..... 00000000 BALV..... 7FFFBF00 +0044 BALD..... 1492BF00 XMSE..... 00000000 TSQN..... 00000008 VCNT..... 00000000 PALV..... 02104000 +0058 ASEI..... 00000000 RMA...... 07364D80 HST...... 00000000 00000000 IIPT..... 00000000 +006C 080D3000 ANEC..... 00000000 SDOV..... 7FFFB3C8 MCSO..... 00000000 DFAS..... 01F50F40 +0080 FLG0..... 00 FLG1..... 10 FLG2..... 00 FLG3..... 00 ASCB..... 00F48380 : : +0149 WMF1..... 00 PSWC..... 0000 IXGA..... 00000000 JNBI..... TESTJOB1 JBNS..... INIT +0160 ASST..... 00000000 00000000 PHTM..... 00000000 00000000 CRWQ..... 00000000 +0174 SCWQ..... 00000000 LCNT..... 00000000 ACNT..... 00000000 LCPD..... 00000000 PQEL..... 00000000 +0188 PVTC..... 00000000 CTXF..... 00 CTX2..... 000000 HALE..... 0000FFFF 00000000 1FD22840 +019C 00000001 RTLS..... 00000000 SRSN..... 000000DE WLMS..... 00000000 BCBA..... 00000000 +01B0 CSM...... 00000000 PECT..... 00000000 RRSA..... 00000000 OFLG..... 0000 SCAF..... 0000 +01C0 CTXC..... 00000000 RMCT..... 00000000 LRBA..... 00000000 R1CC..... 00000000 00000000 000000 +01D7 CSDP..... 00 |
TCB
TCB(Task Control Block)は、アドレス空間内の個々のタスクを管理するコントロール・ブロックです。MVSでは、1つのアドレス空間には必ず複数のタスクが存在します。例え、アプリケーション・プログラムが1つのタスクで実行されるシングルタスクのプログラムであっても、空間が生成される時に制御用のタスクが複数個作られます。TCBは空間固有域のLSQAに作成されています。たいていの場合、TCBを参照しなくてもデバッグは可能ですが、RBと併せて参照することでより詳細な情報を得ることができます。
オフセット | フィールド名 | 意味、内容 |
---|---|---|
+x00 | TCBRBP | 現在タスクで実行されているプログラムのRBアドレス |
+x08 | TCBDEB | タスクで使用中(OPEN済み)のデータセットのDEBキューへのポインター |
+x0C | TCBTIO | TIOT(DDステートメント定義テーブル)のアドレス |
+x11 | TCBCMPC | タスクの完了コード |
+x1C | TCBPKF | タスクに割り当てられた記憶保護キー |
+x1D | TCBFLGS | タスク制御のための各種のフラグ領域 |
+x23 | TCBDSP | タスクのディスパッチング・プライオリティー |
+x28 | TCBJLB | JOBLIBのDCBアドレス |
+x2D | TCBJPQB | ジョブパックエリア・キューへのポインター (タスクでローディングされたロードモジュールが管理される) |
+x30 | TCBGRS | 割込み発生時にタスクで実行中のプログラムの汎用レジスター内容を退避するフィールド (浮動小数点レジスターはTCBプレフィックス部、アクセスレジスターと64ビット汎用レジスターの上位32ビットはSTCB:セカンダリーTCBに保管される) |
+x71 | TCBFSAB | タスクで最初に実行されるプログラムが使用するレジスター退避領域のアドレス (EXECステートメントのPGMパラメーターで指定されるなど、最初に実行されるプログラムが制御を受け取った際にGR13がポイントしている領域) |
+x74 | TCBTCB | 空間内の次のタスクのTCBアドレス |
+x78 | TCBTME | アクティブなTQE(タイマーキューエレメント:STIMERマクロなどで設定したタイマー管理のコントロール・ブロック)キューへのポインター |
+x7C | TCBJSTCB | ジョブステップ・タスクのTCBアドレス |
+x80 | TCBNTC | 兄弟タスクのTCBアドレス |
+x84 | TCBOTC | 親タスクのTCBアドレス |
+x88 | TCBLTC | 最後に生成した子タスクのTCBアドレス |
+x8C | TCBIQE | タスク終了時に実行されるATTACH終了出口ルーチンを実行するためのIQEのアドレス |
+x90 | TCBECB | タスク終了時にPOSTされるECBのアドレス |
+xA8 | TCBUSER | ユーザーが自由に使用できる1ワード・フィールド |
+xB5 | TCBJSCBB | ジョブステップ・コントロール・ブロックへのポインター |
+xD0 | TCBEXT2 | TCB拡張部へのポインター |
+x138 | TCBSTCB | セカンダリーTCBへのポインター |
+x13C | TCBTTIME | タスクで使用した累積CPU時間 |
+x154 | TCBSENV | タスクのACEE(RACFなどがセキュリティー制御のために使用するコントロール・ブロック)へのポインター |
タスクの管理と制御に関する情報はTCBの他に、TCBの直前に位置するTCBプレフィックス部(浮動小数点レジスターが退避される)、TCBからポイントされるTCBXTNT2(TCB拡張部)およびSTCB(Secondary Task Control Block)にも格納されています。STCBには、アクセス・レジスターや64ビット汎用レジスターの上位32ビット(High Halves)、RACF用データ領域、VTAMやDB2用のフィールド、その他の追加の管理、制御用情報が格納されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
TCB: 009EC0A0 +0000 RBP...... 009FD6B8 PIE...... 00000000 DEB...... 009CA298 TIO...... 009C1FE8 CMP...... 940C6000 +0014 TRN...... 00000000 MSS...... 7F5F2FB8 PKF...... 80 FLGS..... 01000000 00 +0022 LMP...... FF DSP...... FF LLS...... 009FF018 JLB...... 009EC310 JPQ...... 009FFAB8 REGISTER VALUES 0-3 00001000 009CB000 009CE5D8 000000F4 4-7 00000458 80D6F000 00000330 009CEB80 8-11 00000058 009BE69A 009BE6FA 00000000 12-15 83995000 009CE6EC 83995036 00000000 : : +0070 FSA...... 00006F60 TCB...... 00000000 TME...... 00000000 JSTCB.... 009EC0A0 NTC...... 00000000 +0084 OTC...... 009EC828 LTC...... 00000000 IQE...... 00000000 ECB...... 009EC72C TSFLG.... 20 +0095 STPCT.... 00 TSLP..... 00 TSDP..... 00 RD....... 7FF18ED4 AE....... 7F5203E8 +00A0 STAB..... 009FD418 TCT...... 809ECAE8 USER..... 00000000 NDSP..... 00000000 MDIDS.... 00000000 +00B4 JSCB..... 009EC57C SSAT..... 00FC6338 IOBRC.... 00000000 EXCPD.... 00000000 EXT1..... 00000000 +00C8 BITS..... 00000000 DAR...... 00 RSV37.... 00 SYSCT.... 00 STMCT.... 00 +00D0 EXT2..... 009EC1F8 AECB..... 00000000 XSB...... 7FFFC160 BACK..... 009EC828 RTWA..... 7F522DF0 : : +012C EAE...... 7F520250 ARC...... 00000006 GRES..... 00000000 STCB..... 7F52F020 +013C TTIME.... 00000004 74799263 CELAP.... 00006FF0 R148..... 0000 RBYT1.... 00 +014B LEVEL.... 03 BDT...... 00000000 NDAXP.... 00000000 SENV..... 00000000 EXT2: 009EC1F8 +0000 GTF...... 00000000 RSV...... 00 RCMP..... 000000 EVENT.... 00000000 RTMCT.... 00000009 +0010 TQE...... 00000000 CAUF..... 00000000 PERCP.... 80000000 PERCT.... 00000000 STCB: 7F52F020 +0000 STCB..... STCB RACP..... 7F532000 DIVF..... 7F52F028 DIVL..... 7F52F028 AFNS..... 0000 +0012 CTSC..... 0000 VSSA..... 00000000 VAFN..... 00 FLG1..... 00 R01A..... 0000 +001C VFRB..... 00000000 ALOV..... 7FFFBF00 ALD...... 1492BF00 DUCV..... 7FFFB380 DUCR..... 1492B380 +0030 AR0...... 80D0CE58 AR1...... 00000000 AR2...... 00000000 AR3...... 00000000 AR4...... 00000000 : : +0100 PQUE..... 00000000 STSB..... 00000000 EUTK..... 00000000 00000000 ENCR..... 00000000 +0118 ENCC..... 00000000 DB2...... 00000000 R120..... 00000000 PMOM..... 00000000 OFLG..... 00000000 +012C BCBA..... 00000000 FLCS..... 00000000 VREQ..... 00000000 : : |