엑센트 커널
Accent kernelAccent는 Carnegie Mellon University(CMU)에서 개발한 운영 체제 커널입니다.Accent는 로체스터 대학에서 개발된 Aleph 커널의 후속 제품으로 개발되었으며, 문제의 일부를 수정하고 미니컴퓨터가 아닌 워크스테이션 머신의 네트워크(특히 Three Rivers PERQ)에 대한 하드웨어 지원을 재조정했습니다.Accent는 1981년부터 1985년까지 CMU의 SPICE 프로젝트의 일부였습니다.엑센트의 개발은 바로 유명한 마하 커널로 이어졌다.
원래 알레프 프로젝트는 데이터 복사를 사용하여 프로그램이 통신할 수 있도록 했습니다.애플리케이션은 포트를 열 수 있으며, 이를 통해 다른 프로그램에서 전송된 데이터를 수신할 수 있습니다.머신의 자원을 제어하는 다수의 서버를 작성하여 최종 사용자에게 도달할 때까지 데이터를 전달합니다.이 점에서는 메모리 대신 메시지를 사용하여 구현이 많이 달랐지만 Unix와 개념이 비슷했습니다.이 경우 Data General Eclipse에 메모리를 복사하는 데 비용이 많이 든다는 등 여러 가지 문제가 있었습니다.
1979년 알레프 엔지니어 중 한 명인 리차드 라시드는 CMU로 떠나 문제를 피하기 위한 새로운 버전의 알레프 작업을 시작했다.특히 Accent는 MMU를 탑재한 워크스테이션 머신을 타깃으로 하고 MMU를 사용하여 매핑을 통해 대용량 메모리 블록을 "복사"함으로써 메모리가 두 개의 다른 장소에 있는 것처럼 보이게 했습니다.하나 또는 다른 프로그램에 의해 변경된 데이터만 Copy-on-Write 알고리즘을 사용하여 물리적으로 복사해야 합니다.
차이를 이해하려면 두 개의 인터랙티브한 프로그램, 즉 파일을 다른 프로그램에 공급합니다.Aleph에서는 공급자의 데이터를 사용자 프로세스에 한 번에 2kB씩 복사해야 합니다(Eclipse의 기능으로 인해).Accent에서 데이터는 MMU로 전송되는 몇 가지 명령의 비용으로 사용자 프로세스에서 단순히 "표시"되었습니다. 사용자 프로세스가 변경된 경우에만 데이터를 복사해야 하며, 그 후에도 실제로 변경된 데이터의 일부만 복사해야 합니다.
Aleph의 또 다른 문제는 포트가 순차적으로 할당된 고유 ID로 식별된다는 것입니다.프로그램이 이들을 "추측"하는 것은 간단했고, 이로 인해 부여되지 않은 컴퓨터상의 리소스에 액세스할 수 있게 되었습니다.이것은 알레프 시스템을 다소 불안정하게 만들었다.
이 문제를 해결하기 위해 Accent는 포트 ID를 커널 내부에만 만들었습니다.커널의 매핑에 저장된 포트의 여러 가지 ID가 프로그램 인스턴스로 반환되었습니다.메시지가 커널로 전송될 때마다 먼저 프로그램이 해당 프로그램의 매핑 테이블과 비교하여 해당 포트에 액세스할 수 있는지 확인합니다.포트 번호가 더 이상 작동하지 않는다고 추측했을 때, 프로그램의 포트 ID는 커널 내의 "실제" ID에 대한 단서를 제공하지 않았으며, 커널에 의해 명시적으로 전달되지 않은 ID로 통신하려는 시도는 오류였습니다.따라서 Accent의 포트는 기능을 나타내며 유효한 포트 ID를 부여받은 결과 리소스를 사용할 수 있는 권한을 부여합니다.기능의 서브젝트 고유의 식별자를 사용하는 이러한 종류의 기능 시스템을 C-list 시스템이라고 부릅니다.
몇 년 후 엑센트 프로젝트는 점점 재미없어 보이기 시작했다.1980년대 초반, 많은 사람들은 엑센트 커널이 실제로 감당할 수 없는 CPU를 기계에 추가함으로써 미래의 성능 향상을 이룰 수 있을 것이라고 생각했습니다.더 큰 문제는 새로운 세대의 더 강력한 워크스테이션이 등장하고 있다는 점이었고, 이는 Accent를 이 워크스테이션으로 이식해야 한다는 것을 의미합니다.마찬가지로 Unix는 사용자 애플리케이션의 개발 플랫폼뿐만 아니라 운영 체제 설계에서도 실험 작업에 적합한 운영 체제로 성장했습니다.
이러한 변화에 대처하기 위해 Accent 작업을 종료하고 다시 시작하기로 결정했습니다.새로운 시스템은 Unix 커널 내에서 Accent의 포트 시스템을 사용하여 유명한 Mach 커널을 만듭니다.
엑센트의 일부 기능:
- 포트 기능
- Copy-on-Write 가상 메모리 관리
- 분산 파일 관리
- 분산 프로세스 관리
- 보호된 메시지 기반 프로세스 간 통신
- 다양한 마이크로코드 명령 세트를 사용하여 프로세스를 실행할 수 있습니다.
레퍼런스
외부 링크
- Rashid, Richard F.; George G. Robertson (December 1981). Accent: A communication oriented network operating system kernel (PDF). Sosp '81. pp. 64–75. doi:10.1145/800216.806593. ISBN 9780897910620. S2CID 15890135.