데이터 세트 (IBM 메인프레임)
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
데이터 세트는 OS/360 및 z/OS 운영 체제에서 사용되는 IBM 메인프레임의 데이터 저장 단위이다. 데이터 세트는 데이터 제어 블록(DCB)의 DSORG 매개변수를 통해 구성되며, 물리적 순차(PS), 색인 순차(IS), 파티션(PO) 등 다양한 방식으로 구성될 수 있다. 데이터 세트는 레코드 형식(RECFM)을 통해 고정 길이 또는 가변 길이 레코드를 지원하며, 블록화된 형태로 데이터를 저장할 수 있다. 파티션 데이터 세트(PDS)는 여러 멤버를 포함하여 파일 시스템의 디렉토리와 유사하게 사용되며, 실행 프로그램, 소스 프로그램 라이브러리 등을 저장하는 데 활용된다. PDS의 개선된 형태인 분할 데이터 세트 확장(PDSE)은 자동 멤버 저장 및 디렉토리 관리를 통해 PDS의 단점을 보완한다. 생성 데이터 그룹(GDG)은 역사적으로 관련된 데이터의 연속적인 세대를 관리하는 데 사용되는 비-VSAM 데이터 세트 그룹이다.
더 읽어볼만한 페이지
- 컴퓨터 파일 - 전자 문서
전자 문서는 19세기 전신 기술에서 시작되어 컴퓨터 기술 발전과 함께 발전해 온, 정보를 전자적인 형태로 기록한 문서를 의미하며, 파일 포맷 비호환성 등의 과제 해결 노력과 함께 대한민국에서는 법적 효력을 인정받고 신뢰성을 높이는 제도들이 시행되고 있다. - 컴퓨터 파일 - 긴 파일 이름
긴 파일 이름은 FAT 파일 시스템에서 긴 파일 이름을 지원하기 위해 사용되는 기술이며, 마이크로소프트는 VFAT 규칙을 통해 호환성을 확보하고 윈도우 95에서 처음 LFN을 도입했다. - IBM 메인프레임 운영 체제 - OS/390
OS/390은 1995년에 출시된 IBM의 운영 체제 패키지로, MVS 운영 체제 핵심 요소를 통합하여 신뢰성, 가용성, 서비스 가능성을 향상시켰으며, 2004년에 지원이 종료되었다. - IBM 메인프레임 운영 체제 - OS/360
OS/360은 IBM System/360 제품군을 위해 개발된 범용 운영 체제로, 상업 및 과학 기술 계산을 지원하고 일괄 처리 시스템에서 발전하여 EBCDIC 문자 코드를 채용하고 자기 디스크 장치를 다루는 최초의 OS가 되었으며, 현재의 IBM 메인프레임 OS인 z/OS의 계승자로서 퍼블릭 도메인으로 공개되어 Hercules 에뮬레이터를 통해 실행 가능하다. - 파일 시스템 - 부트 섹터
부트 섹터는 시스템 부팅 코드를 담은 저장 매체의 특정 영역으로, 볼륨 부트 레코드(VBR)와 마스터 부트 레코드(MBR)로 나뉘며, BIOS는 이를 실행하고 UEFI는 부트로더를 직접 로드하지만 바이러스 공격에 취약하다. - 파일 시스템 - ZFS
ZFS는 Jeff Bonwick 등이 설계하고 구현한 파일 시스템으로, 데이터 무결성, 스냅샷, RAID-Z 등의 기능을 제공하며, 썬 마이크로시스템즈에서 개발되어 OpenZFS 프로젝트를 통해 다양한 운영체제에서 사용된다.
데이터 세트 (IBM 메인프레임) | |
---|---|
데이터 세트 정보 | |
종류 | 파일 |
사용 운영체제 | IBM 메인프레임 운영체제 |
설명 | 하나 이상의 레코드를 포함하는 파일 |
레코드 형식 | 고정 길이 또는 가변 길이 |
특징 | 자기 테이프에 데이터 세트를 카탈로그화 가능 |
2. 데이터 세트 조직 (Data Set Organization)
OS/360에서 DCB의 DSORG 매개변수는 데이터 세트가 어떻게 조직되어 있는지를 규정한다.[5] 데이터 세트는 물리적 순차(PS), 색인 순차(IS), 파티션(PO), 직접 접근(DA) 방식으로 구성될 수 있다. 테이프 데이터 세트는 DSORG=PS로만 지정된다. 조직의 선택은 데이터 접근 방식, 특히 데이터 갱신 방식에 따라 결정된다.
프로그래머들은 QSAM이나 VSAM 등 다양한 접근 방식을 사용하여 데이터 세트를 읽고 쓴다.[5]
2. 1. 접근 방식 (Access Methods)
프로그래머들은 프로그램에서 데이터 세트를 읽고 쓰기 위해 다양한 접근 방식 (QSAM, VSAM 등)을 사용한다.[5] 접근 방식은 주어진 데이터 세트 조직에 따라 달라진다.OS/360의 경우, DCB의 `DSORG` 매개변수는 데이터 세트가 구성되는 방식을 지정한다. 다음과 같다.[5]
약어 | 설명 |
---|---|
CQ | 큐 통신 접근 방식(QTAM) (Message Control Program, MCP) |
CX | 통신 회선 그룹 |
DA | 기본 직접 접근 방식(BDAM) |
GS | 그래픽스 접근 방식(GAM)용 그래픽 장치 |
IS | 색인 순차 접근 방식(ISAM) |
MQ | 애플리케이션 내의 QTAM 메시지 큐 |
PO | 분할된 조직 |
PS | 물리적 순차 |
OS/360 및 z/OS에서 데이터 세트의 레코드 형식은 DCB의 `RECFM` (레코드 형식) 매개변수로 정의된다.[6] `RECFM=F`는 고정 길이 레코드를 의미하며, `LRECL` (논리 레코드 길이) 매개변수로 길이를 지정한다. `RECFM=V`는 가변 길이 레코드를 나타내며, 레코드 맨 앞에 길이 정보를 가진 레코드 기술어(Record Descriptor Word, RDW)가 붙는다.
'''파티션 데이터 세트'''(Partitioned Data Set, PDS)는 파일 시스템의 디렉터리와 유사하게, 여러 개의 '''멤버'''(별개의 하위 데이터 세트)를 포함하는 데이터 세트이다. PDS는 주로 실행 프로그램(로드 모듈), 소스 프로그램 라이브러리(특히 어셈블러 매크로 정의), 작업 제어 언어(JCL) 등을 저장하는 데 사용된다.[7]
테이프의 데이터 세트는 `DSORG=PS`만 가능하다. 조직의 선택은 데이터 접근 방식, 특히 어떻게 갱신되는지에 따라 달라진다.
3. 레코드 형식 (Record Format, RECFM)
`RECFM=FB`는 블록화된 고정 길이 레코드를, `RECFM=VB`는 블록화된 가변 길이 레코드를 의미한다. 이는 여러 개의 논리 레코드가 테이프나 DASD에서 단일 물리 블록으로 그룹화됨을 의미한다. `BLKSIZE` (블록 크기) 매개변수는 블록의 최대 길이를 지정한다.
`RECFM=FBS` (고정 블록 표준)는 마지막 블록을 제외한 모든 블록이 전체 `BLKSIZE` 길이여야 함을 의미한다.[6] `RECFM=VBS` (가변 블록 분산)는 논리 레코드가 둘 이상의 블록에 걸쳐 있을 수 있음을 의미하며, RDW의 플래그는 레코드 세그먼트가 다음 블록으로 계속 이어지는지, 이전 블록에서 이어지는지를 나타낸다.
이러한 레코드 형식 메커니즘은 레코드 구분을 위한 구분 기호를 사용하지 않는다. 따라서 이진 정수, 부동 소수점, 문자열 등 모든 유형의 데이터를 사용할 수 있다. 이는 UNIX나 Windows, Mac OS 등에서 볼 수 있는 구조화되지 않은 바이트 스트림과는 대조적이다.
4. 파티션 데이터 세트 (Partitioned Data Set, PDS)
PDS의 각 멤버는 디렉터리를 통해 접근하며, 순차 데이터 세트처럼 처리된다. PDS는 단일 볼륨에만 할당할 수 있으며 최대 크기는 65,535 트랙이다. Zip 파일이나 COM 구조화된 스토리지와 비교할 수 있다. PDS는 DASD에만 존재할 수 있으며, 자기 테이프에는 존재할 수 없다. 주로 작업 제어 언어 파일, 유틸리티 제어 명령문, 실행 가능한 모듈을 저장하는 데 사용된다.
4. 1. PDS의 문제점 및 PDSE
PDS는 멤버가 삭제되거나 업데이트될 때 공간 낭비("데드" 공간)가 발생한다. 멤버가 삭제되면 해당 공간은 다른 데이터를 저장하는 데 사용할 수 없게 된다. 멤버가 업데이트되면 PDS 뒤쪽의 새 위치에 저장되어 이전 위치는 "데드" 공간으로 남는다.[8]
이러한 "데드" 공간을 복구하려면 IEBCOPY 유틸리티를 사용하여 압축 작업을 수행해야 한다.[9] 압축은 모든 멤버를 데이터 공간 앞쪽으로 이동시키고 뒤쪽에 사용 가능한 빈 공간을 남기는 방식으로 이루어진다. 이러한 작업은 현대 용어로는 조각 모음 또는 가비지 수집이라고 할 수 있다.[8]
MVS/XA와 MVS/ESA 시스템에서는 DFSMSdfp와 함께 PDSE(Partitioned Data Set Extended, PDS/E, ''라이브러리''라고도 불림)가 도입되었다. PDSE는 PDS와 유사한 구조를 가지며 동일한 유형의 데이터를 저장하는 데 사용되지만, 더 나은 디렉토리 구조를 제공한다. PDSE를 정의할 때는 디렉토리 블록을 미리 할당할 필요가 없으므로 디렉토리 블록이 부족해지는 문제가 발생하지 않는다. 또한 PDSE는 자동 공간 관리 기능을 통해 멤버를 저장하므로, "데드" 공간을 회수하기 위한 압축 작업이 불필요하다.[8]
5. 생성 데이터 그룹 (Generation Data Group, GDG)
'''생성 데이터 그룹'''(Generation Data Group, GDG)[10]은 IBM 메인프레임(OS 또는 DOS/VSE)에서 저장된 역사적으로 관련된 데이터[13]의 연속적인 세대인 비-VSAM 데이터 세트[12] 그룹이다.
GDG는 일반적으로 카탈로그화된다.[13]
GDG 컬렉션의 개별 멤버를 "''생성 데이터 세트''"라고 한다.[13][15] 이들은 절대 번호(`ACCTG.OURGDG(1234)`) 또는 상대 번호(이전 세대는 (-1), 현재 세대는 (0), 다음 세대는 (+1))로 식별될 수 있다.[16]
GDG(세대 데이터 그룹)는 IEHPROGM 유틸리티의 BLDG 문[17] 또는 최신 IDCAMS 유틸리티의 DEFINE GENERATIONGROUP 문[18]을 사용하여 정의되며, 이를 통해 다양한 매개변수를 설정할 수 있다.[19]
매개변수 | 설명 |
---|---|
`LIMIT(10)` | 세대 수를 10개로 제한한다. |
`SCRATCH FOR (91)` | 제한된 세대 수까지 각 멤버를 최소 91일 동안 보존한다. |
6. 한국의 메인프레임 활용과 데이터 세트 관리
Partitioned Data Set|파티션 데이터 세트영어(PDS)는 여러 개의 멤버(member)를 포함하는 데이터 세트로, 각 멤버는 별개의 하위 데이터 세트를 가지고 있다. 이는 다른 종류의 파일 시스템의 디렉터리와 유사하다. 이러한 데이터 세트는 주로 실행 프로그램(로드 모듈), 소스 프로그램 라이브러리(특히 어셈블러 매크로 정의), 작업 제어 언어(JCL)를 보관하는 데 사용된다.[1]
PDS는 하나의 디렉토리와, 디렉토리와 관련된 데이터 세트 안에 정리된 작은 순차 파일의 집합으로 구성된다. 각 순차 파일은 PDS의 멤버로 인식되며, PDS 디렉토리를 사용하여 직접 접근할 수 있다. 멤버의 위치가 파악되면, 멤버에 저장된 데이터는 순차 파일(PS 파일)과 동일하게 취급된다.[1]
멤버가 삭제되어도 그 공간은 다른 데이터에 의해 사용될 수 없다. 멤버가 업데이트되면 해당 멤버는 PDS 뒤쪽의 새로운 공간에 저장되고, 원래 위치는 데드 스페이스로 남는다. 이를 해결하려면 모든 멤버를 이동하여 데이터 세트 공간의 맨 앞에서 정렬하고 뒤쪽에 사용하지 않는 공간을 남기는 압축 작업을 수행해야 한다. PDS 파일은 개별 멤버 접근에 디렉터리 구조를 사용하므로 디스크에만 기록할 수 있다. PDS 파일은 실행할 JCL, IBM 메인프레임 유틸리티 프로그램의 제어문, 실행 모듈을 저장하는 데 주로 사용된다.[1]
MVS/XA부터는 Partitioned DATA set Extended|파티션 데이터 세트 확장영어(PDSE) 파일도 사용된다. PDSE 파일 구조는 PDS 파일과 매우 유사하며, 동일한 유형의 데이터를 저장하는 데 사용된다. 그러나 PDSE 파일은 정의 시 디렉터리 블록 할당을 요구하지 않는 개선된 디렉터리 구조를 가지고 있다. 따라서 디렉터리 블록에 충분한 양을 지정하지 않아도 디렉터리 블록을 모두 소진하는 문제가 발생하지 않는다. PDSE 파일은 멤버 저장 시 데드 스페이스를 재생하는 압축을 필요로 하지 않는다. PDS 파일과 마찬가지로, PDSE 파일도 개별 멤버 접근에 디렉터리 구조를 사용하므로 디스크에만 기록할 수 있다. PDSE 파일은 라이브러리라고도 불린다.[1]
참조
[1]
웹사이트
What is a catalog?
https://www.ibm.com/[...]
[2]
웹사이트
IBM Knowledge Center - Home of IBM product documentation
http://publib.boulde[...]
[3]
웹사이트
What is a data set?
https://www.ibm.com/[...]
[4]
웹사이트
Data set record formats
https://www.ibm.com/[...]
[5]
manual
IBM System/3S0 Operating System: Job Control Language Reference - OS Release 21.7
http://bitsavers.org[...]
IBM
[6]
웹사이트
Example: Record format VBS
https://www.ibm.com/[...]
[7]
서적
z/OS DFSMS Using Data Sets Version 2 Release 3
https://www-01.ibm.c[...]
2018-10-02
[8]
서적
What On Earth is a Mainframe?
https://books.google[...]
Lulu.com
2018-05-11
[9]
서적
z/OS DFSMSdfp Utilities Version 2 Release 3
https://www-01.ibm.c[...]
IBM Corporation
2017-07-17
[10]
웹사이트
Generation Data Groups (GDG's), an Introduction with Examples
http://www.simotime.[...]
[11]
웹사이트
JCL TUTORIAL REFERENCE - Generation Data Groups
http://www.mainframe[...]
[12]
웹사이트
What is a generation data group?
https://www.ibm.com/[...]
[13]
웹사이트
Generation data sets
https://www.ibm.com/[...]
[14]
웹사이트
VSE/VSAM Commands
http://ftp.www.ibm.c[...]
[15]
문서
A generation data set is one of ...
[16]
웹사이트
What is a GDG?
http://mainframewiza[...]
[17]
manual
OS Utilities
http://bitsavers.org[...]
IBM
2022-05-19
[18]
manual
OS/VS Access Method Services
http://bitsavers.org[...]
IBM
2022-05-19
[19]
웹사이트
IBM How to create and use Generation Data Groups (GDG)
https://www.ibm.com/[...]
2012-03-02
[20]
웹사이트
IDCAMS – Create and delete GDG base using JCL
http://code.xmlgadge[...]
[21]
웹인용
데이터 세트 비교
http://www.ibm.com/s[...]
IBM
2016-11-02
[22]
문서
http://publib.boulder.ibm.com/infocenter/zvm/v5r4/index.jsp?topic=/com.ibm.zvm.v54.hcpa7/hcse7b3050.htm
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com