IBM CP-40
IBM CP-40![]() | |
디벨로퍼 | IBM 캠브리지 과학 센터(CSC) |
---|---|
OS패밀리 | CP/CMS |
작업상태 | 히스토리 |
초기출시 | 1967년 1월; | 전 (
마케팅대상 | IBM 메인프레임 컴퓨터 |
에서 사용 가능 | 영어 |
플랫폼 | 특별히 수정된 독특한 IBM 시스템/360 모델 40 |
체납 사용자 인터페이스 | 명령줄 인터페이스 |
면허증. | 사유지 |
승계인 | CP-67 |
IBM 메인프레임 운영체제의 역사 |
---|
CP-40은 CP-67의 전신으로, 당시 IBM의 혁신적인 CP[-67]/CMS(IBM System/360 Model 67용 가상 머신/가상 메모리 시공유 운영 체제)의 일부였으며, IBM VM 제품군의 모체였습니다.CP-40은 클라이언트 운영 체제의 여러 인스턴스(특히 CMS, Cambridge Monitor System)[1]를 실행했으며, 이는 같은 노력의 일환으로 구축되었습니다.CP-67과 마찬가지로 CP-40 및 CMS의 첫 번째 버전은 IBM의 Cambridge Scientific Center(CSC) 직원이 개발했으며, 프로젝트 MAC 및 Lincoln 연구소의 MIT 연구원들과 긴밀히 협력했습니다.CP-40/CMS 생산은 1967년 1월부터 시작되었습니다.CP-40은 특별히 수정된 IBM System/360 Model 40에서 실행되었습니다.
프로젝트목표
CP-40은 일회성 연구 시스템이었습니다.선언된 목표는 다음과 같습니다.
- 아직 검증되지 않은 가상 메모리 개념으로 새로운 영역을 개척하고 있는 Poughkeepsie에서 근무하는 System/360 Model 67 팀에게 연구 자료를 제공합니다.
- Cambridge에서 CSC의 시분할 요구사항을 지원합니다.
하지만 중요한 비공식 임무도 있었습니다.MIT와 같은 시분할 사용자를 지원하기 위한 IBM의 의지와 능력을 보여주기 위해 CP-40(및 그 후속 제품)은 기술적 및 사회적 관점에서 목표를 달성했습니다. 이는 가상 머신의 실행 가능성을 입증하고 시분할 사용자 문화를 확립하며 원격 컴퓨터 서비스 산업을 시작하는 데 도움이 되었습니다.이 프로젝트는 시분할 대 일괄 처리를 놓고 IBM 내부의 정치적 전쟁에 휘말리게 되었고, 결국 IBM을 멀틱스, UNIX, TENEX 및 다양한 DEC 운영 체제와 같은 시스템으로 외면하게 된 학술 컴퓨터 과학계의 관심을 끌지 못했습니다.결국 CP-40 프로젝트에서 개발된 가상화 개념은 다양한 영역에서 결실을 맺었고, 오늘날에도 여전히 중요한 역할을 하고 있습니다.
특징들
CP-40은 완벽한 가상화를 구현한 최초의 운영 체제로, 즉 대상 컴퓨터 시스템(S/360-40)의 모든 측면을 지원하는 가상 머신 환경을 제공하여 다른 S/360 운영 체제를 독립형 머신에 설치, 테스트 및 사용할 수 있도록 했습니다.CP-40은 14대의 동시 가상 머신을 지원했습니다.각 가상 머신은 "문제 상태"로 실행되었으며, I/O 작업과 같은 권한 있는 지침으로 인해 예외가 발생했으며, 이 지침은 제어 프로그램에 의해 포착되어 시뮬레이션되었습니다.마찬가지로 주 메모리에 존재하지 않는 가상 메모리 위치에 대한 참조는 페이지 장애를 유발하며, 이 장애는 가상 시스템에 반영되기 보다는 제어 프로그램에서 다시 처리되었습니다.이 구현에 대한 자세한 내용은 CP/CMS(아키텍처)에서 확인할 수 있습니다.
CP-40의 기본 아키텍처와 사용자 인터페이스는 CP-67/CMS로 옮겨졌으며, 이는 IBM의 현재 VM 제품군로 진화했습니다.
하드웨어 플랫폼
CP-40을 구축하는 데 모델 67을 사용할 수 없었기 때문에 CSC를 위해 연상 메모리("CAT 박스")[2]를 기반으로 한 맞춤형 가상 메모리 장치가 설계 및 제작되었습니다.특별히 수정된 시스템/360 모델 40에 대한 하드웨어 및 마이크로코드 변경이 포함되었습니다.이러한 변화로 인해 시스템/360 하드웨어의 완전한 가상화에 필요한 기술이 도입되었습니다.이와 같이 수정된 모델 40은 시분할 사용자의 동일한 커뮤니티(특히 MIT의 Project MAC 및 Bell Laboratories)의 요구를 충족시키기 위한 모델 67의 설계에 영향을 미쳤지만, 이 두 사이트 모두 IBM의 판매 실패로 이어졌습니다.
이 기간 동안 IBM은 다음과 같은 세 가지 가상 메모리 시스템을 구현했습니다.
- S/360-67의 원래 디자인의 일부인 "Blaau Box"(게리 블라우의 이름을 따서 명명됨)
- CSC의 S/360-40에 CP-40을 실행하기 위해 추가된 "CAT Box"(Cambridge Address Translator)
- 1972년 S/370 시리즈에 추가로 발표된 "DAT Box" (Dynamic Address Translation)
이 시스템들은 모두 달랐지만, 가족의 유사성을 가지고 있었습니다.CP-40의 CAT 박스는 중요한 이정표였습니다.Pugh [3]등은 CP-40 가상 메모리 하드웨어에 대한 IEEE[4] 논문을 인용하고, "동적 주소 변환 속도를 높이기 위해 병렬 검색 레지스터 뱅크를 포함했다는 점에서 독특합니다. Cambridge에서 자금을 지원받아서 IBM 엔지니어가...64 레지스터 연상 메모리를 만들어 360/40에 통합했습니다. 이 독특한 결과물은 1966년 초에 캠브리지로 운송되었습니다."
CSC의 수정된 모델 40에 대한 가상화 지원이 명시적인 목표였지만, 원래 모델 67 디자인의 경우에는 분명히 그렇지 않았습니다.가상화 기능이 궁극적으로 -67에 구현되어 CP-67/CMS의 성공을 가능하게 했다는 사실은 CSC 팀의 끈기와 설득력을 보여줍니다.
CP-40에 따른 CMS
CMS는 1964년 CSC에서 CP-40에 따라 '클라이언트' 운영체제로 운영하기 위해 처음 만들어졌습니다.CMS 프로젝트 리더는 John Harmon이었습니다.모든 S/360 운영 체제는 CP-40 가상 머신에서 실행할 수 있지만, 대화형 시분할 사용자를 지원하기 위해 단순한 단일 사용자 대화형 운영 체제가 가장 적합하다고 판단했습니다.이렇게 하면 CTSS와 같은 다중 사용자 시스템을 실행할 때 발생하는 복잡성과 오버헤드를 피할 수 있습니다. (이를 IBM의 OS/MVT-TSO 및 그 후속 제품과 비교해 보십시오. – 근본적으로 IBM 배치 운영 체제에서 단일 작업으로 실행되는 시분할 운영 체제입니다.CMS를 사용하면 각 대화형 사용자가 개인 가상 시스템을 갖게 됩니다.)
1965년 9월까지 이미 많은 중요한 CMS 설계 결정이 이루어졌습니다.
- 기본 모드, 가능한 한 필요 없는 매개 변수가 포함된 사용자 친화적인 명령어(사용 편의성 및 교육, 작업 제어 요구 사항 최소화)
- 파일 시스템 기본 명령 및 매크로 세트; 파일 이름, 파일 형식 및 파일 모드를 기반으로 하는 간단한 파일 이름 지정 규칙(파일 모드 = 논리 디스크 식별자 또는 미니디스크, 드라이브 문자 할당의 한 형태)
- 상대 레코드 번호로 읽거나 쓸 수 있는 고정 크기 블록에 매핑된 레코드
- 특별한 '생성' 작업 없이도 사용자에게 쓰기만 하면 생성할 수 있는 파일
- 디스크를 고정된 순서로 검색할 수 있는 기본 파일 모드
이는 까다로운 파일 이름 지정, JCL을 통한 작업 제어 및 IBM의 "진짜" 운영 [5]체제의 기타 요구 사항과 근본적으로 동떨어진 것이었습니다. (이러한 개념 중 일부는 Control Data Corporation 및 DEC와 같은 다른 벤더의 운영 체제를 위한 목표였습니다.)
CMS 파일 시스템 설계는 평면 디렉터리 구조로 의도적으로 단순하게 유지되었습니다.Creasy notes: "각각 하나의 디렉토리를 가진 여러 개의 디스크 구조는 간단하지만 유용하게 선택되었습니다.파일이 공통 영역에 저장되는 다단계 연결 디렉토리는 우리가 시작할 때 디자인 트렌드였습니다.우리는 CMS의 다른 구성 요소들과 이것의 설계를 단순화하여 구현의 [6]복잡성을 줄였습니다."
CMS에서 실행되는 응용 프로그램은 동일한 주소 공간 내에서 실행됩니다.그들은 CMS 가상 머신 내의 저메모리에 상주하는 CMS 핵에 대한 간단한 프로그래밍 인터페이스를 통해 CMS 파일 시스템과 같은 시스템 서비스에 액세스했습니다.다양한 시스템 호출이 제공되었으며, 대부분의 시스템 호출은 현재 CMS 프로그래머들에게 친숙합니다. 애플리케이션이 CMS 가상 머신에서 실행되었기 때문에 CMS 데이터를 덮어쓰거나, 권한 있는 명령을 사용하거나, 가상 머신을 인계받거나 손상시킬 수 있는 다른 작업을 수행함으로써 잠재적으로 잘못된 행동을 할 수 있습니다.물론 그렇게 하면 서로 격리된 다른 가상 머신에 영향을 줄 수도 없고 기본 제어 프로그램을 손상시킬 수도 없습니다.대부분의 운영 체제와 달리 CP 크래시는 애플리케이션 오류에서 비롯된 경우가 거의 없었기 때문에 그 자체가 상대적으로 드물었습니다.)
역사적 기록
다음 노트에는 CP-40의 개발 맥락을 설명하는 주로 Pugh, Varian 및 Creasy[참고 자료 참조]의 간략한 인용문이 나와 있습니다. 저자의 관점이 해석을 색칠하기 때문에, 여기서는 패러프레이즈가 아닌 직접 인용문이 제공됩니다.또한 추가 컨텍스트는 CP/CMS 기록을 참조하십시오.
- CP-40 프로젝트의 창세기:
- CSC의 Rasmussen은 TSS/360에 대해 "매우 의구심"을 느꼈고, 유휴 CSC 리소스를 CP-40으로 알려진 "S/360용 신뢰할 수 있는 시분할 시스템"을 만드는 데 사용해야 한다고 결정했습니다. 프로젝트 리더는 CTSS [7]프로그래머였던 Robert Creasy였습니다.
- CP-40 목표에는 연구 수행(연관 메모리 사용을 포함한 시스템 및 소프트웨어에 대한 데이터 획득 및 분석)과 시분할을 통한 CSC 자체 컴퓨팅 요구사항 충족이 모두 포함되었습니다.Varian은 "그 프로젝트의 진짜 목적은 시분할 시스템을 만드는 것이었지만, 다른 목적들도 사실이었고, 그것들은 그 프로젝트의 "대항 전략적인" 측면들을 위장하기 위해 항상 강조되었습니다.Creasy는 CP/CMS 목표를 다음과 같이 설명합니다."새롭게 발표된 IBM System/360의 2세대 시분할 시스템...프로그래머, 과학자, 비서 및 관리자에 의한 운영 체제 연구, 응용 프로그램 개발 및 보고서 작성과 같은 다양한 활동을 포함하여 캠브리지 센터의 모든 활동을 지원합니다.시스템이 시작된 지 얼마 지나지 않아 운영 [8]체제의 성능을 평가하고 테스트하는 도구로서 센터 외부에서 시스템을 인정받고 재정적으로 지원할 수 있다는 점이 편리했습니다."
- CSC의 연구는 IBM에게 중요했는데, 당시에는 "가상 메모리 시스템에 대해 실제로 알려진 것이 많지 않았다."Varian은 L.W. Comeau의 말을 인용합니다. "[IBM의] 가상 메모리에 대한 노력은 성공적인 경험 없이 뒷받침되었습니다...무서운 것은 IBM에서 이 가상 메모리 방향을 설정하던 사람들 중 아무도 [현대의 가상 메모리 시스템인 Ferranti] Atlas가 왜 작동하지 않았는지 몰랐다는 것입니다."(Comau는 나중에 Atlas가 스레싱을 겪었다고 결론지었으며, 이는 IBM M44/44X와 CP-40에서 관측되기 전까지는 연구되지 않았습니다.)[9][10]
- CP-40 설계:Pugh et al. "1964년에...IBM Research는 시분할 계획자들에게 가상 머신 원리의 사용을 권장하고 있었습니다.Cambridge[CSC] 팀은 무엇보다도 운영 체제를 테스트할 수 있는 시스템을 원했습니다."1964년 말 Creasy와 Comeau가 결정한 주요 설계 결정은 CP-40을 가상 메모리뿐만 아니라 가상 머신([11]처음에는 의사 머신이라고 불렸지만 나중에 IBM M44/44X 프로젝트에서 전용되기 전까지)에 기반하는 것이었습니다.Creasy는 S/360 명령어 세트를 기반으로 CP의 가상화 전략을 명확하게 설명합니다. S/360 명령어 세트는 일반적인 '문제 상태' 명령어와 구분되는 권한 있는 '슈퍼바이저 상태' 명령어로 구성되어 있습니다. "각 [CP] 가상 머신 프로그램은 실제로 [전체] 문제 상태에서 실행됩니다. ..권한 있는 지시사항...가상 머신 내에서 CP가 [re] 재현합니다." 문제 상태에서 OS를 실행하면 하드웨어가 모든 '꼼수' 명령을 자동으로 가로채게 됩니다.이로 인해 메모리 참조라는 한 가지 주요 가상화 문제만 남게 되었습니다."[CTSS를 사용한] 경험을 통해...[12] 프로그램을 서로 독립적으로 메모리 내, 외부 및 메모리 내로 이동할 수 있는 조각으로 분할할 수 있는 동적 프로그램 재배치의 필요성이 제기되었습니다."
- CP-40 가상 시스템:
- IBM M44/44X와 같은 가상 머신 개념과 관련된 이전의 연구 프로젝트는 실제 머신의 정확한 가상 복제를 생성하려고 시도하지 않았습니다."그들은 충분히 가까웠고... "충분히 가깝다는 것을 증명했습니다."
- CP-40은 14개의 가상 S/360 환경을 구축하고, 각각 고정된 가상 메모리 크기가 256K이며, 디스크 파티션에 매핑된 액세스 권한을 가지며, 단위 기록 장치(예: 프린터)에 스풀된 액세스 권한을 갖는 완벽한 가상화 단계를 밟았습니다.Comeau: "[완전한 가상화를 구축함으로써] CP와 CMS를 동시에 개발할 수 있게 되었고, 가상 메모리 환경에서 가상 시스템이 아닌 OS와 DOS를 측정할 수 있게 되었으며, 높은 수준의 무결성과 [13][14]보안을 제공했습니다."
- 실험적인 IBM M44/44X는 완전한 가상화의 가치를 드러낼 뿐만 아니라 "가상 머신 개념이 기존의 접근 방식보다 반드시 효율성이 떨어지는 것은 아니라는 생각을 심어주었다"고 할 수 있습니다. CP-40 아키텍처의 핵심적인 가정이며, 궁극적으로 매우 [15]성공적인 것으로 입증되었습니다.
- CP-40은 곧 터미널 제어 하에 "최대 12대의 가상 시스템/360 머신"을 지원하게 될 것입니다 [대부분의 소스는 14개입니다].(CP-67 후에 "침략... 주소 번역...속도를 높여서...CP-40의 용량을 두 배로 늘릴 수 있습니다.)[16]
- CP-40에 따른 CMS:
- Crisy는 CMS와 CP를 분리하기로 한 결정에 대해 다음과 같이 쓰고 있습니다: "CTSS의 구현은 시스템 진화를 위한 모듈형 설계의 필요성을 보여주었습니다.생산 시스템으로는 성공적이었지만, 감독 설계의 상호 연결과 의존성은 확장과 변경을 어렵게 만들었습니다.CP/CMS 설계의 핵심 개념은 컴퓨터 자원 관리와 사용자 지원의 분기였습니다.사실상 [CTSS]의 통합 설계는 CP와 CMS로 분리되었습니다." CTSS 프로젝트에서 얻은 경험의 가치는 아무리 [17]과장해도 지나치지 않습니다.
참고 항목
- CP[-67]/CMS: 널리 사용되는 CP-40의 후속 제품이자 IBM VM 시스템의 전신
- CP-40과 CP/CMS가 세워진 캠브리지 과학센터
- IBM M44/44X, 현대의 실험적 페이징 시스템
- CP/CMS의 연혁, CP-40의 작성에 이르게 된 사건 및 쟁점에 대한 검토
- 시분할 시스템 진화
참고문헌
- ^ Control Program-67/Cambridge Monitor System (GH20-0857-1). IBM. October 1971.
- ^ Varian (1997), p. 11 ("CAT box")
- ^ Pugh, Johnson & Palmer (1991), p. 741 (주 218 ~ 6)
- ^ A.B. Lindquist; R.R. Seeber; L.W. Comeau (December 1966). "A time-sharing system using an associative memory". Proceedings of the IEEE. 54 (12): 1774–1779. doi:10.1109/PROC.1966.5261.
- ^ Varian (1997), p. 14 – CMS 인터페이스의 신규성
- ^ Creasy (1981), 페이지 489 – 플랫 파일 시스템
- ^ Varian (1997), pp. 3, 9, 16 – CP-40 프로젝트 시작
- ^ Creasy (1981), p. 485 – 디자인 목표
- ^ W. O'Neill, "동적 주소 재배치 하드웨어로 시분할 멀티프로그래밍 시스템 사용 경험", Proc AFIPS Computer Conference 30 (Spring Joint Computer Conference, 1967), 페이지 611-621 – IBM M44/44X에 대한 강타
- ^ L.W. Comeau, "Operating System/360 Paging Studies", IBM Storage Hierarchy System Symposium, 1966년 12월 – Atlas를 강타, Varian(1997), p. 17.
- ^ Creasy(1981), 페이지 485 – IBM M44/44X와 유사하지만 독립적임
- ^ Creasy(1981), 페이지 486 – 가상화 전략: 문제 상태 실행 및 주소 변환
- ^ Varian (1997), pp. 9, 13
- ^ Comeau (1982), pp. 40, 42–43, Varian (1997), pp. 9, 13
- ^ L. 토킹턴, "좋은 아이디어와 여전히 성장 중", 화이트 플레인스 개발 센터 뉴스레터, Vol. 2, No. 3(1969년 3월), Varian(1997), p. 10.
- ^ Pugh, Johnson & Palmer (1991), pp. 364–365
- ^ Creasy(1981), 페이지 485 – CMS에서 CP 분리
- ^ Creasy(1981), 페이지 485 – CMS 범위
- ^ Varian (1997), 페이지 12, 15–16 – BPS 하에서 CMS 부팅
추가열람
- Adair, R. J.; Bayles, R. U.; Comeau, L. W.; Creasy, R. J. (1966). A virtual machine system for the 360/40 (Report). Cambridge, MA: IBM, Cambridge Scientific Center. Report 320-2007.Varian (1997)과 Creasy (1981)에서 Adair, R. J.; Bayles, R. U.; Comeau, L. W.; Creasy, R. J. (1966). A virtual machine system for the 360/40 (Report). Cambridge, MA: IBM, Cambridge Scientific Center. Report 320-2007.인용됨
- Comeau, L. W. (September 1982). "CP-40, the Origin of VM/370". Proceedings of SEAS AM82.
- Creasy, R. J. (1981). "The origin of the VM/370 time-sharing system" (PDF). IBM Journal of Research & Development. 25 (5): 483–490. doi:10.1147/rd.255.0483.
- Lingquist, A. B.; Seeber, R. R.; Comeau, L. W. (1966). "A time sharing system using an associative memory". Proc. IEEE. 54 (12): 1774–1779. doi:10.1109/PROC.1966.5261.
- Pugh, Emerson W.; Johnson, Lyle R.; Palmer, John H. (1991). IBM's 360 and Early 370 Systems. Cambridge MA: MIT Press. ISBN 0-262-16123-0.
- Varian, Melinda (1997). VM and the VM community, past present, and future (PDF). SHARE 89 Sessions 9059-9061.
가계도
→ 파생 >> 강력한 영향 > 일부 영향력 / 선행 | ||
CTSS | ||
> IBM M44/44X | ||
>> CP-40/CMS → CP[-67]/CMS | → VM/370 → VM/SE 버전 → VM/SP 버전 → VM/XA 버전 → VM/ESA → z/VM | |
→ VP/CSS | ||
> TSS/360 | ||
> MVT용 TSO → for OS/VS2 → for MVS → ...→ z/OS용 | ||
>> MULTICS 및 기타 대부분의 시간 공유 플랫폼 |