RC 4000 멀티프로그래밍 시스템
RC 4000 multiprogramming system![]() |
개발자 | 레그네센트랄 |
---|---|
동작 상태 | 단종 |
초기 릴리즈 | 전 |
마케팅 대상 | 조사. |
이용가능기간: | 영어 |
갱신 방법 | 소스 코드에서 컴파일 |
플랫폼 | RC 4000 |
커널 타입 | 마이크로커널 |
RC 4000 멀티프로그래밍 시스템(레퍼런스에 따라 모니터 또는 RC 4000이라고도 함)은 1969년에 RC 4000 미니컴퓨터를 위해 개발된 단종된 운영 체제입니다.알기 쉽게 하기 위해 이 문서에서는 대부분 모니터라는 용어를 사용합니다.
개요
RC 4000 멀티프로그래밍 시스템은 운영체제를 메시지 전달 커널을 통해 통신하는 인터랙티브 프로그램 그룹으로 분해한 최초의 시도로서 역사적으로 주목됩니다.RC 4000은 널리 쓰이지는 않았지만 영향력이 컸으며 1970년대와 1980년대에 운영체제 연구를 지배했던 마이크로커널 개념을 촉발시켰다.
모니터는 주로 RC4000이 설계되고 있는 Regnecentralen에서 일했던 Per Brinch Hansen이라는 프로그래머에 의해 만들어졌습니다.Leif Svalgaard는 모니터 구현 및 테스트에 참여했습니다.브린치 한센은 기존 운영체제가 새로운 기계에 적합하지 않다는 것을 알고 기존 시스템을 적응시키는 데 지쳤다.그는 더 나은 해결책은 상호 작용하는 프로그램에서 운영 체제를 구축하는 데 사용될 수 있는 기본 커널을 구축하는 것이라고 느꼈다.예를 들어 Unix는 많은 작업에 작은 상호 작용 프로그램을 사용하여 파이프라인 또는 파이프라는 시스템을 통해 데이터를 전송합니다.그러나 많은 양의 기본 코드가 커널에 통합되어 있습니다. 특히 파일 시스템이나 프로그램 제어와 같은 것들이 그렇습니다.또한 모니터는 이러한 코드를 재배치하여 거의 모든 시스템을 상호 작용하는 프로그램 세트로 만들고 커널(핵)을 통신 및 지원 시스템으로만 축소합니다.
모니터는 프로세스 간 통신(IPC)의 기반으로 공유 메모리의 파이프형 시스템을 사용했습니다.어느 프로세스로부터 다른 프로세스로 송신되는 데이터를 빈 메모리 데이터 버퍼에 카피하고, 수신 프로그램이 준비되면, 다시 꺼낸다.그런 다음 버퍼가 풀로 반환되었습니다.프로그램에는 4가지 방법으로 구성된 비동기 세트를 사용하여 데이터를 전달하기 위한 매우 단순한 API(Application Programming Interface)가 있었습니다.클라이언트 어플리케이션에서는send message
필요에 따라 차단할 수 있습니다.wait answer
서버는 미러링 콜셋을 사용했습니다.wait message
그리고.send answer
메시지에는 전송되는 모든 메시지에 대해 암묵적인 "복귀 경로"가 있기 때문에 의미론은 마하의 완전한 입출력(I/O) 기반 시스템보다 원격 프로시저 호출에 가깝습니다.
모니터는 애플리케이션 공간을 2개로 분할했습니다.내부 프로세스는 기존 프로그램의 실행으로, 요구에 따라 기동하는 한편 외부 프로세스는 디바이스 드라이버로서 유효했습니다.외부 프로세스는 다른 프로그램과 마찬가지로 시작하고 중지할 수 있지만 사용자 공간 밖에서 핵에 의해 처리되었습니다.내부 프로세스는 실행한 부모의 컨텍스트에서 시작되었기 때문에 각 사용자는 자신의 컨텍스트에서 프로그램을 시작 및 중지함으로써 자신의 운영 체제를 효과적으로 구축할 수 있었습니다.
스케줄링은 필요한 경우 프로그램에 전적으로 맡겨졌다(1960년대 컴퓨터 멀티태스킹은 논란의 여지가 있는 기능이었다).한 사용자는 프리엠프티브 멀티태스킹 환경에서 세션을 시작할 수 있으며 다른 사용자는 단일 사용자 모드에서 시작하여 배치 처리를 고속으로 실행할 수 있습니다.실시간 스케줄링은 적절한 시간에만 반환되는 타이머 프로세스에 메시지를 전송함으로써 지원할 수 있습니다.
이 두 분야는 Monitor 출시 이후 대부분의 발전을 보여 왔습니다.새로운 설계로 하드웨어를 사용하여 메시징을 지원하고 애플리케이션 내에서 스레드를 지원하여 부팅 시간을 단축합니다.예를 들어, Mach는 메모리 관리 유닛에 Copy-on-Write 프로토콜을 사용하여 (복사가 아닌) 데이터를 프로세스 간에 매핑함으로써 메시징을 개선하도록 요구했습니다.Mach는 또한 스레드를 광범위하게 사용하여 외부 프로그램, 즉 보다 현대적인 용어로 서버가 들어오는 요청에 대해 새로운 핸들러를 쉽게 시작할 수 있도록 했습니다.그러나 마하 IPC는 너무 느려서 마이크로커널 접근방식을 실질적으로 유용하게 사용할 수 없었습니다.이것은 Jochen Liettke의 L4 마이크로커널이 IPC 오버헤드를 규모순으로 줄인 것을 보여주었을 때만 바뀌었습니다.
「 」를 참조해 주세요.
레퍼런스
- Hansen, Per Brinch (1970). "The Nucleus of a Multiprogramming Operating System" (PDF). Communications of the ACM. Association for Computing Machinery. 13 (4): 238–250. CiteSeerX 10.1.1.105.4204. doi:10.1145/362258.362278.
- RC 4000 소프트웨어:멀티프로그래밍 시스템
- RC 4000 레퍼런스 매뉴얼(bitsavers.org)