2012-07-19 3 views
0

각 프로세스는 코드 세그먼트, 데이터 세그먼트, 힙 및 스택을 포함하는 메모리 블록을 제공합니다. 또한 코드 세그먼트는 읽기 전용입니다. 그러나 프로세스가 실행되기 시작하면이 위치는 어디에서 시작됩니까? 할당 된 읽기 전용 메모리와 OS가 각각의 프로세스에 대해 메모리의 일부분 인 을 읽기 전용으로 어떻게 구별합니까?운영 체제 메모리 할당

+0

RAM (또는 가상 메모리)에 있으며 페이지 테이블에 "읽기 전용"특성이 설정되어 있습니다. –

답변

0

각 프로세스에는 실제 실제 RAM을 프로세스의 가상 메모리 공간에 매핑하는 페이지 테이블이 있습니다. 이 테이블은 메모리의 각 페이지 (일반적으로 4kb)에 속성을 할당합니다. 이러한 속성 중 일부는 페이지를 읽기 전용으로 설정하거나, 실행 불가능하거나, 권한있는 코드를 갖는 것으로 포함됩니다. 운영 체제는 기본적으로 하드웨어에 속성이 무엇인지 알려주므로 모든 메모리 액세스를 미세 조정할 필요가 없습니다. 매우 비효율적이다.

자세한 내용은 일반 x86 시스템의 설명 및 예제는 this osdev wikipage을 참조하십시오.