맨위로가기

IBM 메인프레임 유틸리티 프로그램

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

IBM 메인프레임 유틸리티 프로그램은 IBM 메인프레임 시스템에서 사용되는 다양한 유틸리티 프로그램들을 포괄하며, 데이터셋 관리, 시스템 유지보수, 스케줄링 등 다양한 기능을 수행한다. 이러한 유틸리티들은 IBM 사용자 그룹인 SHARE에서 개발되거나 IBM에 의해 수정되었으며, 작업 제어 언어(JCL)를 통해 호출된다. 주요 유틸리티로는 데이터셋 유틸리티(IDCAMS, IEBCOPY 등), 스케줄러 유틸리티(IEFBR14), 시스템 유틸리티(ICKDSF, IEHPROGM 등), 서비스 지원 프로그램, 그리고 SORT와 같은 지원 프로그램 등이 있다. 이러한 유틸리티들은 시스템 프로그래머나 데이터 관리자, 또는 특정 작업을 수행하는 프로그래머들이 사용하며, 메인프레임 시스템의 효율적인 운영과 관리에 필수적인 역할을 한다.

더 읽어볼만한 페이지

  • 유틸리티 소프트웨어 - ApowerMirror
    ApowerMirror는 PC, 스마트 TV 등 다양한 장치로 스마트폰 화면을 미러링하고 PC에서 스마트폰을 제어하며 화면 녹화 및 캡처 기능 등을 제공하는 소프트웨어로, 모바일 게임을 큰 화면에서 즐기거나 프레젠테이션, 콘텐츠 제작 및 공유를 지원한다.
  • 유틸리티 소프트웨어 - LetsView
    LetsView는 iOS, 안드로이드 기기, 컴퓨터, TV 간의 화면 및 음성 미러링을 지원하는 소프트웨어이며, 화면 녹화, 스크린샷 촬영 등의 부가 기능을 제공하고, QR 코드 스캔 또는 미러링 코드를 통해 무선 연결을 지원한다.
  • IBM 메인프레임 운영 체제 - OS/390
    OS/390은 1995년에 출시된 IBM의 운영 체제 패키지로, MVS 운영 체제 핵심 요소를 통합하여 신뢰성, 가용성, 서비스 가능성을 향상시켰으며, 2004년에 지원이 종료되었다.
  • IBM 메인프레임 운영 체제 - OS/360
    OS/360은 IBM System/360 제품군을 위해 개발된 범용 운영 체제로, 상업 및 과학 기술 계산을 지원하고 일괄 처리 시스템에서 발전하여 EBCDIC 문자 코드를 채용하고 자기 디스크 장치를 다루는 최초의 OS가 되었으며, 현재의 IBM 메인프레임 OS인 z/OS의 계승자로서 퍼블릭 도메인으로 공개되어 Hercules 에뮬레이터를 통해 실행 가능하다.
IBM 메인프레임 유틸리티 프로그램
개요
종류운영체제 지원 프로그램
용도데이터 관리, 시스템 유지보수, 독립적인 작업 수행
유틸리티 프로그램 종류
데이터 세트 유틸리티데이터 세트 생성, 복사, 삭제, 이름 변경, 목록화 등의 기능 제공
시스템 유틸리티시스템 설정 변경, 성능 모니터링, 오류 진단 등의 기능 제공
독립 유틸리티특정 작업 수행을 위해 독립적으로 실행되는 유틸리티 (예: 정렬, 병합)
주요 유틸리티 프로그램
IEBCOPY데이터 세트 복사 및 병합
IEBGENER데이터 세트 생성 및 복사
IEHLIST데이터 세트 목록 표시
IEHMOVE데이터 세트 이동 및 삭제
IEBCOMPR데이터 세트 압축 및 해제
IEBEDIT데이터 세트 편집
IEBPTCH프로그램 수정 (패치) 적용
IEBUPDAT데이터 세트 업데이트
SORT/MERGE데이터 정렬 및 병합
DITTO디스크 간 데이터 세트 전송
ICKDSF디스크 초기화 및 유지보수
서비스 지원 프로그램
종류덤프 프로그램, 추적 프로그램, 오류 분석 프로그램 등
용도시스템 오류 진단 및 해결, 프로그램 디버깅 지원
사용 환경
운영체제OS/360 및 후속 운영체제
시스템IBM 메인프레임
참고 자료
IBM System/360 운영체제 유틸리티 문서GC28-6586-11 유틸리티 릴리스 19, 1970년 6월
OS 유틸리티 프로그램 번호 문서GC28-6586-15 OS 유틸리티 릴리스 21.7, 1973년 4월
IBM System/360 운영체제 서비스 지원 문서GC28-6719-2 서비스 지원 릴리스 21, 1972년 3월

2. 역사/공통 JCL

많은 유틸리티가 IBM 사용자 그룹인 SHARE에서 설계되었으며, 이후 IBM에 의해 수정 및 확장되었다. 이 유틸리티들은 일반적으로 작업 제어 언어(JCL)를 통해 호출된다.

2. 1. 공통 DDNAME

이 유틸리티들은 보통 작업 제어 언어(JCL)를 통해 호출된다. 이들은 데이터셋을 위해 공통 JCL DD 식별자를 사용하는 경향이 있다.

DDNAME기능
SYSIN유틸리티의 명령어를 위한 입력 파일. 기본 동작을 원하는 경우 DUMMY로 설정.
SYSUT1입력 파일
SYSUT2출력 파일
SYSUT3출력물 (SYSUT1)를 위한 작업용 파일 (자주 쓰이지 않음)
SYSUT4출력물 (SYSUT2)를 위한 작업용 파일 (자주 쓰이지 않음)
SYSPRINT유틸리티로부터 PRINT된 출력물을 위한 출력 파일
SYSOUT유틸리티로부터의 메시지를 위한 출력 파일
SYSUDUMP프로그램 실패 시 시스템 덤프를 위한 출력 파일


3. 데이터셋 유틸리티

IBM 메인프레임은 다양한 데이터셋 관리 유틸리티를 제공하여 사용자가 효율적으로 데이터를 관리할 수 있도록 지원한다. 주요 데이터셋 유틸리티는 다음과 같다.

유틸리티기능
IDCAMSVSAM, 비VSAM 데이터셋을 만들고 수정한다.
IEBCOMPR순차 또는 파티션된 데이터셋의 레코드를 비교한다.
IEBCOPY파티션된 데이터셋을 복사, 압축, 병합한다.[2]
IEBDG패턴화된 데이터를 이루는 테스트 데이터셋을 만든다.[1]
IEBEDITJCL의 일부를 선택적으로 복사한다.[3]
IEBGENER순차 데이터셋으로부터 레코드를 복사하거나 파티션된 데이터셋을 만든다.[3]
IEBIMAGEIBM 3800 레이저 인쇄 하위 시스템과 IBM 4248 프린터를 위한 여러 종류의 정의(이미지)를 조작한다.[1]
IEBISAMISAM 데이터셋을 적재 해제, 적재, 복사, 인쇄한다.[1]
IEBPTPCH순차 또는 파티션된 데이터셋의 레코드를 출력하거나 천공한다.[4]
IEBUPDTE순차 또는 파티션된 데이터셋의 변경 사항을 통합한다. 유닉스의 `패치` 유틸리티와 유사하지만 입력 포맷 마커가 다르다.[1]



각 유틸리티에 대한 자세한 내용은 해당 하위 섹션을 참조하면 된다.

3. 1. IDCAMS

IDCAMS는 가상 기억 접근 방식(VSAM) 및 비VSAM 데이터셋을 만들고 수정하는 데 사용되는 IBM 메인프레임 유틸리티 프로그램이다. IDCAMS는 OS/VS의 VSAM과 함께 도입되었으며, "VSAM이 다른 모든 접근 방식을 대체한다"는 철학을 반영한다. IDCAMS는 VSAM과 비VSAM 파일 모두에 대해 다양한 기능을 수행한다.

다음은 IDCAMS를 사용하여 데이터셋을 디스크에 복사하는 예시이다. 데이터셋은 80바이트 레코드를 가지며, 시스템은 출력 블록 크기를 선택한다.

```jcl

//XXXXXXXW JOB XXXXXXX,AAAA,CLASS=G,MSGCLASS=1,NOTIFY=&SYSUID

//STEP001 EXEC PGM=IDCAMS

//SYSIN DD *

REPRO INFILE(FILE01) OUTFILE(FILE02)

/*

//FILE01 DD DSN=PROD.FILE1.INPUT,disp=shr .....

//FILE02 DD DSN=PROD.FILE2.OUTPUT,

// DISP=(NEW,CATLG,DELETE),

// UNIT=DASD,

// SPACE=(TRK,(100,10),RLSE),

// DCB=(RECFM=FB,BLKSIZE=0,LRECL=80)

//SYSPRINT DD SYSOUT=*

//SYSOUT DD SYSOUT=*

//SYSUDUMP DD SYSOUT=*

//*

```



위 예시에서 SYSIN 제어 카드는 인스트림 파일에서 가져오지만, 순차 파일, PDS 멤버 또는 임시 데이터셋을 가리킬 수도 있다. 다음은 SYSIN 파일을 사용하는 예시이다.

```jcl

//SYSIN DD DSN=PROD.MYFILE.REPRO,DISP=SHR

```



다음과 같이 사용할 수도 있다.

```jcl

//SYSIN DD DSN=PROD.MYLIB.CNTLLIB(REPRO),

// DISP=SHR

```



다음은 DB2 임시 테이블스페이스를 생성하는 IDCAMS 사용 예시이다.

```jcl

//WRKFILE EXEC PGM=IDCAMS

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

DEFINE CLUSTER -

( NAME(DSNCAT.DSNDBC.WRKFILE.DSN4K01.I0001.A001) -

LINEAR -

REUSE -

VOLUMES(volume) -

CYLINDERS(1000 50) -

SHAREOPTIONS(3 3) ) -

DATA -

( NAME(DSNCAT.DSNDBD.WRKFILE.DSN4K01.I0001.A001) ) -

CATALOG -

( DSNCAT )

3. 2. IEBCOMPR

IEBCOMPR는 순차 데이터셋 또는 파티션 데이터셋의 레코드들을 비교한다.

IEBCOMPR 유틸리티는 두 개의 순차 데이터셋 또는 파티션 데이터셋을 비교하는데 사용된다. 이 데이터셋 비교는 논리 레코드 수준에서 수행된다. 그러므로 IEBCOMPR은 데이터셋의 백업 사본이 올바른지 (원본과 완전히 일치하는지) 확인하는데 흔히 사용된다.

처리 중에 IEBCOMPR은 각각의 데이터셋에서 각각의 레코드를 하나씩 비교한다. 레코드가 동등하지 않으면, IEBCOMPR은 SYSOUT에 다음의 정보를 나열한다:

  • 의문시되는 레코드 및 블록 번호.
  • 불일치가 발생한 DD 문의 이름.
  • 동등하지 않은 레코드.


순차 데이터셋을 비교할 때, IEBCOMPR은 다음의 조건이 충족하는 경우 데이터셋을 동등하다고 인식한다:

:* 데이터셋에 동일한 수의 레코드가 포함되어 있다.

:* 일치하는 레코드와 키가 동일하다.

파티션 데이터셋의 경우, IBECOMPR은 다음의 조건이 충족하는 경우 데이터셋을 동등하다고 인식한다:

:* 두 개의 파티션 데이터셋의 디렉터리 엔트리가 일치한다. 즉, 이름이 동일하고 엔트리 수도 동일하다.

:* 일치하는 멤버에는 동일한 수의 레코드를 포함하고 있다.

:* 일치하는 레코드와 키는 동일하다.

10개의 동등하지 않은 비교가 처리 중에 발생하면, IECOMPR은 적절한 메시지와 함께 종료된다.

```jcl

//XXXXXXXW JOB XXXXXXX,AAAA.A.A,CLASS=G,MSGCLASS=1,NOTIFY=XXXXX

//STEP01 EXEC PGM=IEBCOMPR,ACCT=PJ00000000

// INCLUDE MEMBER=@BATCHS

//*SYSIN DD DUMMY

//SYSIN DD *

COMPARE TYPORG=PO

/*

//SYSUT1 DD DSN=XXXXXXX.OLDFILE,UNIT=DASD,DISP=SHR

//SYSUT2 DD DSN=XXXXXXX.NEWFILE,UNIT=DASD,DISP=SHR

//SYSUT# DD

```

참고: IEBCOMPR은 사용자에게 친숙하도록 설계된 비교 프로그램이 아니다. 특정한 컬럼에만 비교를 제한할 수 없고, 공백의 차이를 무시할 수도 없으며, 레코드의 어느 부분에서 차이가 있는지 알려주지도 않으며, 10개의 차이 이후에는 중단된다. 한편, 속도가 빠르며 모든 IBM 메인프레임에 존재한다. 그러므로 재차단되지 않은 로드 모듈을 비교한다든지, 복사 작업이 올바르게 이루어졌는지를 확인하는 등 완전히 일치하는지를 확인할 때 유용하다. 프로그램이나 보고서를 비교할 때에는 ISPF SuperC (ISRSUPC) 비교 프로그램이 대신 종종 사용된다.

예시 (순차 파일 비교)

```jcl

//STEP001 EXEC PGM=IEBCOMPR

//SYSPRINT DD SYSOUT=*

//SYSUT1 DD DISP=SHR,DSN=COMPARE.DATA

// UNIT=3390,VOL=SER=WRKVOL

//SYSUT2 DD DISP=SHR,DSN=TARGET.DATA

// UNIT=3390,VOL=SER=GYOVOL

//SYSIN DD *

COMPARE TYPORG=PS

/*

3. 3. IEBCOPY

IEBCOPY는 파티션된 데이터셋(PDS)을 복사, 압축, 병합한다. 또, 복사 작업 중 지정된 멤버를 선택하거나 제외할 수 있으며, 멤버를 대체하거나 멤버 이름을 바꿀 수 있다.[2]

IEBCOPY가 수행할 수 있는 작업은 다음과 같다.[2]

  • 파티션된 데이터 세트(PDS)를 백업 또는 전송을 위해 PS 데이터 세트로 언로드 할 수 있다.
  • PDS를 제자리에서 복사하여 삭제된 멤버로부터 사용하지 않는 공간을 회수할 수 있다. 이를 PDS 압축이라고도 한다.
  • 선택한 멤버를 다른 PDS로 복사할 수 있다.
  • PDS의 선택한 멤버 이름을 변경할 수 있다.
  • 여러 파티션 데이터 세트를 단일 PDS로 병합할 수 있다.
  • 로드 모듈을 변경, 복사 및 재블록화할 수 있다.
  • R 옵션을 지정하지 않으면 다른 PDS에 이미 있는 멤버는 교체되지 않는다.


IEBCOPY 유틸리티의 경우, 복사에 필요한 작업 제어문(JCL)은 다음과 같다.[2]

```jcl

//stepname EXEC PGM=IEBCOPY

//SYSPRINT DD SYSOUT=class

//MYDD1 DD DSN=xxxx.ppp.psps,DISP=SHR

//MYDD2 DD DSN=xxxx.ppp.pssp,DISP=SHR

//SYSIN DD *

COPY INDD=MYDD1,OUTDD=MYDD2

SELECT MEMBER=(MEM1,MEM2,MEM3)/ EXCLUDE MEMBER=(SF,DF,SA)

```

MYDD1 및 MYDD2 DD 문은 각각 파티션된 입력 및 출력 데이터 세트에 대해 사용자가 선택한 이름이다. 기본값은 SYSUT1 및 SYSUT2이다. 이 두 DD문에 대해 유효한 DDNAME을 사용할 수 있다. 이러한 DDNAME은 IEBCOPY에 입력 및 출력 데이터 세트의 이름을 알려주기 위해 유틸리티 제어문에 지정된다. PDS를 압축하려면 DD 문이 하나만 필요하다.[2]

다음은 멤버 복사 샘플이다.

```jcl

//STEP01 EXEC PGM=IEBCOPY,REGION=4M

//SYSPRINT DD SYSOUT=*

//SYSUT3 DD SPACE=(CYL,400),UNIT=SYSDA

//SYSUT4 DD SPACE=(CYL,400),UNIT=SYSDA

//I1 DD DISP=SHR,DSN=USER.LIBRARY1

//O1 DD DISP=SHR,DSN=USER.LIBRARY2

//SYSIN DD *

COPY I=I1,O=O1

S M=(PGM001)

/*

3. 4. IEBDG

IEBDG는 패턴화된 데이터를 이루는 테스트 데이터셋을 만든다.[1] 제어문을 통해 생성될 레코드의 필드를 정의할 수 있다.

다음은 JCL 예제 코드이다.

```jcl

//STEP1 EXEC PGM=IEBDG

//SYSPRINT DD SYSOUT=*

//SEQOUT DD DSN=&SYSUID..MVSUT.SEQOUT,DISP=OLD

//SYSIN DD DATA

DSD OUTPUT=(SEQOUT)

FD NAME=FIELD1,LENGTH=30,STARTLOC=1,FORMAT=AL,ACTION=TL

FD NAME=FIELD2,LENGTH=30,STARTLOC=31,FORMAT=AL,ACTION=TR

FD NAME=FIELD3,LENGTH=10,STARTLOC=71,PICTURE=10, X

P'1234567890',INDEX=1

CREATE QUANTITY=500,NAME=(FIELD1,FIELD2,FIELD3),FILL=X'FF'

END

/*

3. 5. IEBEDIT

IEBEDIT는 JCL의 일부를 선택적으로 복사하는 유틸리티 프로그램이다. 특정 단계(STEP)를 포함하거나 제외할 수 있다.

다음은 IEBEDIT 프로그램의 예시이다.

```jcl

//IEBEDITJ JOB ACCT,'',CLASS=P,MSGCLASS=T,MSGLEVEL=(1,1),NOTIFY=&SYSUID

//STEP0001 EXEC PGM=IEBEDIT

//SYSPRINT DD SYSOUT=*

//SYSUT1 DD DSN=xxxxx.yyyyy.zzzzz,DISP=SHR

//SYSUT2 DD SYSOUT=(*,INTRDR)

//SYSIN DD *

EDIT TYPE=INCLUDE,STEPNAME=(STEP10,STEP5,STEP15)

/*

//

```

위 예시에서 `xxxxx.yyyyy.zzzzz` 데이터 세트는 STEP5, STEP10, STEP15라는 단계를 포함하는 작업을 포함해야 한다. IEBEDIT는 작업의 선택된 단계를 SYSUT2 출력 파일(위 예시에서는 내부 리더)로 복사한다.

EDIT 문의 구문은 다음과 같다.

```jcl

[label] EDIT [START=jobname]

[,TYPE={POSITION|INCLUDE|EXCLUDE}]

[,STEPNAME=(namelist)]

[,NOPRINT]

```

  • `START=jobname`: EDIT 문이 적용되는 입력 작업의 이름을 지정한다. 각 EDIT 문은 별도의 작업에 적용해야 한다. START가 TYPE 및 STEPNAME 없이 지정되면, 지정된 작업에 대한 JOB 문과 모든 작업 단계가 출력에 포함된다.
  • 기본값: START가 생략되고 하나의 EDIT 문만 제공되면, 입력 데이터 세트에서 처음 발견된 작업이 처리된다. START가 첫 번째 문이 아닌 EDIT 문에서 생략되면, 처리는 입력 데이터 세트에서 발견된 다음 JOB 문으로 계속된다.
  • `TYPE={POSITION|INCLUDE|EXCLUDE}`: 출력 데이터 세트의 내용을 지정한다. 다음 값을 코딩할 수 있다.
  • `POSITION`: 출력에 JOB 문, STEPNAME 매개변수에 지정된 작업 단계 및 해당 작업 단계 다음에 오는 모든 단계로 구성되도록 지정한다. 지정된 단계 앞에 있는 모든 작업 단계는 작업에서 생략된다. POSITION이 기본값이다.
  • `INCLUDE`: 출력 데이터 세트에 JOB 문과 STEPNAME 매개변수에 지정된 모든 작업 단계를 포함하도록 지정한다.
  • `EXCLUDE`: 출력 데이터 세트에 JOB 문과 STEPNAME 매개변수에 지정된 단계를 제외한 작업에 속하는 모든 작업 단계를 포함하도록 지정한다.
  • `STEPNAME=(namelist)`: 처리할 작업 단계의 이름을 지정한다.
  • `namelist`는 단일 작업 단계 이름, 쉼표로 구분된 단계 이름 목록 또는 하이픈으로 구분된 단계의 순차적 범위(예: STEPA-STEPE)일 수 있다. 이러한 조합은 하나의 namelist에서 사용할 수 있다. 둘 이상의 단계 이름이 지정되면 전체 namelist는 괄호로 묶어야 한다.
  • TYPE=POSITION과 함께 코딩되면, STEPNAME은 출력 데이터 세트에 배치될 첫 번째 작업 단계를 지정한다. 이 단계 앞에 있는 작업 단계는 출력 데이터 세트로 복사되지 않는다.
  • TYPE=INCLUDE 또는 TYPE=EXCLUDE와 함께 코딩되면, STEPNAME은 작업에 포함되거나 제외될 작업 단계의 이름을 지정한다. 예를 들어 STEPNAME=(STEPA,STEPF-STEPL,STEPZ)는 작업 단계 STEPA, STEPF부터 STEPL까지, STEPZ가 작업에 포함되거나 제외됨을 나타낸다.
  • STEPNAME이 생략되면 EDIT 문에 이름이 지정된 전체 입력 작업이 복사된다. 작업 이름이 지정되지 않으면, 처음 발견된 작업이 처리된다.
  • `NOPRINT`: 메시지 데이터 세트에 출력 데이터 세트 목록을 포함하지 않도록 지정한다.
  • 기본값: 결과 출력은 메시지 데이터 세트에 나열된다.

3. 6. IEBGENER

IEBGENER는 순차 데이터셋으로부터 레코드를 복사하거나 파티션된 데이터셋을 만드는 데 사용되는 프로그램이다.

IEBGENER가 수행할 수 있는 작업은 다음과 같다.

  • 순차 데이터 세트 또는 PDS의 멤버 백업 생성.
  • 순차 데이터 세트의 물리적 블록 크기 또는 논리적 레코드 길이 변경.
  • 편집된 데이터 세트 생성.
  • 순차 데이터 세트 또는 PDS 멤버 인쇄.
  • 순차 입력 데이터 세트에서 분할된 출력 데이터 세트 생성.


직접 복사 작업을 할 때, 정렬 프로그램이 IEBGENER보다 더 빠르게 수행할 수 있는 경우가 많다. 그래서 많은 메인프레임 작업 환경에서는 이러한 작업을 IEBGENER 대신 정렬 ICEGENER 프로그램으로 자동 라우팅하는 옵션을 사용하기도 한다.

다음은 IEBGENER 프로그램을 사용하여 한 데이터 세트를 다른 데이터 세트로 복사하는 예시이다.

```jcl

//IEBGENER JOB ACCT,'DATA COPY',MSGCLASS=J,CLASS=A

//STEP010 EXEC PGM=IEBGENER

//SYSUT1 DD DSN=xxxxx.yyyyy.zzzzz,DISP=SHR

//SYSUT2 DD DSN=aaaaa.bbbbb.ccccc,DISP=(,CATLG),

// UNIT=SYSDA,SPACE=(TRK,(5,5),RLSE),

// DCB=(RECFM=FB,LRECL=1440)

//SYSPRINT DD SYSOUT=*

//SYSIN DD DUMMY

```

일부 시스템에서는 출력을 " `SMTP` " ''외부 작성기''로 지정하여 일괄 작업에서 이메일을 보낼 수 있다. 해당 시스템에서 사용되는 기술은 다음과 같다.

```jcl

//IEBGENER JOB ACCT,'DATA COPY',MSGCLASS=J,CLASS=A

//NORMRC EXEC PGM=IEBGENER

//SYSPRINT DD SYSOUT=*

//SYSUT1 DD *,LRECL=80

HELO

MAIL FROM:

RCPT TO:

DATA

From:

To:

Subject: Test Mail

TEST MAIL FROM MAINFRAME

.

QUIT

/*

//SYSUT2 DD SYSOUT=(B,SMTP),LRECL=80

//SYSIN DD DUMMY

```

메인프레임에서 이메일을 보내는 동안 파일을 첨부하는 것도 가능하다.

다음은 순차 데이터 복사 샘플이다.

```jcl

//STEP01 EXEC PGM=IEBGENER,REGION=4M

//SYSPRINT DD SYSOUT=*

//SYSUT1 DD DISP=SHR,DSN=USER.SEQDETA1

//SYSUT2 DD DSN=USER.SEQDATA2,

// DISP=(NEW,KEEP,DELETE),UNIT=3390,VOL=SER=volume,

// SPACE=(TRK,(850,100),RLSE)

//SYSIN DD DUMMY

3. 7. IEBIMAGE

IEBIMAGE는 IBM 3800 레이저 인쇄 하위 시스템과 IBM 4248 프린터에서 사용할 여러 종류의 정의(이미지)를 조작하는 유틸리티 프로그램이다. 일반적으로는 용지 제어 버퍼(FCB, forms control buffer), 문자 정렬표, 문자 정의, 폼 이미지를 텍스트와 함께 출력하거나, 회사 로고를 인쇄하거나, '그레이바' 페이지(회색과 흰색이 번갈아 나타나는 가로 배경)를 인쇄하는 데 사용된다.[1]

이 유틸리티를 사용하면 다양한 형태의 로고를 그림으로 저장하고 필요할 때 인쇄할 수 있다. 모두 동일한 표준 용지를 사용하므로 미리 인쇄된 폼을 쌓아둘 필요가 없고, 작업자가 프린터를 중단하고 용지를 교환할 필요도 없다.[1]

IEBIMAGE는 IBM 3211 프린터, IBM 3800 레이저 인쇄 서브시스템 및 IBM 4248 프린터에 대한 여러 유형의 정의(이미지)를 조작한다. 일반적인 용도로는 용지 제어 버퍼(FCB), 문자 배열 테이블, 문자 정의, 출력물에 텍스트와 함께 인쇄될 양식 이미지, 회사 로고를 페이지에 인쇄하기 위한 이미지, 또는 '그레이바' 페이지(이전의 그린바 용지와 유사하게 회색과 흰색이 번갈아 나타나는 가로 배경)를 인쇄하는 데 사용된다.[1]

IEBIMAGE는 IBM 3800 프린트 서브시스템의 로드 모듈을 다룬다.[1]

3. 8. IEBISAM

IEBISAM은 ISAM 데이터셋을 적재하거나 해제하고, 복사 및 인쇄하는 데 사용되는 유틸리티이다.[1] 현대 운영 체제에서는 대부분 VSAM으로 대체되어 더 이상 자주 사용되지는 않는다. VSAM 파일은 IEBISAM 대신 IDCAMS 유틸리티를 사용하여 처리한다.[1]

IBM 매뉴얼 SC26-7414-08 z/OS DFSMSdfp 유틸리티에 따르면, IEBISAM 프로그램은 더 이상 배포되지 않는다. z/OS V1R7부터 ISAM 데이터 세트는 생성, 열기, 복사, 덤프를 포함한 어떠한 처리도 할 수 없다. 따라서 기존에 사용 중이던 ISAM 데이터 세트는 VSAM 키 순차 데이터 세트로 변환해야 한다.[1]

z/OS V1R7 이전에는 액세스 방식 서비스를 통해 VSAM 키 순차 데이터 세트를 할당하고 ISAM 데이터 세트를 복사하는 것이 가능했다.[1] IEBISAM은 ISAM 데이터 세트의 인쇄, 데이터 로드 및 언로드를 수행하는 기능을 가지고 있었다.[1]

3. 9. IEBPTPCH

IEBPTPCH (PrinT and PunCH영어)는 순차 또는 파티션된 데이터셋으로부터 레코드를 출력하거나 천공하는 IBM 메인프레임 유틸리티 프로그램이다.

IEBPTPCH가 수행할 수 있는 작업은 다음과 같다.

  • 전체 데이터 세트 (순차적 또는 파티션 데이터 세트(PDS)) 인쇄 또는 천공.
  • 선택한 PDS 멤버 인쇄 또는 천공.
  • 순차적 또는 분할 데이터 세트에서 선택한 레코드 인쇄 또는 천공.
  • PDS 디렉토리 인쇄 또는 천공.
  • 순차적 데이터 세트 또는 PDS의 편집된 버전 인쇄 또는 천공.
  • 빈 데이터 세트 확인

비어있는 데이터셋 확인: 데이터셋이 비어있는 것으로 확인되면 RC=4를, 그렇지 않으면 0을 반환한다.

다음은 JCL 코드 예시이다.



//IEBPTPCH JOB

// EXEC PGM=IEBPTPCH

//SYSIN DD *

PRINT MAXFLDS=2

TITLE ITEM=('Name',22),

ITEM=('GPA',50)

TITLE ITEM=(' ',1)

RECORD FIELD=(25,1,,22),

FIELD=(4,51,,50)

/*

//SYSPRINT DD SYSOUT=*

//SYSUT1 DD *

Person 1 307 C Meshel Hall 3.89

Second person 123 Williamson Hall 2.48

3rd person 321 Maag Library 1.52

/*

//SYSUT2 DD SYSOUT=*

//



빈 데이터 세트 확인 JCL 예시는 다음과 같다.



//IEBPTPCH JOB

// EXEC PGM=IEBPTPCH

//SYSUT1 DD DSN=,DISP=SHR

//SYSUT2 DD DUMMY,

// DCB=(BLKSIZE=,RECFM=FA)

//SYSIN DD *

PRINT TYPORG=PS

/*

//SYSPRINT DD SYSOUT=*

//


3. 10. IEBTCRIN

2495 테이프 카트리지 리더에서 레코드를 읽는다.

3. 11. IEBUPDAT

순차 데이터 세트 또는 분할 데이터 세트의 멤버에서 레코드를 변경하며, IEBUPDTE로 대체되었지만 호환되지 않는다.

3. 12. IEBUPDTE

IEBUPDTE는 순차적 또는 파티션된 데이터셋에 변경 사항을 통합하는 유틸리티 프로그램이다. 유닉스의 `패치` 유틸리티와 유사하지만, 입력 포맷 마커는 다르다. 예를 들어, MVS에서는 "./ INSERT ..."를 사용하는 반면, 유닉스 Patch에서는 "@@..."를 사용한다. 일부 프로그래머는 "I.E.B. up-ditty"라고 발음하기도 한다.

IEBUPDTE는 주로 소스 라이브러리를 유지 관리하는 데 사용되며, 다음과 같은 기능을 수행할 수 있다.

  • 라이브러리 생성 및 업데이트
  • 순차적 데이터 세트 또는 PDS 멤버 수정
  • 데이터 세트의 구성을 순차에서 분할로 또는 분할에서 순차로 변경


IEBUPDTE는 일반적으로 테이프에서 DASD로 소스 라이브러리를 배포하는 데 사용된다.

IEBUPDTE는 대부분의 IEB 유형 유틸리티에 필요한 것과 동일한 작업 제어문을 사용하지만, 다음과 같은 예외가 있다.

  • EXEC 문에 PARM 매개변수 NEW 또는 MOD를 사용할 수 있다.
  • '''NEW''': 유틸리티 제어문과 입력 데이터가 SYSIN DD 문에 포함되어 SYSUT1 DD 문이 필요하지 않음을 나타낸다.
  • '''MOD''': SYSIN DD 문에 입력 데이터 없이 유틸리티 제어문만 포함되어 SYSUT1 DD 문이 필요함을 나타낸다.
  • SYSUT1 DD 문 또는 SYSIN DD 문에서 입력 데이터 세트를 읽는다.


IEBUPDTE에서 사용되는 작업 제어문의 예시는 다음과 같다.

```jcl

//stepname EXEC PGM=IEUPDTE,PARM=NEW

//SYSPRINT DD SYSOUT=class

//SYSUT1 DD ...

//SYSUT2 DD ...

//SYSIN DD ...

```

IEBUPDTE는 순차 데이터 세트와 구분 데이터 세트의 변환을 수행한다.

4. 스케줄러 유틸리티

(하위 섹션의 내용이 스케줄러 유틸리티와 직접적인 관련이 없고, 원본 소스도 제공되지 않았으므로, 내용을 작성하지 않음)

4. 1. IEFBR14

IEFBR14는 데이터셋을 할당하거나 삭제할 때 JCL에 자주 추가하는 더미 프로그램이다.

IEFBR14 스텝의 예시는 다음과 같다:

```jcl

//IEFBR14 JOB ACCT,'DELETE DATASET'

//STEP01 EXEC PGM=IEFBR14

//DELDD DD DSN=xxxxx.yyyyy.zzzzz,

// DISP=(MOD,DELETE,DELETE),UNIT=DASD

```

OS/360의 호출 시퀀스는 반환 주소를 레지스터 14에 포함했다. 따라서 레지스터 14로 분기하면 프로그램이 즉시 종료된다. 그러나 이 프로그램을 실행하기 전과 후에 운영 체제는 DD문에 지정된 대로 데이터 세트를 할당 및 해제하므로, 데이터 세트를 설정하거나 제거하는 데 일반적으로 사용된다.

처음에는 "레지스터로 분기" 14 단일 명령어로 구성되었다. IBM 어셈블러에서 사용된 니모닉은 BR이므로 IEF BR 14라는 이름이 붙었다. IEF는 OS/360의 "작업 관리" 하위 시스템의 "접두사"이다.

이 단일 명령어 프로그램에는 반환 코드를 설정하지 않았던 오류가 있었다. 따라서 올바른 상태로 종료되도록 반환 코드를 지우기 위해 두 번째 명령어를 추가해야 했다.

이후 두 개의 명령어 프로그램에서 IBM에서 보고 수정된 추가 오류가 있었다. 이 오류는 IEFBR14 프로그램이 재진입 가능(둘 이상의 호출자가 동시에 사용 가능)으로 링크 편집되지 않았기 때문에 발생했다.

일부 해커는 IEFBR14를 사용하여 BR 14 명령어를 BR 15로 변경하여 "세계에서 가장 짧은 루프"를 만들기도 했다. 레지스터 15에는 IEFBR14 모듈 자체의 주소가 포함되어 있으며, BR 15 명령어는 단순히 모듈을 다시 호출하여 영원히 실행되기 때문이다.

5. 시스템 유틸리티

유틸리티기능
ICKDSF운영 체제 하에서 또는 독립적으로 DASD를 설치, 초기화, 관리한다.
IEHDASDR현재의 z/OS 매뉴얼에서는 보이지 않는 오래된 프로그램으로서, 디스크로부터 데이터셋을 프린터로 덤프하거나 백업 장치로부터 이들을 백업/복구한다. MVS/XA에서 제거되었다.[12]
IEHINITT테이프 레이블을 기록하여 테이프를 초기화한다.
IEHLIST파티션된 데이터셋(PDS) 디렉터리의 항목이나 볼륨 목록(VTOC)의 내용을 나열한다.
IEHMOVE데이터 집합을 이동하거나 복사한다.
IEHPROGM시스템 제어 데이터를 빌드하고 관리한다.



이러한 유틸리티는 일반적으로 시스템에서 애플리케이션 작업을 수행하는 프로그래머가 아닌, 시스템의 작동을 유지 관리하는 시스템 프로그래머가 사용한다. ICKDSF는 DASD를 설치, 초기화 및 유지 관리하는 기능을 수행한다.[12]

5. 1. ICKDSF

ICKDSF (디바이스 지원 시설, Device Support Facility)는 운영 체제 또는 독립형으로 DASD를 설치, 초기화 및 유지 관리하는 데 사용되는 프로그램이다.[12] 운영 체제에 연결되어 있든 분리되어 있든 사용할 수 있다.

다음은 VTOC를 기본 크기로 생성하는 예시이다.

```

//ICKDSF1 JOB (ICKDSF,,TEST),'DISK INIT',CLASS=A,MSGCLASS=A,

// MSGLEVEL=(1,1)

//ICKDSF01 EXEC PGM=ICKDSF

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

INIT UNIT(unitaddr) NOVERIFY VOLID(volume) VTOC(END)

/*

5. 2. IEHATLAS

결함 트랙에 대체 트랙을 할당한다.

5. 3. IEHDASDR

IEHDASDR[1]은 다음과 같은 여러 가지 작업을 수행할 수 있었다.

  • 직접 접근 저장 장치(DASD) 볼륨 초기화 (선택적 표면 검사 포함)
  • 불량 트랙에 대체 트랙 할당
  • DASD의 트랙 인쇄
  • 테이프에 DASD 볼륨 백업 생성
  • 백업 테이프에서 DASD 볼륨 복원


IBM은 결국 IEHDASDR에 새로운 장치 유형에 대한 지원 추가를 중단하고, 고객에게 볼륨 초기화를 위한 무료 DSF, 덤프/복원을 위한 유료 DASDR (5740-UT1) 및 Data Facility/Data Set Services (5740-UT3, DF/DSS)를 사용하도록 지시했다.

IBM은 MVS/XA에서 IEHDASDR을 제거했다.[3]

5. 4. IEHINITT

IEHINITT (Initialize Tape영어, 테이프 초기화)는 테이프 레이블을 기록하여 테이프를 초기화한다. 유틸리티를 한 번 실행하여 여러 테이프에 레이블을 지정할 수 있다. IBM 표준 또는 ASCII 레이블을 기록할 수 있다.

IEHINITT 프로그램의 예는 다음과 같다.

```jcl

//IEHINITT JOB ACCT,'LABEL TAPES',MSGCLASS=J,CLASS=A

//STEP0001 EXEC PGM=IEHINITT,REGION=8M

//SYSPRINT DD SYSOUT=A

//LABEL DD DCB=DEN=2,UNIT=(3490,1,DEFER)

//SYSIN DD *

LABEL INITT SER=123450,NUMBTAPE=3

/*

```

위 예제는 3490 자기 테이프 장치에 3개의 테이프에 레이블을 지정한다. 각 테이프는 IBM 표준 레이블을 받게 된다. VOLSER는 레이블이 지정된 각 테이프에 대해 1씩 증가한다. 각 테이프는 레이블이 지정된 후 되감기 및 언로드된다.

5. 5. IEHIOSUP

IEHIOSUP는 SYS1.SVCLIB에 있는 4형식 감독 호출 (SVC) 루틴에 대한 상대 트랙 주소 (TTR) 링크를 업데이트한다. IEHIOSUP는 OS/VS2 이상에서는 더 이상 지원되지 않는다.[4]

OPEN, CLOSE 및 EOV 기능은 순차적으로 실행되는 일련의 SVC 모듈에 의해 수행된다. 일부 모듈에는 `XCTL` 매크로가 일련의 다음 모듈로 연결하는 데 사용되는 테이블이 포함되어 있다. 성능상의 이유로 매번 디렉터리 검색을 피하기 위해 이러한 테이블에는 이름 대신 모듈의 디스크 주소가 포함되어 있다. SYS1.SVCLIB에 대한 업데이트로 인해 이러한 주소가 변경될 수 있으므로 올바른 주소를 설치하려면 IEHIOSUP를 실행해야 한다.[5]

다음은 IEHIOSUP를 실행하는 데 필요한 JCL의 예이다.[1]

```jcl

//IHEIOSUP JOB

// EXEC PGM=IEHIOSUP

//SYSUT1 DD DSNAME=SYS1.SVCLIB~DISP=OLD,UNIT=2311,

// VOLUME=SER=111111

//SYSPRINT DD SYSOUT=A

//

5. 6. IEHLIST

IEHLIST는 파티션된 데이터 세트(PDS) 디렉터리의 항목이나 볼륨 목록(VTOC)의 내용을 나열하는 데 사용되는 유틸리티이다.

IEHLIST 유틸리티는 다음 항목을 나열하는 데 사용된다.

  • PDS 디렉터리
  • VTOC
  • 카탈로그(OS CVOL)


IEHLIST 프로그램의 예시는 다음과 같다.

```jcl

//IEHLIST JOB ACCT,'LIST PDS',MSGCLASS=J,CLASS=A

//STEP0001 EXEC PGM=IEHLIST,REGION=8M

//SYSPRINT DD SYSOUT=A

//PDS1 DD DSN=xxxx.yyyy.zzzz,DISP=OLD

//SYSIN DD *

LISTPDS DSNAME=xxxx.yyyy.zzzz,FORMAT

/*

```

이 작업은 xxxx.yyyy.zzzz라는 PDS의 PDS 디렉터리의 형식이 지정된 목록을 생성한다.

VTOC를 나열하는 IEHLIST 프로그램의 예시는 매우 유사하다.

```jcl

//IEHLIST JOB ACCT,'LIST VTOC',MSGCLASS=J,CLASS=A

//STEP0001 EXEC PGM=IEHLIST,REGION=8M

//SYSPRINT DD SYSOUT=A

//VOL1 DD VOL=SER=vvvvvv,DISP=OLD

//SYSIN DD *

LISTVTOC VOL=SER=vvvvvv,FORMAT

/*

```

IEHLIST는 데이터 세트의 목록을 가져온다.

5. 7. IEHMOVE

IEHMOVE는 데이터 집합을 이동하거나 복사하는 데 사용되는 유틸리티 프로그램입니다. 그러나 현재는 DFSMS (시스템 관리 스토리지) 환경이 일반적이며, IBM은 이러한 환경에서 IEHMOVE 사용을 권장하지 않습니다. 이동은 복사와 달리 이동 후 원본 데이터 세트가 삭제되거나 스크래치된다는 점에서 차이가 있습니다.

IEHMOVE는 다음과 같은 작업을 수행할 수 있습니다.

  • 순차 및 파티션 데이터 세트의 이동 또는 복사
  • 멀티 볼륨 데이터 세트의 이동 또는 복사
  • 전체 데이터 세트 볼륨 이동


IEHMOVE는 IEBGENER 및 IEBCOPY 유틸리티와 기능이 일부 중복되지만, 더 강력합니다. IEHMOVE를 사용할 때의 주요 장점은 새 데이터 세트에 대한 공간 또는 DCB 정보를 지정할 필요가 없다는 것입니다. IEHMOVE가 기존 데이터 세트를 기반으로 이 정보를 자동으로 할당하기 때문입니다.

또한 IEHMOVE는 전체 데이터 볼륨뿐만 아니라 데이터 세트 그룹을 복사하거나 이동할 수 있습니다. 이러한 편리성 때문에 IEHMOVE 유틸리티는 시스템 프로그래머가 선호하는 경향이 있습니다.

다음은 IEHMOVE 작업 예시입니다.

```jcl

//stepname EXEC PGM=IEHMOVE,PARM='LINECNT=xx,POWER=n'

//SYSPRINT DD SYSOUT=class

//SYSUT1 DD UNIT=aaaa,VOL=SER=bbbbbb,DISP=OLD

//anyname1 DD UNIT=cccc,VOL=SER=dddddd,DISP=OLD

//anyname2 DD UNIT=eeee,VOL=SER=ffffff,DISP=OLD

//SYSIN DD ...

```

SYSPRINT 및 SYSIN을 제외한 IEHMOVE의 DD 문은 개별 데이터 세트 대신 DASD 또는 자기 테이프 볼륨을 참조합니다. `DISP=OLD`를 지정하면 볼륨에 대한 독점 액세스 권한을 얻게 되므로, IEHMOVE 작업이 실행되는 동안 해당 볼륨 (및 해당 볼륨의 모든 데이터 세트)은 다른 사용자가 사용할 수 없습니다. 이는 테이프 또는 마운트 가능한 DASD 볼륨과 같은 개인 볼륨에는 허용되지만, 공용 볼륨에는 허용되지 않습니다.

SYSUT1 DD 문은 IEHMOVE에서 필요한 세 개의 작업 데이터 세트가 할당된 DASD 볼륨을 지정합니다. 이 DD 문에는 장치 및 볼륨 정보를 반드시 지정해야 합니다.

IEHMOVE는 PL/S로 개발된 최초의 시스템 중 하나입니다.

다음은 세 개의 순차 데이터 세트 (SEQSET1, SEQSET2, SEQSET3)를 하나의 디스크 볼륨에서 세 개의 별도 디스크 볼륨으로 이동하는 예시입니다.

```jcl

//MOVEDS JOB ...

//STEP1 EXEC PGM=IEHMOVE

//SYSPRINT DD SYSOUT=A

//SYSUT1 DD UNIT=disk,VOLUME=SER=333333,DISP=OLD

//DD1 DD UNIT=(disk,,DEFER),DISP=OLD,

// VOLUME=(PRIVATE,,SER=(222222))

//DD2 DD UNIT=(disk,,DEFER),DISP=OLD,

// VOLUME=(PRIVATE,,SER=(222333))

//DD3 DD UNIT=(disk,,DEFER),DISP=OLD,

// VOLUME=(PRIVATE,,SER=(222444))

//DD4 DD VOLUME=(PRIVATE,RETAIN,SER=(444444)),

// UNIT=disk,DISP=OLD

//SYSIN DD *

MOVE DSNAME=SEQSET1,TO=disk=222222,FROM=disk=444444

MOVE DSNAME=SEQSET2,TO=disk=222333,FROM=disk=444444

MOVE DSNAME=SEQSET3,TO=disk=222444,FROM=disk=444444

/*

```

이 예시에서는 IEHMOVE에서 필요할 때 세 개의 수신 볼륨 각각이 마운트됩니다. 소스 데이터 세트는 카탈로그화되지 않으며, 공간은 IEHMOVE에서 할당합니다.

5. 8. IEHPROGM

IEHPROGM은 시스템 제어 데이터를 구축하고 유지 관리하며, 데이터 세트의 이름을 변경하거나 삭제(스크래치)하는 데 사용된다.[12]

IEHPROGM이 수행할 수 있는 작업은 다음과 같다.

  • 데이터 세트 또는 PDS 멤버 삭제(스크래치)
  • 데이터 세트 또는 PDS 멤버 이름 변경
  • 데이터 세트 카탈로그 또는 카탈로그 해제
  • 시스템 '''PASSWORD''' 데이터 세트에서 데이터 세트 비밀번호 유지 관리 ('''PASSWORD''' 데이터 세트는 더 이상 사용되지 않으며, RACF와 같은 ''System authorization facility'' (''SAF'')를 통해 작동하는 보안 하위 시스템으로 대체되었다.)


카탈로그화할 때 사용되는 JCL 코드는 다음과 같다.

```jcl

//SYSIN DD *

CATLG DSNNAME=data-set-name,

VOL=device-name=volume-number

/*

//

5. 9. IFHSTATR

테이프 오류에 대한 SMF 레코드를 선택하고 형식을 지정한다.

6. 독립 유틸리티

이 프로그램들은 운영 체제의 제어 없이 독립적으로 실행된다.

6. 1. IBCDASDI

직접 접근 볼륨을 포맷하고 대체 트랙을 할당한다.

6. 2. IBCDMPRS

직접 접근 볼륨 덤프 및 복원.

6. 3. IBCRCVRP

대체 트랙 할당, 데이터 복구 및 교체를 지원한다.

6. 4. ICAPRTBL

프린터에 폼 제어 버퍼(FCB) 및 범용 문자 세트(UCS) 버퍼를 로드한다.

7. 서비스 지원 (Service Aids)

IBM이 서비스 보조 자료 또는 진단[6] 매뉴얼에 문서화한 유틸리티 프로그램이다. 원래 OS/360 서비스 보조 자료는 IFC 및 IM*로 시작하는 이름을 사용했지만, IBM은 OS/VS1의 경우 HM*로, OS/VS2의 경우 AM*으로 명명 규칙을 변경했다. IBM은 IFC 규칙은 변경하지 않았다.

하위 섹션에 상술된 내용 외에 아래 유틸리티들이 존재한다.


  • '''IMCJQDMP''': 독립형 프로그램으로 시스템 작업 큐를 포맷하여 출력한다. MVS에는 적용되지 않는다.
  • '''IMCOSJQD''': 시스템 작업 큐 형식 지정 및 인쇄. MVS에는 적용되지 않는다.
  • '''IMDPRDMP''': 코어 덤프와 TSO 스왑 데이터 세트, 그리고 GTF 추적 데이터를 형식화하여 출력한다.
  • '''IMDSADMP''': 메인 스토리지를 고속 또는 저속으로 덤프(dump)하는 독립형 프로그램이다.

7. 1. IFCDIP00

SYS1.LOGREC 데이터 세트를 초기화한다.

7. 2. IFCEREP0

SYS1.LOGREC 오류 기록 데이터 세트의 레코드를 요약하고 출력한다.

7. 3. GTF (Generalized Trace Facility)

SVC 및 I/O 인터럽션과 같은 선택된 시스템 이벤트를 추적한다.

7. 4. IMAPTFLE

PTF를 적용하는 데 필요한 JCL을 생성하거나 PTF를 적용한다. 이 프로그램의 기능은 SMP에 의해 흡수되었다.

7. 5. IMASPZAP

로드 모듈, 프로그램 오브젝트 또는 디스크 파일의 명령 및/또는 데이터를 확인 및/또는 교체한다.

7. 6. IMBLIST

오브젝트 모듈, 로드 모듈, 프로그램 오브젝트 및 CSECT 식별 레코드를 형식화하고 인쇄한다.

7. 7. IMBMDMAP

맵은 모듈을 로드한다. 이 프로그램의 기능은 IMBLIST에 흡수되었다.

7. 8. IMCJQDMP

독립형 프로그램으로 시스템 작업 큐를 포맷하여 출력한다. MVS에는 적용되지 않는다.

7. 9. IMCOSJQD

시스템 작업 큐 형식 지정 및 인쇄. MVS에는 적용되지 않는다.

7. 10. IMDPRDMP

코어 덤프와 TSO 스왑 데이터 세트, 그리고 GTF 추적 데이터를 형식화하여 출력한다.

7. 11. IMDSADMP

메인 스토리지를 고속 또는 저속으로 덤프(dump)하는 독립형 프로그램이다.

8. 지원 프로그램

IBM 메인프레임은 시스템 운영을 지원하기 위해 다양한 유틸리티 프로그램들을 제공한다. 이러한 프로그램들은 시스템 관리자가 효율적으로 작업을 수행하고 시스템 자원을 관리하는 데 도움을 준다.


  • 정렬/병합 (SORT/MERGE): 정렬/병합 유틸리티는 파일의 레코드를 지정된 순서로 정렬하거나, 이미 정렬된 파일들을 병합하는 데 사용된다. COBOL이나 PL/I과 같은 다른 응용 프로그램에서도 호출될 수 있다.[7] 정렬/병합 프로그램은 레코드 선택/생략, 요약, 중복 제거, 재구성, 간단한 보고서 생성 등 다양한 기능을 제공하며, IBM 및 여러 회사에서 메인프레임용 정렬/병합 패키지를 판매한다.[7]
  • 링커 (Linkers): 링커는 여러 개의 오브젝트 모듈과 제어 카드 등을 결합하여 실행 가능한 로드 모듈을 생성하는 역할을 한다. OS/360에서는 링키지 에디터(Linkage Editor)가 사용되었으며, 이후 DFSMSdfp에서는 바인더(Binder)가 추가되어 프로그램 객체도 지원하게 되었다.
  • 어셈블러 (Assemblers): 어셈블러는 어셈블리어로 작성된 소스 코드를 기계어로 번역하는 프로그램이다. 시스템 생성(SYSGEN) 및 사용자 정의를 위해 사용되며, IETASM, IEUASM, IFOX00, IEV90, ASMA90 등 다양한 버전의 어셈블러가 제공되었다.
  • 컴파일러 (Compilers): 컴파일러는 ALGOL, COBOL, FORTRAN, PL/I, RPG 등 고급 프로그래밍 언어로 작성된 소스 코드를 기계어 오브젝트 모듈로 변환한다. 이 오브젝트 모듈은 링키지 에디터를 통해 실행 가능한 로드 모듈로 만들어진다.
  • 시스템 수정 프로그램 (SMP): SMP는 OS/360 및 후속 시스템에 서비스를 설치하는 데 사용되는 프로그램이다. 초기에는 선택 사항이었으나, MVS/SP 이후부터는 필수 요소가 되었으며, 현재는 SMP/E라는 프로그램 제품 버전이 z/OS와 같은 최신 시스템에 포함되어 있다.

8. 1. SORT

정렬/병합 유틸리티는 파일의 레코드를 지정된 순서로 정렬하거나, 미리 정렬된 파일을 병합하는 프로그램이다. 메인프레임 환경에서 매우 자주 사용되며, 가장 일반적인 응용 프로그램 중 하나이다. 최신 정렬/병합 프로그램은 특정 레코드를 선택/생략, 레코드 요약, 중복 제거, 레코드 재구성, 간단한 보고서 생성을 할 수 있다. 여러 회사에서 IBM 메인프레임용 정렬/병합 패키지를 판매할 정도로 중요하다.[7]

IBM의 OS/360 정렬/병합 프로그램(360S-SM-023, 프로그램 이름 IERRCO00, 별칭 SORT)은 1세대 직접 접근 저장 장치(DASD)와 테이프(2400)만 지원했다. 2세대 디스크 드라이브 지원은 5734-SM1 및 5740-SM1(DFSORT, 별칭 ICEMAN, SORT)과 같은 IBM 프로그램 제품을 통해 제공되었다.

SORT는 독립 실행형 프로그램으로 자주 실행되며, DD `SORTIN`으로 식별된 파일에서 입력을 읽고 DD `SORTOUT`으로 식별된 파일에 정렬된 출력을 쓴다. COBOL `SORT` 동사 또는 PL/I `PLISRTx` 루틴 호출을 통해 다른 응용 프로그램에서 호출될 수 있으며, `SORTIN` 또는 `SORTOUT` 파일을 사용하거나, 정렬 레코드를 호출자가 전달/정렬된 레코드를 호출자에게 반환 할 수 있다.

SORT 작동은 제어 문에 의해 지시되며, IBM 및 타사 정렬 프로그램 간에 상당 부분 호환된다. `SORT` 또는 `MERGE` 문은 데이터를 정렬/병합할 ''정렬 키''를 정의하며, 각 키의 위치, 길이, 데이터 유형을 식별한다. `RECORD` 문은 입력 파일의 레코드 형식과 길이를 설명한다. 다른 문을 통해 정렬 포함/제외 레코드를 지정, 데이터에 수행할 변환을 지정할 수 있다.

키는 EBCDIC/ASCII 문자 데이터, 영역/팩형 10진수, 부호 있는/없는 고정 소수점 바이너리/16진수 부동 소수점의 조합일 수 있다. 키는 레코드의 어느 위치에나 있을 수 있으며 연속적일 필요는 없다. 정렬은 키별 오름차순 및 내림차순 시퀀스의 모든 조합으로 지정할 수 있다.[7]

OS/360 정렬 프로그램 IERRCO00은 입력 데이터를 섹션으로 분할, 각 섹션을 주 메모리에서 정렬, 정렬된 섹션을 직접 접근 저장 장치(DASD) 또는 자기 테이프의 중간 데이터 세트에 기록한다. 최종 병합 단계는 섹션을 병합하여 정렬된 출력을 생성한다. SORT는 섹션을 보조 저장 장치에 분산하기 위해 여러 기술 중 하나를 사용한다. 일반적으로 SORT는 최적 기술을 선택할 수 있지만 사용자가 재정의할 수 있다.[8] SORT는 중간 저장소가 테이프인 경우 세 가지, 디스크인 경우 두 가지 기술을 가지고 있다.[9]

테이프 기술은 다음과 같다.

  • 균형(BALN) - 중간 저장소에 더 많은 테이프 드라이브를 사용할 수 있는 경우 더 효율적이다.
  • 폴리페이즈(POLY) - 중간 저장소에 사용 가능한 테이프 드라이브가 적은 경우 사용된다.
  • 발진(OSCL) - 더 많은 주 저장소를 사용한다. 입력 데이터 세트의 크기를 알아야 하거나 근사해야 한다.


디스크 기술은 다음과 같다.

  • 균형 직접 접근(BALN) - 3~6개의 중간 저장 데이터 세트를 사용한다.
  • 교차형 직접 접근(CRCX) - 6~17개의 중간 저장 데이터 세트를 사용하며, 균형 직접 접근 기술의 두 배의 주 저장소를 필요로 한다.

8. 2. 링커 (Linkers)

OS/360은 링키지 편집기만 제공했으며, 여러 구성으로 사용 가능했다. DFSMSdfp는 로드 모듈의 대안이자 프로그램 객체를 위한 유일한 옵션으로 바인더를 추가했다.

8. 2. 1. 링키지 에디터 (Linkage Editor)

링크 편집기는 제어 카드, 오브젝트 모듈, 기타 로드 모듈을 조합하여 분할 데이터 세트에서 로드 모듈을 생성하고 교체한다. 제어 섹션(CSECT)의 이름을 바꾸거나 교체할 수 있으며, 여러 가지 기타 기능을 수행할 수 있다.[1] 원래는 스토리지 요구 사항에 따라 여러 구성으로 제공되었지만, E 레벨 링크 편집기는 더 이상 사용할 수 없으며, F 레벨 링크 편집기는 이제 단순히 링크 편집기로 알려져 있다.[1] z/OS에서 링크 편집기는 호환성을 위해서만 존재한다.[1]

8. 2. 2. 바인더 (Binder)

DFSMS에 추가되었으며, 링키지 에디터와 동일한 기능을 수행한다. 또한, 분할 데이터 세트 확장(PDSE)의 로드 모듈과 기능적으로 동일하며, 프로그램 객체를 지원하여 많은 추가 기능을 제공한다.

8. 3. 어셈블러 (Assemblers)

시스템 생성 (SYSGEN) 및 사용자 정의를 위해 하나의 어셈블러가 일반적으로 표준으로 사용되었다.

8. 3. 1. IETASM

어셈블러 (E)는 매우 작은 머신에서 실행되는 OS/360용으로 설계되었다.

8. 3. 2. IEUASM

어셈블러 (F)는 일반적인 OS/360 설치를 위해 사용되었다.

8. 3. 3. IFOX00

어셈블러 (XF)는 OS/VS1 및 OS/VS2의 시스템 어셈블러였으며, 어셈블러 (E) 및 (F)를 대체했지만 완전히 호환되지는 않았다.[1] IBM은 곧 어셈블러 (XF)를 DOS 및 VM의 시스템 어셈블러로 만들었다.[1]

8. 3. 4. IEV90

어셈블러 (H) 및 어셈블러 (H) 버전 2는 어셈블러 E, F, XF보다 일반적으로 더 빠른 프로그램 제품 어셈블러이지만, 이들과 완전히 호환되지는 않는다.

8. 3. 5. ASMA90

IBM 고급 어셈블러(HLASM)는 기본적으로 어셈블러(H) 버전 2의 새로운 버전이며, IBM이 z/OS 및 z/VM에서 지원하는 유일한 어셈블러이다. 이전 어셈블러를 모두 대체하지만, 완전히 호환되지는 않는다.

8. 4. 컴파일러 (Compilers)

컴퓨터 상점에서 사용되는 각 프로그래밍 언어는 소스 프로그램을 기계어 오브젝트 모듈로 변환하는 하나 이상의 관련 컴파일러를 갖는다. 그런 다음 컴파일러에서 생성된 오브젝트 모듈은 실행 가능한 로드 모듈을 생성하기 위해 링키지 에디터인 IEWL에 의해 처리되어야 한다.[1]

IGYCRCTL은 컴파일러의 일반적인 예시이며, 현재 IBM 엔터프라이즈 COBOL for z/OS 제품의 컴파일러이다. (사용자가 현재 버전에 대한 별칭 `COBOL`을 제공할 수 있지만, 수년에 걸쳐 여러 개의 이전 IBM COBOL 컴파일러가 있었고 이름도 달랐다.) 다양한 다른 프로그래밍 언어를 위한 많은 다른 컴파일러가 있다.[1]

IBM에서 제공하는 컴파일러로는 ALGOL, COBOL, FORTRAN, PL/I, RPG가 있다.[1]

8. 5. System Modification Program (SMP)

시스템 수정 프로그램(SMP)은 OS/360 및 후속 시스템에 서비스를 설치하는 수단으로, 독립 실행형 어셈블리, 링크 편집 및 IMAPTFLE 작업을 대체한다. 원래는 선택 사항이었지만, MVS/SP 이후부터는 필수 사항이 되었으며, 프로그램 제품 버전인 SMP/E는 z/OS와 같은 최신 시스템에 포함되어 있다.

참조

[1] 서적 IBM System/360 Operating System: Utilities http://bitsavers.org[...] IBM Corporation 1970-06
[1] 서적 OS Utilities - Program Numbers 360S-UT-506 360S-UT-507 http://bitsavers.org[...] IBM Corporation 1973-04
[2] 서적 IBM System/360 Operating System: Service Aids OS Release 21 http://bitsavers.org[...] IBM Corporation 1972-03
[3] 서적 MVS/Extended Architecture Conversion Notebook http://bitsavers.org[...] 1984-05
[4] 서적 OS/VS2 Planning Guide https://bitsavers.or[...] IBM Corporatopn 2024-01-05
[5] 서적 IBM System/360 Operating System Utilities Program Logic Manual http://www.bitsavers[...] IBM Corporation 2024-01-04
[6] 서적 z/OS MVS Diagnosis: Tools and Service Aids Version 2 Release 3 https://www-01.ibm.c[...] IBM Corporation 2018-07-20
[7] 서적 DFSORT Application Programming Guide http://publibz.bould[...] IBM Corporation 2017-03-28
[8] 서적 OS Sort/Merge Program Program Number 360S-SM-023 OS~Release 21 http://bitsavers.org[...] IBM Corporation 1973-02
[9] 서적 OS Sort/Merge Program Program Number 360S-SM-023 OS~Release 21 http://bitsavers.org[...] IBM Corporation 2018-04-02
[10] 서적 IBM System/360 Operating System: Utilities http://bitsavers.org[...] IBM Corporation 1970-06
[11] 서적 IBM System/360 Operating System: Service Aids OS Release 21 http://bitsavers.org[...] IBM Corporation 1972-03
[12] 웹인용 GC28-1143-2, MVS/XA Conversion Notebook, May 1984, page 1-1 http://bitsavers.tra[...] 2014-11-23



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com