2017-05-04 1 views
0

그래서 내 이해에서 프로그램을 사용자가 실행하면 메모리에 저장되고 실행을 위해 CPU로 전송됩니다. CPU는 물리적 메모리에 직접 액세스 할 수 없으므로 논리 주소를 만든 다음 물리적 주소와 매핑합니다.프로그램 exectuion 프로세스 및 가상 메모리

CPU가 논리 주소를 생성하는시기를 어떻게 알 수 있습니까? CPU가 명령을 받아 논리 주소를 준비 할 수 있습니까? 가상 메모리는 언제 생성됩니까?

답변

0
  1. CPU가 실제 메모리에 직접 액세스 할 수 있습니다. 프로그램이 CPU로 전송되지 않습니다 (캐싱 무시).

  2. 운영 체제는 실제 주소 변환과 논리적 인 페이지 테이블을 만들고 유지 관리합니다. 하나는 운영 체제 서비스를 호출하여 논리 주소 범위를 프로세스 주소 공간에 매핑합니다.

+0

일단 프로그램이 RAM에로드되면 CPU가 데이터를 요청하거나 OS가 데이터를 CPU로 보냅니 까? 첫 번째 명령은 CPU에 어떻게 보내 지므로 첫 번째 명령을 기반으로 다른 명령을 요청하는 방법을 알고 있습니다. – sorryiamrookie

+0

프로그램 로더가 가상 주소 공간을 설정합니다. 프로그램이 실행되기 시작하면 프로그램이 여전히 디스크에 있기 때문에 [많은] 페이지 오류가 발생합니다. CPU가 처음 액세스 할 때 페이지가로드됩니다. – user3344003

관련 문제