메모리맵 예제

메모리 관리는 실시간 운영 체제보다 범용 과 더 자주 관련이 있지만, 우리가 지적했듯이 RTOS는 종종 범용 작업을 수행하도록 요청됩니다. RTOS는 그림 3.27과 같은 여러 가지 이유로 메모리 관리를 제공할 수 있습니다. memfetch를 사용하여 만든 “골” 프로세스에 대한 메모리 매핑 캐시 관리자는 가상 메모리 관리자 및 파일 시스템 드라이버와 긴밀하게 작동합니다. 캐시 관리자는 NT의 전역(모든 파일 시스템에서 공유)의 파일 시스템 캐시를 유지 관리합니다. 작업 설정 튜너는 파일 시스템 캐시에 실제 메모리를 할당합니다. NT 캐시는 디스크 블록 지향이 아니라 파일 지향입니다. 다음 예제는 Windows CE의 메모리 관리 구조에 대해 설명합니다. 장치 모델이 메모리 매핑을 조작하는 것은 매우 유용한 구현 트릭입니다. 예를 들어 실제 장치의 매핑을 수동 RAM으로 대체하여 꺼지는 장치를 시뮬레이션하는 데 사용되었습니다. 그것은 오히려 각 액세스에 모드를 확인 장치에 각 레지스터를 갖는 것보다, 여러 작업 모드와 장치를 구현하는 데 사용되었습니다, 다른 레지스터 은행은 각 모드에 매핑됩니다.

모드가 변경되면 장치는 메모리 맵을 업데이트하여 트랜잭션을 올바른 뱅크로 라우팅합니다. 메모리 관리를 통해 프로그램에서 큰 가상 주소 공간을 사용할 수 있습니다. 메모리 매핑된 파일의 가능한 이점은 “지연 로드”이므로 매우 큰 파일에대해서도 소량의 RAM을 사용하는 것입니다. 사용 가능한 메모리 양보다 훨씬 큰 파일의 전체 내용을 로드하려고 하면 운영 체제가 디스크에서 메모리로 읽고 동시에 메모리에서 디스크로 페이지를 기록할 때 심각한 스래싱이 발생할 수 있습니다. 메모리 매핑은 페이지 파일을 완전히 우회할 뿐만 아니라 데이터에 사용되는 페이징 요구와 마찬가지로 데이터 편집시 더 작은 페이지 크기의 섹션을 로드할 수 있습니다. 메모리 매핑된 파일의 또 다른 단점은 지정된 아키텍처의 주소 공간과 관련이 있습니다. 예를 들어 인텔의 IA-32와 같은 32비트 아키텍처는 4GiB 또는 더 작은 파일 부분만 직접 해결할 수 있습니다. 운영 체제 커널에 따라 일반적으로 2~3GiB 범위의 개별 프로그램에서 주소 지정 가능한 공간이 훨씬 더 적습니다. 메모리 매핑 프로세스는 페이지 파일을 처리하는 동일한 하위 시스템인 가상 메모리 관리자에 의해 처리됩니다.

Posted in Uncategorized.