CICS - 内核



前面描述的五个 CICS 系统组件是 CICS 系统程序的一个方便的分组,每个组件都执行其自身的专门功能。CICS 的核心称为 CICS 内核,它由 IBM 提供的 CICS 控制程序和控制表组成。

控制程序

CICS 内核由控制程序和相应的控制表构成。它提供了独特的优势,使 CICS 系统高度灵活,易于维护。以下是 CICS 的重要控制程序:

TCP

TCP 即终端控制程序。

  • TCP 用于接收来自终端的消息。

  • 它维护硬件通信需求。

  • 它请求 CICS 启动任务。

KCP

KCP 即任务控制程序。

  • KCP 用于同时控制任务的执行及其相关属性。

  • 它处理所有与多任务相关的难题。

PCP

PCP 即程序控制程序。

  • PCP 用于定位和加载程序以执行。

  • 它在程序之间传递控制,最终将控制返回给 CICS。

FCP

FCP 即文件控制程序。

  • FCP 用于为应用程序提供服务,例如在文件中读取、插入、更新或删除记录。

  • 它对记录保持独占控制,以便在记录更新期间维护数据完整性。

SCP

SCP 即存储控制程序。它用于控制 CICS 区域内存储的分配和释放。

控制表

CICS 由 IBM 提供的 CICS 控制程序和表组成。这些表需要根据应用程序信息进行相应更新,才能成功执行 CICS 应用程序程序。以下是重要的控制表:

TCT

TCT 即终端控制表。

  • 当我们登录到 CICS 终端时,会在 TCT 表中创建一个条目。

  • TCT 包含连接到当前 CICS 区域的终端 ID。

  • 终端控制程序以及终端控制表识别来自终端的传入数据。

PCT

PCT 即程序控制表。

  • 它包含事务 ID (TRANSID) 和相应的程序名称或程序 ID。

  • TRANSID 在 PCT 表中是唯一的。

PPT

PPT 即处理程序表。PPT 包含程序名称或映射集名称、任务使用计数器、语言、大小、主存储地址、加载库地址等。

  • 程序或映射集名称在 PPT 表中是唯一的。

  • CICS 接收事务,并从 PCT 为事务分配相应的程序名称。它检查程序是否已加载。如果已加载,则任务使用计数器加 1。如果程序未加载,则首先加载程序并将任务使用计数器设置为 1。它从 PPT 表获取加载库地址。

FCT

FCT 即文件控制表。

  • 它包含文件名、文件类型、记录长度等。

  • CICS 程序中使用的所有文件都必须在 FCT 中声明,并且由 CICS 本身打开和关闭。

事务

当在 CICS 终端上输入事务标识符 TP02 时,首先它会检查 PCT 表中是否存在与此事务标识符关联的程序。如果找到一个,则它会在 PPT 表中检查以查找要执行的程序的位置。

如果程序已存在于内存中,则它开始执行该程序;否则,它将程序从辅助存储加载到内存,然后开始执行。

CICS Transaction

事务生命周期

事务生命周期包含以下步骤:

CICS Transaction Life Cycle

步骤 1

终端操作员通过键入 1 到 4 个字符的事务 ID 并按 ENTER 键来启动事务。

步骤 2

TCP 定期检查所有终端的输入。收到消息后,它执行以下操作:

  • 指示 SCP 创建 TIOA。

  • 将消息放入 TIOA。

  • 将控制权传递给 KCP。

步骤 3

KCP 从 TCP 获取控制权并执行以下操作:

  • 验证事务 ID 和安全性。

  • 指示 SCP 创建任务控制区域。

  • 根据终端优先级(在 TCT 中设置)、操作员优先级(在 SNT 中设置)和事务优先级(在 PCT 中设置)为任务分配优先级。

  • 将任务添加到等待程序队列。

  • 按优先级顺序调度等待程序。

  • 将控制权传递给 PCP。

步骤 4

PCP 从 KCP 获取控制权并执行以下操作:

  • 找到程序并加载它(如有必要)。

  • 将控制权转移到应用程序程序。

步骤 5

应用程序程序从 PCP 获取控制权并执行以下操作:

  • 请求 TCP 将消息放入程序的工作存储区。

  • 请求 FCP 从文件中检索记录。

步骤 6

FCP 从应用程序程序获取控制权并执行以下操作:

  • 从 SCP 请求文件工作区。

  • 通知 KCP 此任务可以等到 I/O 完成。

步骤 7

KCP 执行以下操作:

  • 调度队列中的下一个任务。

  • I/O 完成后重新调度旧任务。

  • 将控制权转移到 FCP。

步骤 8

FCP 将控制权返回给应用程序程序。

步骤 9

应用程序程序执行以下操作:

  • 处理文件数据。

  • 请求 TCP 发送 I/O 消息。

  • 将控制权返回给 PCP。

步骤 10

PCP 将控制权返回给 KCP,请求其结束任务。

步骤 11

KCP 指示 SCP 释放分配给任务的所有存储(TIOA 除外)。

步骤 12

TCP 执行以下操作:

  • 将输出发送到终端。

  • 请求 SCP 释放 TIOA。

广告