LLE
LLE(Load List Element)は、タスクがローディングしたロードモジュールを示すコントロール・ブロックです。タスクが最後にロードしたモジュールのLLEがTCBLLSフィールドからポイントされます。LLEには1つ前のLLEへのポインター、およびローディングしたモジュールを管理するCDEへのポインターがあり、LLEのチェインをたどることで、タスクがローディングしたモジュールとその順番がわかります。LLEはIHALLEマクロによってマッピングできます。
CDE
CDE(Contents Directory Entry)は、タスクで実行中のプログラム・モジュールおよびローディングされたロードモジュールを管理するコントロール・ブロックです。LLEはLOADマクロによってローディングされたモジュールに対して作成されますが、CDEはLOADマクロだけでなくLINKやXCTLあるいはATTACHマクロによってローディングされたモジュールに対しても作成されます。また、IDENTIFYマクロやリンケージエディターのALIASなどによる別名に対しても作成されます。
別名だけでモジュールがローディングされた場合は、別名だけでなく元の名前(本名あるいは主名)に対してのCDEも作成されます。別名に対応して作成されたCDEは副CDE(Minor CDE)、本名に対して作成されたCDEは主CDE(Major CDE)と呼ばれます。CDEにはモジュール名、入口点アドレス、モジュールの使用回数、属性情報(再入可能や再使用可能、アドレスモードや常駐モード、APFなどの属性)、ローディングされたサブプール番号、1つ前のCDEへのポインターなどが格納されています。
オフセット | フィールド名 | 意味、内容 |
---|---|---|
+x00 | CDCHAIN | JPQ内の次のCDEへのポインター(1つ前にローディングされたモジュールのCDE) |
+x08 | CDNAME | モジュール(プログラム)の名前 |
+x10 | CDENTPT | モジュール(プログラム)の入口点アドレス |
+x14 | CDXLMJP | XTLSTもしくは主CDEへのポインター |
+x18 | CDUSE | モジュールの使用回数 |
+x1C | CDATTR | モジュールの属性を示すフラグバイト |
LLEはタスク単位に管理されますが、CDEはジョブステップで共通して管理されます。アドレス空間内でタスクが最後に呼び出したあるいはロードしたモジュールのCDEは、ジョブステップ・タスクのTCBのTCBJPQフィールドからポイントされます。ジョブ・ステップ内のプログラムがローディングしたロードモジュールは、ジョブ・パック・エリア(JPA)と呼ばれるリージョン内のPVT域(サブプール251または252)に格納されます。JPA内のロードモジュールはCDEによって管理され、個々のCDEの次のCDEをポイントすることでJPQ(Job Pack Queue)と呼ばれる一連のCDEチェインを作ります。
なお、CDEはJPQだけでなく実行中プログラムを管理するRBやLLEからもポイントされています。ダンプ・リストにはタスク毎にCDEが編集されて表示されますが、これはJPQのCDEリストではなくRBやLLEからのチェインによってリスト・アップされたタスク内のプログラムによってローディングされたモジュールに関するCDEです。
XTLST
XTLST(Extent List)は、CDEが管理するロードモジュールの実体データを示すコントロール・ブロックです。つまり、ローディングされたロードモジュールのJPA内のアドレスと長さを示します。XTLSTはIHAXTLSTマクロによってマッピングできます。(※入口点アドレスはCDEだが、モジュールの先頭アドレスはXTLSTにある)
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 |
LLE 009CE800 CHN...... 009CEC38 CDPT..... 009CEC18 COUNT.... 0001 SYSCT.... 0001 : 009EC178 CHN...... 009EC1D8 CDPT..... 009EC198 COUNT.... 0001 SYSCT.... 0000 009EC1D8 CHN...... 009EC218 CDPT..... 009EC1F8 COUNT.... 0001 SYSCT.... 0000 009EC218 CHN...... 009FD168 CDPT..... 009EC228 COUNT.... 0001 SYSCT.... 0000 009FD168 CHN...... 00000000 CDPT..... 009EC9B8 COUNT.... 0001 SYSCT.... 0000 CDE 009FFAB8 NAME..... TEMPNAM0 ENTPT.... 80007D68 CHAIN.... 009EC158 RRBP..... 009CEC68 XLMJP.... 009EC600 USE...... 0002 SP....... FB USED. JOB PACK AREA. LOADING TASK NOT SECURE. CDE EXTENSION EXISTS. : : 009EC198 NAME..... MWTR ENTPT.... 0000FC38 CHAIN.... 009EC1F8 RRBP..... 00000000 XLMJP.... 009EC1B8 USE...... 0000 SP....... 00 REENTERABLE. REUSABLE. MINOR ENTRY POINT. EXTENTS NOT KNOWN. LOADING TASK NOT SECURE. CDE EXTENSION EXISTS. 009EC1B8 NAME..... GCP ENTPT.... 0000BFE8 CHAIN.... 009EC198 RRBP..... 00000000 XLMJP.... 009EC188 USE...... 0001 SP....... FB REENTERABLE. REUSABLE. JOB PACK AREA. LOADING TASK NOT SECURE. CDE EXTENSION EXISTS. 009EC1F8 NAME..... SCR15000 ENTPT.... 000088B8 CHAIN.... 009EC228 RRBP..... 00000000 XLMJP.... 009EC1E8 USE...... 0001 SP....... FB JOB PACK AREA. LOADING TASK NOT SECURE. CDE EXTENSION EXISTS. 009EC228 NAME..... DOLSPACE ENTPT.... 00007540 CHAIN.... 009EC9B8 RRBP..... 00000000 XLMJP.... 009EC9A8 USE...... 0001 SP....... FB JOB PACK AREA. LOADING TASK NOT SECURE. CDE EXTENSION EXISTS. : XTLST 009EC600 LNTH..... 00000010 NRFAC.... 00000001 SEGLN.... 80000298 SEGAD.... 00007D68 009CEC08 LNTH..... 00000010 NRFAC.... 00000001 SEGLN.... 80000088 SEGAD.... 07500F78 : 009EC9A8 LNTH..... 00000010 NRFAC.... 00000001 SEGLN.... 800003F8 SEGAD.... 00007540 009ECE80 LNTH..... 00000010 NRFAC.... 00000001 SEGLN.... 80000430 SEGAD.... 00007938 |