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
모든 프로세스에 페이지 테이블이 정말로 필요합니까? 둘 이상의 프로세스가있을 때 어떤 문제가 나타날 수 있습니까?
단순화를 위해 캐시 메모리를 무시하십시오.
MMU는 가상 주소 공간을 크기가 다른 물리적 주소 공간에 매핑하는 것 이상을 수행합니다. MMU의 가장 중요한 점은 메모리 보호입니다. 이는 두 주소 공간의 크기가 동일하더라도 관련
이 있습니다. MMU는 물리적 메모리 페이지에 매핑 된 가상 메모리 페이지 (예 : 4kB 크기)를 처리합니다.
대부분의 시스템에는 가상 주소 공간이 하나뿐 아니라 모든 프로세스에 하나씩 있습니다. MMU 제어 하에서 모든 프로세스는 운영 체제 (MMU를 프로그래밍하는)에서 허용하는 페이지에만 액세스 할 수 있습니다. 서로 다른 프로세스의 대부분의 페이지는 서로 격리되어 있으므로 한 프로세스가 메모리에 기록하여 다른 프로세스를 충돌시킬 수 없습니다.
OS 제어 하에서 가상 페이지를 물리적 페이지로 매핑하면 주소 공간 무작위 화가 가능하므로 가상 페이지 경계를 가로 질러 읽는 결과 특정 데이터 대신 무작위 데이터를 읽게됩니다 (예 : 버퍼 오버 플로우 공격에 대한 보호).
또한 단일 프로세스가 있더라도 페이지는 읽기-쓰기, 읽기 전용, 실행 전용 및 액세스 금지로 처리 될 수 있습니다. 이는 프로세스가 허용 된 방식으로 자신의 페이지에 액세스하도록 제한 할 수 있습니다.
더 많은 정보는 여기 에서 찾을 수 있습니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다