划分任务优先级
优先级划分是为特定任务提供优先分派的方法。 优先级在 TERMINAL 定义 (TERMPRIORITY) , TRANSACTION 定义 (PRIORITY) 中的事务以及外部安全管理器 (ESM) (OPPRTY) 的用户段的优先级字段中指定。
TERMPRIORITY+PRIORITY+OPPRTY <= 255PRTYAGE 系统初始化参数的值也会影响分派顺序; 例如,缺省值 PRTYAGE= 1000 会导致任务的优先级增加 1 每 1000ms 它在就绪队列上花费的时间。 根据时钟时间以及定义的优先级,每次任务准备好进行分派时,都会重新评估该任务的分派优先级。 刚准备好进行分派的优先级为 n+1 的任务通常会先于优先级为 n 的任务进行分派,但仅当 PRTYAGE 毫秒自上次准备分派以来未经过时才会进行分派。 因此,低优先级任务可能被繁忙系统中的许多较高优先级任务取代,但最终到达单个分派的就绪队列的顶部。 PRTYAGE 的值越低,分派任务的时间越早。 PRTYAGE 通常应保持其缺省值,除非某些事务在非常繁忙的时间段内停留在优先级较高的事务后面。
优先级划分对于浏览任务和使用大量处理器时间的任务很有用。 输入/输出绑定的任务可以占用所需的 CPU 量,然后进入下一个读/写等待。 CPU 密集型任务比不太密集的任务具有更高的优先级。 可以在所有 CICS® 系统中实现优先级划分。 它在高活动系统中比在低活动系统中更重要。 通过谨慎的优先级选择,您可以提高总体吞吐量和响应时间。 优先级划分可以最大限度减少某些资源绑定事务的资源使用情况。 优先级划分会增加低优先级任务的响应时间,并且会扭曲事务类定义的 MXT 和 MAXACTIVE 属性的调节效果。
优先级不会影响服务终端输入消息的顺序,因此不会影响它们等待连接到事务管理器的时间。 由于优先级划分是在三组定义 (终端,事务和操作员) 中确定的,因此对于您来说,跟踪系统中的许多事务可能是一个耗时的过程。 CICS 优先级划分并非像操作系统优先级划分那样中断驱动,而是确定就绪队列上的位置。 这意味着在授予任务对处理器的控制权之后,该任务在发出调用 CICS 分派器的 CICS 命令之前不会放弃该控制权。 在分派处理器绑定的任务之后,如果 CICS 请求不频繁,那么可以长时间绑定 CICS 。 因此,仅当证明 MXT 和事务类定义调整的 MAXACTIVE 属性不足时,才应实现优先级划分。
仅当您已经使用 MXT 和事务类定义的 MAXACTIVE 属性调整了任务级别之后,才应谨慎地使用优先级划分 (如果有的话)。 最好将所有任务设置为相同的优先级,然后根据系统中的特定约束,根据例外情况对某些事务进行更高或更低的优先级划分。 除非您可以接受更长的任务寿命和更大的分派开销,否则不要对慢任务进行优先级划分; 在任何情况下,这些任务都很慢,每次都必须等待 I/O 时放弃控制。 使用较小的优先级值和差异,集中精力处理事务优先级。 优先考虑控制操作员任务而不是人员,或者至少优先考虑控制操作员的登录标识而不是特定物理终端 (控制操作员可以四处移动)。
- 将分区内瞬时数据与逻辑恢复配合使用
- 更新常用记录
- 自动记录日志
- 需要快速应用程序响应时间 (例如,数据输入) 的任务。
- 具有长时间浏览活动
- 是进程密集型的, I/O 活动最少
- 不需要终端交互,例如:
- 自动启动任务 (使用定义了终端目标且触发器级别大于零的瞬时数据分区内队列除外)。
- 批处理更新控制任务。
- 任务优先级
- 观察到的事务响应
- 总体处理器,存储器和数据集 I/O 使用情况。