Mach 가상 메모리
Mach 가상 메모리는 Mach 계열 커널에서 태스크별 주소 공간, 메모리 객체, 메모리 매핑과 보호를 관리하기 위해 발전시킨 기술이다. 외부 메모리 관리자와 커널의 인터페이스를 통해 파일 시스템이나 사용자 공간 서버가 메모리 객체의 내용을 제공할 수 있도록 설계했다. 이 구조는 Mac...
| 분류 | Mach 커널 가상 메모리 아키텍처 |
|---|---|
| 기술 기원 | Mach |
| 중심 객체 | 태스크 가상 주소 공간, 메모리 객체 |
| 주요 기능 | 매핑, 보호, 공유 및 페이지 관리 |
| 메모리 접근 | 가상 주소와 물리 페이지 변환 |
| 객체 관리 | 메모리 객체·매핑 관계 |
| 페이징 | 페이지 폴트 및 외부 페이저 |
| 관련 기술 | Mach 외부 메모리 관리 |
| 주요 구현 | Mach 3.0, GNU Mach, XNU |
| 관련 구조 | copy-on-write, memory mapping |
| 공식 문서 | GNU Mach VM |
Mach 가상 메모리는 Mach 계열 커널에서 태스크별 주소 공간, 메모리 객체, 메모리 매핑과 보호를 관리하기 위해 발전시킨 기술이다. 외부 메모리 관리자와 커널의 인터페이스를 통해 파일 시스템이나 사용자 공간 서버가 메모리 객체의 내용을 제공할 수 있도록 설계했다. 이 구조는 Mach 3.0의 사용자 공간 운영체제 서버 모델과 XNU의 메모리 관리 기술을 이해하는 데 중요하다.[1]
Mach의 가상 메모리 시스템은 태스크의 주소 공간과 메모리 객체를 분리해 관리한다. 가상 주소 영역을 메모리 객체에 연결하고 매핑의 접근 권한·공유 및 복사 시 기록 동작을 제어할 수 있다. 페이지 폴트가 발생하면 커널은 필요한 페이지를 확보하고 메모리 객체의 내용을 제공하는 메커니즘과 협력한다. 이러한 모델은 UNIX의 전통적인 메모리 관리보다 저장소와 메모리 서비스 사이의 관계를 유연하게 구성하도록 연구되었다.[2]
특히 Mach 3.0은 외부 메모리 관리자와 메시지 기반 인터페이스를 통해 메모리 객체의 내용을 공급받을 수 있게 했으며, 파일 시스템 서버가 매핑된 파일의 페이지를 관리하는 방식과 연결된다. GNU Mach에서는 이 기술이 마이크로커널의 기본 기능이 되고 GNU Hurd 서버가 파일과 저장 서비스를 구성한다. XNU 역시 Mach 계열의 가상 메모리 추상화를 계승하면서 Apple 운영체제의 사용자 공간과 장치 관리 요구에 맞게 발전시켰다.
Mach 가상 메모리는 태스크마다 다른 주소 공간을 제공하고, 메모리 영역을 객체와 연결해 프로그램 코드와 데이터를 매핑하도록 설계되었다. 커널은 접근 권한을 검사하고 페이지 폴트를 처리하며, 필요에 따라 다른 태스크와 동일한 메모리 객체를 공유하거나 별도의 복사 시 기록 동작을 지원할 수 있다. 이러한 모델은 메모리 관리의 일관된 인터페이스를 다양한 하드웨어 아키텍처에서 제공하기 위한 연구와 연결된다.[3]
Mach 3.0에서는 메모리 객체의 데이터를 제공하는 외부 페이저의 역할이 중요해졌다. 파일 시스템이나 다른 사용자 공간 서비스가 페이지의 실제 내용을 제공하는 구성을 통해 UNIX 운영체제의 메모리·파일 서비스 경계를 재설계할 수 있었다. XNU는 Mach의 가상 메모리 개념을 계승했지만 Apple 기기의 통합 커널·스토리지 환경에 맞춘 여러 별도 기능을 발전시켰다.