데이터 제어 블록

Data Control Block

OS/360, MVS, z/OS같은 IBM 메인프레임 운영 체제에서 DCB(데이터 제어 블록)는 프로그램의 데이터 집합을 설명하는 것입니다.DCB는 DCB 매크로 명령(많은 수의 "정의 상수" 명령으로 확장됨)을 사용하여 어셈블러 프로그램에서 코드화됩니다.고급 언어 프로그래머는 DCB를 포함하는 라이브러리 루틴을 사용합니다.

DCB는 이러한 운영 체제에서 사용되는 많은 제어 블록 중 하나입니다.컨트롤 블록은 C와 매우 유사한 사전 정의된 구조를 가진 데이터 영역입니다.struct단, 일반적으로는 시스템 기능에만 관련되어 있습니다.DCB는 C의 FILE 구조와 비교될 수 있지만, 훨씬 복잡하기 때문에 다양한 접근 방식에 대해 더 많은 옵션을 제공합니다.

제어 블록은 논리 IOCS애플리케이션 프로그램 간의 애플리케이션 프로그래밍 인터페이스로 작동하며 일반적으로 애플리케이션 프로그램 자체 내에서 정의(및 그 안에 상주)되었습니다.I/O 서브루틴의 주소는 컴파일 후 Linkedit 단계에서 해결되거나 OPEN 시 동적으로 삽입됩니다.

IBM DOS/360, DOS/VSE 및 z/VSE 운영 체제에 해당하는 제어 블록은 "DTF"(파일 정의)[1]

DCB의 일반적인 내용

  • 심볼 파일 이름(파일을 열기 위한 JCL 문과 일치)
  • 액세스 유형(예: 랜덤, 순차, 색인화)
  • 물리적 특성(블록 크기, 논리 레코드 길이)
  • I/O 중복을 허용하기 위해 처리에 할당할 I/O 버퍼
  • I/O 운영 체제 라이브러리 서브루틴 주소(예: 읽기/쓰기)
  • 서브루틴에 필요한 다른 변수(유형별)

DCB 시제품

DCB에 포함되는 상수와 변수의 대부분은 공백인 채로 둘 수 있습니다(디폴트는 0).

OPEN 프로세스는 DD JCL 문에 지정된 상수 및 변수와 기존 자기 테이프 및 직접 액세스 데이터 세트의 데이터 세트 레이블을 DCB로 병합하여 0 값을 0이 아닌 실제 값으로 대체합니다.

JFCB(Job File Control Block)라는 제어 블록은 처음에 데이터 세트에 대한 DD 문에서 추출된 정보를 보관합니다.병합 결과는 JFCB에 저장되며, JFCB는 CLOSE 프로세스 중에 DSCB에 기록될 수 있으므로 데이터 집합 정의가 영구적입니다.

예를 들어, DCB에서 0으로 지정될 수 있는 BLKSIZE= 변수가 있습니다.DD 문에서는 BLKSIZE가 0이 아닌 값으로 지정되고, 그 결과 프로그램에서 지정한 LRECL(논리 레코드 길이)과 JCL에서 지정한 BLKSIZE(물리 블록 크기)가 생성되며, 두 개의 병합이 데이터 세트의 영구 정의가 됩니다.

「 」를 참조해 주세요.