2014-02-15 3 views
0

MMU는 프로세스에 해당하는 페이지 테이블을 사용하여 실행중인 프로세스의 가상 주소를 실제 주소로 변환하는 데 사용됩니다. 가상 주소 공간이 실제 주소 공간과 같을 때 시나리오를 만들 수 있습니다. 이 경우 동일한 가상 주소 공간이 다른 물리적 주소에 매핑되는 상황이 발생하지 않으므로 MMU가 실제로 필요합니까?가상 주소 공간이 실제 주소 공간과 같을 때 MMU가 필요합니까?

Virtual Address    
| 20 bits (V) | 12 bits(PO) | 

Physical Address 
| 20 bits(PPN) | 12 bits(PO) | 

where V = Virtual Page 
     PO = Page offset 
     PPN = Physical Page Number 

우리는 정말 모든 프로세스에 대한 페이지 테이블을 필요로합니까 말할 수 있습니다? 두 개 이상의 프로세스가있을 때 나타날 수있는 문제점은 무엇입니까?

간략화를 위해 캐시 메모리를 무시하십시오.

답변

2

MMU는 가상 주소 공간을 다른 크기의 실제 주소 공간에 매핑하는 것 이상을 수행합니다.
MMU가 물리적 메모리의 페이지에 매핑되는 가상 메모리 페이지 (크기 예컨대 4 킬로바이트) 처리 :는 MMU의 가장 중요한 점은 두 주소 공간은 동일한 크기를 가질 경우에도 관련 메모리 보호된다.

대부분의 시스템에는 가상 주소 공간이 하나뿐 아니라 모든 프로세스에 하나씩 있습니다. MMU 제어 하에서 모든 프로세스는 운영 체제 (MMU를 프로그램 함)가 허용 한대로 페이지에만 액세스 할 수 있습니다. 서로 다른 프로세스의 대부분의 페이지는 서로 분리되어 있으므로 하나의 프로세스는 메모리에 기록함으로써 다른 프로세스를 크래시 할 수 없습니다. OS의 제어하에 물리 페이지 가상의

매핑은 주소 공간 랜덤 허용하는 대신 소정의 데이터의 임의의 데이터를 판독 한 가상 페이지에 걸쳐 (예를 들어, 버퍼 오버 플로우 공격에 대한 보호) 경계 결과의 판독되도록.

또한, 하나의 프로세스가있을지라도, 페이지는 읽기 쓰기, 읽기 전용, 실행 전용으로 처리하고, 액세스 금지 될 수있다. 이렇게하면 프로세스가 허용 된 방식으로 자체 페이지에 액세스하도록 제한 할 수 있습니다 (예 : 그것은 저장된 "데이터"를 실행하는 것을 불가능하게 만들 수 있습니다.
좀 더 정보가 here를 찾을 수 있습니다.

관련 문제