멀티프로그래밍 시스템
THE multiprogramming system개발자 | 에인트호벤 공과대학(Technische Hogeschool Eindhoven) 에드거 다이크스트라 등 |
---|---|
기입처 | 일렉트로지카 X8 어셈블리 언어 |
동작 상태 | 단종 |
초기 릴리즈 | 전 |
최종 릴리즈 | 최종 / 1968; | 전 (
마케팅 대상 | 조사. |
이용가능기간: | 영어 |
갱신 방법 | 소스 코드에서 컴파일 |
플랫폼 | 일렉트로지카 X8 |
커널 타입 | 모노리식 |
체납 사용자 인터페이스 | 펀치 카드 |
THE 멀티프로그래밍 시스템 또는 THE OS는 Edsger W. Dijkstra가 이끄는 팀에 의해 설계된 컴퓨터 운영체제로 1965-66년에[1] 논문으로 기술되어 1968년에 [2]출판되었습니다.Dijkstra는 이 시스템을 명명하지 않았습니다. "THE"는 단순히 "Technische Hogeschool Eindhoven"의 약자로, 네덜란드 에인트호벤 공과대학의 이름(네덜란드어)입니다.THE 시스템은 주로 멀티태스킹을 지원하는 배치[3] 시스템입니다.다중 사용자 운영체제로 설계되지 않았습니다.SDS 940과 비슷하지만 "THE 시스템의 프로세스 집합은 정적"[3]이었습니다.
THE 시스템은 소프트웨어 기반의 페이지 가상 메모리의 첫 번째 형식을 도입했습니다(Electrogica X8은 하드웨어 기반의 메모리 [3]관리를 지원하지 않음).이것에 의해, 프로그램이 드럼 메모리상의 물리적인 장소를 사용할 필요가 없어졌습니다.이는 수정된 ALGOL 컴파일러(Dijkstra의 시스템에서 지원되는 유일한 프로그래밍 언어)를 사용하여 "필요한 경우 요청된 정보가 메모리에 있는지 확인한 시스템 루틴에 대한 호출을 자동으로 생성함"[3]을 통해 수행되었습니다.페이지화된 가상 메모리는 입출력(I/O) 디바이스 데이터 버퍼링, 운영체제 코드의 상당 부분 및 거의 모든 ALGOL 60 컴파일러에도 사용되었습니다.이 시스템에서는 처음으로 세마포어가 프로그래밍 구성으로 사용되었습니다.
설계.
THE 멀티프로그래밍 시스템의 설계는 "높은" 계층이 "낮은" 계층에만 의존하는 계층 구조의 사용에 있어 중요합니다.
- 레이어 0은 운영 체제의 멀티프로그래밍 측면을 담당했습니다.중앙처리장치(CPU)에 할당되는 프로세스를 결정하고 세마포에서 차단된 프로세스를 고려했습니다.인터럽트를 처리하고 프로세스 변경이 필요할 때 컨텍스트 전환을 수행했습니다.이게 제일 낮은 레벨이에요.현대 용어로는 이것이 스케줄러였습니다.
- 레이어 1은 프로세스에 메모리를 할당하는 것과 관련이 있습니다.현대 용어로는 이것이 호출기였다.
- 레이어 2에서는 운영체제와 시스템콘솔 간의 통신을 취급하고 있습니다.
- 레이어 3은 컴퓨터에 연결된 디바이스 간의 모든 I/O를 관리했습니다.여기에는 다양한 디바이스로부터의 버퍼링 정보가 포함되어 있습니다.
- 레이어 4는 사용자 프로그램으로 구성되어 있습니다.사용자 프로그램의 컴파일, 실행, 인쇄를 모두 5개의 프로세스가 있었습니다.작업이 완료되면 우선 순위 기반인 스케줄 큐로 제어 권한을 되돌려 최근에 시작된 프로세스와 I/O로 인해 차단된 프로세스를 선호합니다.
- 레이어 5는 사용자입니다.Dijkstra가 지적했듯이 "당사에 의해 구현되지 않았습니다."
상위 계층이 하위 계층에만 의존할 수 있다는 제약은 (준정식 방법을 사용하여) 시스템에 대한 추론을 더 다루기 쉽게 만들고 시스템을 점진적으로 구축하고 테스트하기 위해 설계자들에 의해 부과되었다.각 계층이 제공하는 추상화에 대한 철저한 테스트와 함께 계층 0부터 순서대로 구현되었습니다.이러한 커널의 계층 분할은 어떤 면에서는 Multics의 이후 링 세분화 모델과 유사했다.Windows NT 및 MacOS를 포함한 몇몇 후속 운영 체제에서는 계층화를 어느 정도 사용했지만, 일반적으로 계층 수는 적습니다.
이 시스템의 코드는 네덜란드 일렉트로지카 X8 컴퓨터용 어셈블리 언어로 작성되었습니다.이 컴퓨터는 27비트, 32kW의 코어 메모리,[3] 512kW의 드럼 메모리를 탑재하여 LRU 캐시 알고리즘, 페이퍼 테이프 리더, 페이퍼 테이프 펀치, 플로터 및 프린터를 백업 저장했습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ Dijkstra, Edsger W. The structure of the 'THE'-multiprogramming system (EWD-196) (PDF). E.W. Dijkstra Archive. Center for American History, University of Texas at Austin. (등기) (1965년 6월 14일)
- ^ Dijkstra, E.W. (1968), "The structure of the 'THE'-multiprogramming system", Communications of the ACM, 11 (5): 341–346, doi:10.1145/363095.363143
- ^ a b c d e Silberschatz, Abraham; Peterson, James L. (May 1988), "13: Historical Perspective", Operating System Concepts, p. 512