2014-09-17 9 views
-1

플랫 메모리 모델 (선형 메모리 모델)은 최대 실행 속도를 제공하고 최소 CPU 공간을 차지하며 분할/페이징없이 메모리에 직접 액세스 할 수 있습니다. 평면 메모리 모델은 작은 실시간 응용 프로그램이나 단일 스레드 실시간 응용 프로그램에 이상적입니다. 그러나 플랫 메모리 모델에서 높은 리소스 할당/보호 요구 사항과 함께 멀티 스레드/멀티 태스킹 인 실시간 응용 프로그램을 사용할 수 있습니까?플랫 메모리 모델 사용시 문제점

감사

+0

물론, 왜 안 되니? –

+0

글쎄, 우려는 메모리 보호 부분의 요구를 가져 오는 것입니다. –

답변

1

나는 메모리 모델은 당신이 멀티 스레딩/멀티 태스킹 수행 얻기 위해 사용하는 (RT) OS 자체를 제외하고, 여기에 할 일이 많이 있다고 생각하지 않습니다.

페이징 또는 분할은 제공되는 경우 주로 메모리 보호 기능을 구현하는 데 유용합니다. OS가 실수로 의도 한 영역 밖으로 메모리에 쓸 수있는 부적절하게 작성된 코드에 대해 스스로를 보호하고 사용자 모드 작업을 실행하는 경우에만 가능합니다. (모든 단일 메모리 액세스를 보호 할 수 없으므로 일종의 페이징 또는 분할없이 메모리 보호를받을 수 없습니다.)

32 비트 AVR 프로세서에서는 메모리 관리 장치 (MMU)과 메모리 보호 장치 (MPU). 첫 번째는 최신 PC 프로세서와 같은 페이징 기능을 지원하는보다 복잡한 장치입니다 (예를 들어 가상 메모리를 구현할 수도 있습니다). 후자는 메모리 보호 실현 도구를 제공하는 간단한 하위 집합입니다 (예 : OS, 자체와 작업을 서로 보호하기 위해), MMU처럼 리매핑 기능이 없습니다 (주어진 주소로 항상 같은 메모리 셀에 액세스합니다). (이유는 무엇입니까? 저렴한 가격의 AVR32는 충분하기 때문에 MPU 만 있습니다.)

간단한 평면 메모리 모델에서는 보호 기능이 없으므로 중요한 요소는 없습니다. 그것없이 얻을 수 있다면, 그것은 잘 가야한다.