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 包含程序名称或 Mapset 名称、任务使用计数器、语言、大小、主存储地址、加载库地址等。

  • 程序或 Mapset 名称在 PPT 表中是唯一的。

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

FCT

FCT 称为文件控制表。

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

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

事务

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

如果程序已经在内存中,它会开始执行该特定程序;如果没有,它会将程序从辅助存储加载到内存,然后开始执行。

CICS Transaction

事务生命周期

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

CICS 事务生命周期

步骤 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。