2013-05-10 5 views
0

물리적 및 가상 주소 개념에 대해 조금 확신하지 못합니다. 내가 이해 한 것은 다음과 같습니다.가상 대 실제 주소

이미 컴파일 된 (exe) 응용 프로그램 파일의 명령어의 가상 주소는 고정되어 있으며 응용 프로그램이 실행되기 시작하면 이러한 고정 가상 주소가 메모리의 실제 주소에 동적으로 매핑됩니다 대응하는 페이지 테이블 엔트리가 갱신된다.

누구든지 내가 옳은지 여부를 승인 할 수 있습니까? 미리

답변

1

가상 어드레스에

덕분에 물리적 어드레스 위에 추상화 계층이다. 물리적 주소는 램 칩의 특정 라인에 매핑됩니다. 그러나 각 프로세스에는 자체 가상 주소 공간이 있습니다. 운영 체제 및 하드웨어는로드/저장시 가상 주소를 실제 주소로 변환합니다.

일반적으로 서로 다른 두 프로세스의 동일한 가상 주소가 두 개의 서로 다른 실제 메모리 위치로 변환됩니다. 예를 들어 두 가지 프로그램을 작성하여 두 프로그램 모두 0x400000 근처에서 메인 프로그램을로드 할 수 있습니다.

64 비트 가상 주소 공간이 매우 커서 모든 실행 프로그램의 모든 코드와 데이터를 포함 할 수 있지만 가상 주소 공간에서 다른 프로세스의 코드 및/또는 데이터를 찾을 수 없습니다. 운영 체제를 여러 프로세스로 통합 할 수 있습니다.

하나의 예로 공유 라이브러리가 있습니다. 이들은 메모리에로드되고 운영 체제는 상주하는 물리적 메모리를 여러 프로세스의 가상 주소 공간에 매핑합니다. 또 다른 예는 IPC 공유 메모리 (http://en.wikipedia.org/wiki/Shared_memory)입니다.

위에서 언급 한 페이지 테이블은 운영 체제가 가상 메모리를 실제 메모리에 매핑하는 데 사용하는 메커니즘입니다.

관련 문제