CMS 파이프라인

CMS Pipelines
파이프라인
Pipjarg1.jpeg
패러다임데이터 흐름 프로그래밍
설계자존 P. 하트만(IBM)
개발자IBM
첫 등장1986
안정적 해제
1.1.12/0012 / 2020-06-03
플랫폼IBM z 시스템즈
OSz/VM 7.1
웹사이트http://vm.marist.edu/~http://vm.marist.edu/
영향을 받은
파이프라인(유닉스)

CMS PipelineVM/CMS 운영 체제에서 파이프라인 개념을 구현한다.파이프라인에 있는 프로그램들은 순차적인 기록 흐름으로 운영된다.프로그램은 파이프라인의 다음 프로그램에서 읽은 레코드를 쓴다.읽기와 쓰기는 장치 독립적인 인터페이스를 통해 이루어지기 때문에 어떤 프로그램도 다른 프로그램과 결합될 수 있다.

개요

CMS Pipeline(CMS 파이프라인)은 CMS 명령을 제공하며PIPE. 에 대한 인수 문자열PIPE명령어는 파이프라인 규격이다.PIPE는 실행할 프로그램을 선택하고 데이터를 펌핑하기 위해 파이프라인을 통해 프로그램을 연결한다.

CMS 프로그램과 유틸리티는 장치 독립적인 stdinstdout 인터페이스를 제공하지 않기 때문에, CMS Pipeline에는 파이프라인 규격으로 호출할 수 있는 프로그램의 라이브러리가 내장되어 있다.이러한 내장형 프로그램은 운영 체제에 접속하여 많은 유틸리티 기능을 수행한다.

CMS의 데이터는 바이트 스트림이 아닌 논리 레코드로 구성된다.텍스트 데이터의 경우 텍스트 행은 논리 레코드에 해당된다.CMS Pipeline에서 데이터는 논리적 기록으로 단계 사이에 전달된다.

CMS Pipeline 사용자는 터미널 또는 Exec 절차에서 파이프라인 명령을 실행한다.사용자는 내장 프로그램 외에 사용할 수 있는 프로그램을 REXX로 작성할 수 있다.

디스크 파일을 읽는 간단한 예는 "Hello" 문자열이 들어 있는 레코드와 그렇지 않은 레코드를 구분하는 것이다.선택한 레코드는 각각에 "World!"라는 문자열을 추가하여 수정하고, 다른 레코드는 대문자로 변환한다.그런 다음 두 스트림을 결합하고 레코드를 새 출력 파일에 기록한다.

파이프 (end ??) < 입력 txt a: locate /Hello/ insert / world!/ i 후: faninany > newfile txt a ?: xlate upper i:

이 예에서는 다음과 같이 한다.<stage는 입력 디스크 파일을 읽고 레코드를 파이프라인의 다음 단계로 전달한다.locate스테이지가 입력 스트림을 두 개의 출력 스트림으로 분리한다.의 1차 출력locate(Hello가 포함된 레코드)는 레코드를insert무대. 무대.insertstage는 인수에 지정된 대로 입력 레코드를 수정하여 출력물에 전달한다.출력이 에 연결되어 있음faninany모든 입력 스트림의 레코드를 결합하여 단일 출력 스트림을 형성한다.출력은 새 디스크 파일에 기록된다.

의 2차 출력locate(2차 발생 시 표시됨)a:라벨)에는 선택 기준을 충족하지 못한 기록이 수록되어 있다.이 기록들은 대문자로 번역된다.xlate스테이지) 및 의 2차 입력 스트림으로 전달faninany(2차 발생 시 표시됨)i:라벨을 붙이다

이 예제의 파이프라인 토폴로지는 두 개의 연결된 파이프라인으로 구성된다.끝 문자(더)?이 예에서)는 파이프라인 세트의 개별 파이프라인을 분리한다.입력 파일에서 읽은 레코드는 파이프라인 토폴로지의 두 경로 중 하나를 통과한다.두 경로 모두 레코드를 버퍼링해야 하는 단계를 포함하지 않기 때문에 CMS Pipeline은 레코드가 다음 위치에 도달하도록 보장한다.faninany그들이 거쳐간 순서대로.locate.

예시 파이프라인은 개별 단계를 별도의 선에 두고 '상상 형태'로 표시한다.파이프라인을 CMS 명령으로 입력하면 모든 단계가 한 줄에 작성된다.

특징들

단순 파이프라인의 개념은 다음과 같은 방식으로 확장된다.

  • 프로그램은 서브루틴 파이프라인을 정의하여 입력 데이터의 전부 또는 일부에 대해 함수를 수행할 수 있다.
  • 교차 파이프라인의 네트워크를 정의할 수 있다.프로그램은 동시에 여러 파이프라인에 있을 수 있으며, 이것은 프로그램이 여러 데이터 스트림에 접근할 수 있게 해준다.
  • 한 단계에서 다음 단계로 전달된 데이터는 기록으로 구성된다.이를 통해 개별 행을 구분하는 특수 문자를 스캔하기 위해 데이터를 임의 버퍼링할 필요 없이 스테이지가 단일 기록으로 작동할 수 있다.
  • 일반적으로 입력 레코드를 사용하기 전에 입력 레코드에 접근하고 출력 레코드를 생성한다.이러한 잠금 단계 접근방식은 데이터를 한 버퍼에서 다른 버퍼로 복사하는 것을 피할 뿐만 아니라, 다중 스트림 파이프라인에서 기록의 흐름을 예측하는 것도 가능하게 한다.
  • 프로그램은 동적으로 파이프라인 토폴로지를 재정의할 수 있다.그것은 자신을 다른 파이프라인으로 대체할 수도 있고, 파이프라인 세그먼트를 자신보다 앞이나 뒤에 삽입할 수도 있고, 혹은 둘 다로 삽입할 수도 있다.프로그램은 파이프라인 사양을 구축하기 위해 파이프라인의 데이터를 사용할 수 있다.

CMS Pipeline(CMS 파이프라인)은 프로그램의 견고성을 개선하기 위한 몇 가지 기능을 제공한다.

  • 전체 파이프라인 구조 또는 하나의 프로그램에서 구문 오류가 발생하면 전체 파이프라인이 억제된다.
  • 파이프라인의 프로그램 시작과 자원 할당은 CMS 파이프라인 디스패쳐에 의해 조정된다.개별 프로그램은 그러한 조정에 참여하여 파이프라인의 모든 프로그램이 주장을 검증할 기회가 있고 데이터를 처리할 준비가 되어 있는 시점까지 되돌릴 수 없는 조치를 연기할 수 있다.송유관이 종료되면, 발송자는 자원이 다시 방출되도록 보장한다.
  • 파이프라인의 데이터 흐름 중에 발생하는 오류는 모든 참여 프로그램에 의해 감지될 수 있다.예를 들어 이러한 상황에서는 디스크 파일이 교체되지 않을 수 있다.

역사

IBM 덴마크의 John Hartmann은 1980년에 CMS Pipeline의 개발을 시작했다.[1]이 제품은 IBM에 의해 80년대에 별도의 제품으로 판매되었고 1991년 말 VM/ESA에 통합되었다.VM의 각 릴리스와 함께 CMS Pipeline 코드도 1997년 VM/ESA 2.3의 1.1.10 수준에서 기능적으로 동결될 때까지 업그레이드되었다.이후 새로운 기능을 탐색하고자 하는 사용자를 위해 CMS Pipeline 홈페이지에서 최신 레벨의 CMS Pipeline을 다운로드할 수 있게 되었다.

CMS Pipeline의 현재 수준은 z/VM 6.4 이후 다시 z/VM 릴리즈에 포함되며, 2016년 11월 11일부터 이용 가능하다.

TSO용 CMS Pipeline의 구현은 BatchPipes/MVS 제품에서 BatchPipeWorks로 1995년에 발표되었다.최신 TSO 구현은 2010년까지 IBM 덴마크에서 서비스 오퍼링으로 제공되었다.

두 버전 모두 단일 소스 코드 베이스에서 유지되며 일반적으로 CMS/TSO 파이프라인이라고 한다.그 명세서는 저자 판에서 구할 수 있다.[2]

참고 항목

참조

  1. ^ VM 및 VM 커뮤니티, Melinda Varian
  2. ^ CMS/TSO 파이프라인 Author's Edition Author's Edition

외부 링크