CICS Nucleus

1 개요[ | ]

CICS Nucleus = CICS 의 코어.
CICS 핵
  • IBM이 제공하는 CICS Control Programs와 Control Tables로 이루어진다.

2 Control Programs[ | ]

CICS nucleus는 Control Programs와 일치하는 컨트롤 테이블에 의해 구성된다. 이로써 CICS 시스템을 더 유연하게 만들어주므로 유지보수가 용이해진다. CICS의 중요 control program은 다음과 같다:

약어 영어명 설명
TCP Terminal Control Program
  • 터미널로부터 메시지를 받을 때 사용.
  • 하드웨어 통신 요구사항을 관리.
  • CICS가 task를 시작하는 것을 요청.
KCP Task Control Program
  • task 및 관련 프로퍼티의 실행을 동시에 제어하기 위해 사용.
  • 멀티태스킹과 관련한 모든 문제를 관리.
PCP Program Control Program
  • 실행을 위해 프로그램을 위치시키고 로드하는데 사용.
  • 프로그램들 간에 컨트롤을 전송하며, 최종적으로 CICS로 컨트롤을 재반환.
FCP File Control Program
  • 파일 내 레코드의 read, insert, update, delete와 같은 서비스들이 있는 애플리케이션을 제공하기 위해 사용.
  • 레코드 업데이트 중에 데이터 무결성을 유지시키기 위해 레코드의 배타 제어를 유지.
SCP Storage Control Program
  • CICS 리전 내의 스토리지의 할당/할당 해제를 제어하는데 사용.

3 Control Tables[ | ]

CICS는 IBM이 제공하는 CICS control programs과 테이블로 이루어진다. 이 테이블들은 CICS 애플리케이션의 성공적인 실행을 위해 애플리케이션 정보에 맞추어 업데이트할 필요가 있다. 다음은 중요 Control Tables이다.

약어 영어명 설명
TCT Terminal Control Table
  • CICS 터미널에 로그인할 때 TCT 테이블에 엔트리가 만들어진다.
  • TCT에는 현재의 CICS 리전에 연결되어 있는 터미널 ID를 담고 있다.
  • 터미널 컨트롤 테이블과 나란히 TCT는 터미널로부터 들어오는 데이터를 인식한다.
PCT Program Control Table
  • 트랜잭션 ID (TRANSID)와 일치하는 프로그램 이름/ID를 포함한다.
  • TRANSID는 PCT 테이블에서 고유하다.
PPT Processing Program Table
  • 프로그램 이름 또는 mapset 이름[1], Task Use Counter, Language, Size, 메인 스토리지 주소, 로드 라이브러리 주소 등을 포함한다.
  • CICS는 트랜잭션을 수신하고 일치하는 프로그램 이름은 PCT로부터 오는 트랜잭션에 할당된다.
  • 프로그램의 로드 여부를 확인한다. 로드된 경우 task use counter는 1씩 증가한다.
  • 프로그램이 로드되지 않은 경우, 프로그램을 먼저 로드한 다음 task use counter를 1로 설정한다. PPT 테이블로부터 로드 라이브러리 주소를 가져온다.
FCT File Control Table
  • 파일 이름, 파일 유형, 레코드 길이 등을 포함한다.
  • CICS 프로그램에 쓰이는 모든 파일들은 FCT에 선언해야 하며 CICS가 직접 이 파일들을 열고 닫는다.

4 Transaction[ | ]

  • 트랜잭션 식별자 TP02가 CICS 터미널에 입력될 때 PCT 테이블에 이 트랜잭션 식별자와 관련된 프로그램이 있는지 먼저 확인한다. 발견 시 PPT 테이블을 둘러보며 프로그램의 위치를 찾는다.
  • 프로그램이 이미 메모리에서 사용이 가능한 경우, 해당 특정 프로그램의 실행을 시작한다. 사용이 가능하지 않은 경우, 2차 스토리지로부터 프로그램을 메모리에 로드한 다음 프로그램을 실행한다.

 

5 Transaction Life Cycle[ | ]

 

1단계 터미널 조작자가 1~4의 문자 문자 transaction-id를 입력하고 ENTER 키를 누름으로써 트랜잭션을 시작한다.
2단계 TCP가 주기적으로 입력을 위해 모든 터미널을 확인한다. 메시지를 받으면 다음의 일을 한다.
  • SCP에게 TIOA를 만들도록 지시.
  • 메시지를 TIOA에 위치시킴. 컨트롤을 KCP로 넘김.
3단계 KCP가 TCP로부터 컨트롤을 받아온 다음 다음의 일을 한다.
  • transaction-id와 security를 확인.
  • SCP에게 task control area를 만들라고 지시.
  • 터미널 우선 순위(TCT에 설정됨), 조작자 우선순위(SNT에 설정됨), 트랜잭션 우선순위(PCT에 설정됨)에 기반하여 task에 우선순위를 할당한다.
  • 대기 중인 프로그램 대기열에 task를 추가한다.
  • 우선순위의 순서에 따라 대기 중인 프로그램을 dispatch한다.
  • PCP에 통제권을 넘긴다.
4단계 PCP가 KCP로부터 컨트롤을 받아온 다음 다음의 일을 수행한다.
  • 프로그램을 위치시키고 필요 시 로드한다.
  • 컨트롤을 애플리케이션에 넘긴다.
5단계 애플리케이션이 PCP로부터 컨트롤을 받아온 다음에 다음의 일을 수행한다.
  • TCP에게 메시지를 프로그램의 WORKING STORAGE area로 위치시킬 것을 요청.
  • FCP에게 파일로부터 레코드를 받아올 것을 요청.
6단계 FCP가 애플리케이션으로부터 컨트롤을 받아온 다음에 다음의 일을 수행한다.
  • SCP로부터 File work area를 요청한다.
  • KCP에게 I/O가 완료될 때까지 이 task가 대기할 것임을 알려준다.
7단계 KCP가 다음의 일을 수행한다.
  • 대기열에서 다음 task를 dispatch한다.
  • I/O가 완료될 때 오래된 task를 다시 dispatch한다.
  • 컨트롤을 FCP로 넘긴다.
8단계 FCP가 컨트롤을 애플리케이션에 반환한다.
9단계 애플리케이션이 다음을 수행한다.
  • 파일 데이터 처리
  • TCP에게 I/O 메시지 송신 요청.
  • 컨트롤을 PCP로 반환.
10단계 PCP가 task 종료를 요청한 KCP에게 컨트롤을 도로 반환한다.
11단계 KCP가 SCP에게 task에 할당된 모든 스토리지를 free 처리할 것을 지시한다. (TIOA 제외)
12단계 TCP는 출력을 터미널로 내보내고, SCP가 TIOA를 release할 것을 요청한다.
  1. PPT 테이블에서 고유함
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}