MUSIC/SP

**MUSIC/SP**(Multi-User System for Interactive Computing/System Product; 원래 McGill University System for Interactive Computing)는 1970년대에 맥길 대학교에서 초기 IBM 시분할 시스템인 RAX(원격 접근 컴퓨팅 시스템)에서 개발되었다.

이 시스템은 IBM S/360, S/370 및 4300 시리즈 메인프레임 하드웨어에서 실행되었으며, 파일 접근 제어 및 데이터 압축과 같은 당시에는 새로운 기능을 제공했다. 대부분의 메인프레임 컴퓨팅이 여전히 천공 카드로 이루어지던 시대에, 학계와 학생들이 단말기에서 대화식으로 프로그램을 만들고 실행할 수 있도록 설계되었다. 수년에 걸쳐 개발이 계속되었고, 이 시스템은 전자우편, 인터넷 그리고 궁극적으로 월드 와이드 웹을 포괄하도록 진화했다. 1980년대 후반에 정점에 달했을 때, 북아메리카와 남아메리카, 유럽 및 아시아에서 200개 이상의 대학, 단과대학 및 고등학교 교육구가 이 시스템을 사용했다.

MUSIC은 원래 독립형 운영체제로 설계되었지만, IBM의 가상 머신 기능인 VM/370의 등장으로, VM/370에서 실행되는 게스트 운영체제로 MUSIC을 배포하는 것이 더 일반적이 되었다.

## 역사
* 1966년 – IBM 원격 접근 컴퓨팅 시스템 (RAX) 출시.
* 1972년 – 맥길의 RAX 수정본이 IBM에 의해 "McGill University System for Interactive Computing" (MUSIC)이라는 이름으로 "설치된 사용자 프로그램"으로 배포 승인.
* 1978년 – MUSIC 4.0 파일 시스템에 주요 변경사항 적용, 더 긴 파일 이름 및 고급 접근 제어 제공.
* 1981년 – MUSIC 5.0 IBM 4300 시리즈 CPU 및 FBA 디스크 지원.
* 1985년 – MUSIC/SP 1.0 IBM에 의해 "시스템 제품"으로 채택. 가상 메모리 지원.
* 1990년 – IBM이 "상당한 개선"이 있다고 설명한 MUSIC/SP 2.2.
* 1991년 – MUSIC/SP 2.3 인터넷 지원 및 트리 구조 파일 시스템.

수년에 걸쳐 다음과 같은 사람들이 MUSIC 및 MUSIC/SP 시스템에 기여했다.
로이 밀러, 앨런 그린버그, 윌프 만델, 데이브 에드워즈, 넬슨 응우옌,
케빈 맥나미, 돈 판스워스 (IBM), 딘 다니엘 (IBM), 글렌 매튜스, 린다 체르나브로,
프랭크 페티니키오, 얼 린드버그, 피에르 고예트, 캐시 윌모트,
사이먼 풀링거, 데이비드 소프, 제럴드 래처, 해리 윌리엄스 (마리스트 칼리지),
데이브 주라세크 (노던 버지니아 커뮤니티 칼리지), 크리스티앙 로베르 (에콜 폴리테크니크),
시몬 스필러, 실비노 메짜리, 그리고 마이크 쇼트.

## 기능
MUSIC/SP와 그 기능에 대한 완전한 설명은 광범위한 문서에서 찾을 수 있다. 주요 기능은 아래에 요약되어 있다.
### 파일 시스템
MUSIC/SP 파일 시스템은 여러 면에서 독특했다. 시스템 전체에 걸친 단일 파일 인덱스가 있었다. 소유자의 사용자 ID와 파일 이름이 이 인덱스에서 파일을 찾기 위해 해시되었으므로, 시스템의 어떤 파일이든 단일 I/O 작업으로 찾을 수 있었다. 그러나 이것은 사용자에게 플랫 파일 시스템을 제공했다. 도스, 마이크로소프트 윈도우 및 유닉스 시스템에서 일반적으로 제공되는 디렉터리 구조가 없었다. 1990년에 파일 시스템의 "트리 구조" 디렉터리 보기가 위에 겹쳐져, 당시 사용 가능했던 파일 시스템과 더 일치하게 되었다. 기본적으로 파일에 저장된 정보는 압축되었다. 이는 디스크 공간을 상당히 절약할 수 있게 해주었다. 파일 시스템은 소유자가 파일 읽기, 쓰기, 추가 및 실행을 제어할 수 있도록 하는 상당히 정교한 접근 제어 체계를 가졌다. 또한 모든 사용자에게 보이는 "공개" 파일과 소유자에게만 보이는 "개인" 파일의 개념도 있었다.

### 가상 메모리
시스템의 초기 버전은 가상 메모리 및 주소 변환을 지원하지 않았다. 한 번에 하나의 활성 사용자만 코어 메모리에 상주할 수 있었다. 스와핑 (디스크로)은 다른 사용자 간의 시분할을 위해 사용되었으며, 가변 길이 타임 슬라이스가 사용되었다. 가상 메모리 지원은 1985년에 도입되었다. 이를 통해 여러 사용자가 동시에 코어 메모리에 있을 수 있게 되었고, 실행할 수 있는 프로그램 크기의 많은 제한을 제거했으며, 상당한 성능 향상을 제공했다. 시스템 성능은 또한 일반적으로 사용되는 모듈을 시작 시 가상 메모리에 미리 로드하여 모든 사용자가 동시에 사용할 수 있도록 함으로써 향상되었다.

### 프로그래밍 언어
이 시스템은 학술 컴퓨팅 및 컴퓨터 과학 교육을 지원하도록 설계되었으므로, 풍부한 프로그래밍 언어 모음이 제공되었다. 시스템 핵심은 IBM/370 어셈블러로 작성되었지만, 대부분의 네이티브 애플리케이션은 포트란으로 작성되었다. 이 시스템은 워털루 WATFIV 및 WATBOL 컴파일러를 지원했으며, 파스칼, C, PL/I, 베이직, APL, 알골, RPG, 및 GPSS용 컴파일러도 제공했다. 1984년 CMS에서 REXX가 포팅될 때까지 시스템에는 명령 스크립팅 언어가 없었다. 나중에 1986년에는 완전히 REXX로 작성된 완전한 사용자 인터페이스가 있었다.

### 전자우편 및 인터넷
전자우편은 MUSIC/SP의 주요 응용 프로그램 중 하나였다. 전자우편 인터페이스는 처음에는 로컬 전자우편에 대한 접근을 제공했다. 네트워크가 발전함에 따라, 이는 BITNET 및 인터넷 기반 전자우편에 대한 접근을 제공하도록 확장되었다. MUSIC/SP는 1990년 위스콘신 대학교의 WiscNet TCP/IP 코드가 시스템에 포팅되어 모든 인터넷 서비스에 대한 접근을 제공할 수 있게 될 때까지 인터넷에 직접 접근할 수 없었다.

### 다른 IBM 시스템과의 호환성
이 시스템의 주요 기능은 IBM의 주류 운영체제(MVS)에서 실행되도록 설계된 프로그램을 실행할 수 있다는 것이었다. 이것은 SVC (Supervisor Call instruction) 수준에서 시스템 호출을 가로채는 MVS 에뮬레이터를 사용하여 달성되었다. 대부분의 타사 응용 프로그램은 이 모드에서 실행되었다. MUSIC/SP 개발자들은 일반적으로 응용 프로그램의 자체 버전을 작성하는 대신 MVS 버전에서 시작하여 MVS 에뮬레이션 모드에서 실행되도록 재구축했다. MVS 에뮬레이션은 실제의 작은 부분 집합이었기 때문에, 응용 프로그램은 일반적으로 MUSIC/SP에서 더 효율적으로 실행되었다.

### 다른 기능
교육 환경에서 이 시스템이 가진 한 가지 주요 장점은 파일 상단에 "제어 카드"라는 특수 라인을 사용하여 지원되는 모든 언어의 소스 파일을 자동으로 적절한 컴파일러(포트란이 기본값)로 보내고, 컴파일, 링크 및 실행할 수 있다는 것이었다(컴파일, 링크 및 실행 옵션도 제어 카드에 지정됨). 이는 단순히 명령줄에 파일 이름을 입력하는 방식으로 이루어졌다.

1980년을 기준으로 다양한 단말기가 지원되었는데, IBM 독점 프로토콜을 사용하는 EBCDIC 기반 장치와 비동기 ASCII 기반 장치 모두 포함되었다. 단말기는 다양한 유형의 전단 처리기를 통해 연결되었기 때문에(당시나 지금이나 일반적인 IBM 시분할 방식과 같음), 상당한 시간 동안 CPU의 개입 없이 기능할 수 있었으며, MUSIC은 가변 길이 타임 슬라이스를 사용했다. 이는 컴퓨트 바운드 처리에서 타임 슬라이스당 최대 몇 초에 도달할 수 있었다. 반대로, 사용자가 출력 버퍼를 채우거나 대화형 읽기에 도달하면 타임 슬라이스는 즉시 종료되었다.

## 에뮬레이션
Sim390 에뮬레이터에는 MUSIC/SP의 데모 시스템이 포함되어 있다. 이는 무료로 제공되며 마이크로소프트 윈도우에서 실행된다. 데모 시스템은 허큘리스에서도 실행된다.

## 같이 보기
* 미시간 터미널 시스템
* 멀틱스
* 시분할 시스템
* 시분할 선택 기능 (TSO)
* VPS/VM Music의 파생물
* 시분할 시스템 진화

## 각주

## 외부 링크
* MUSIC/SP
* Sim390 에뮬레이터
* MUSIC/SP 데모 시스템 다운로드
* 맥길 대학교
* 데모 시스템에서 MUSIC/SP 사용 비디오

분류:맥길 대학교
분류:시분할 운영체제
분류:IBM 메인프레임 운영체제