2013-07-26 3 views
1

다음은 커널에 의해 정리 된 프로세스 메모리 레이아웃에 대한 나의 이해를 요약 한 그림입니다. 내가 알고 싶습니다프로세스 메모리 관리 쿼리

1) 세그먼트 화 및 페이징 프로세스는 언제 발생합니까? 프로그램은 임의의 주어진 인스턴스에서

2

)을 실행 컴파일하는 동안 또는 직후라도 I 작은 정보를 발견

내 처리에서 주어진 엔티티 (변수, 객체)의 물리 어드레스를 액세스 할 수 의미하여 인 이해 커널 책에서 또는 설명이 너무 멀리 내 이해에서 나는 잘 모르겠습니다. 사람이

enter image description here

답변

2

@Keen 학습자에 나를 도울 수있을 수 있습니다, 1) 분할 및 페이징 프로세스는 프로그램이 실행 된 직후 발생한다. 세그먼테이션 오류는 프로그램에있는 코드 일부가 프로세스/가상 메모리 블록에없는 보호 된 메모리 또는 메모리에 액세스하려고 시도 할 때만 발생합니다. 페이징 프로세스. 왜냐하면 우리는 메인 메모리에서 동시에 모든 프로세스 관련 페이지를 가질 수 없기 때문입니다. 적절한 페이지는 프로세스 실행 중 이에 따라 가져 오거나 스왑 아웃됩니다. 2) 우리가 알고있는 한, 변수의 물리적 주소에 접근하는 메커니즘/수단은 없습니다. 우리가 사용하는 모든 것이 가상 주소이고 실제 주소로 변환하는 것은 MMU입니다. 당신의 의심을 깨끗이 해줬 으면 좋겠습니다 :-)

+0

Gautham은이 정리에 감사드립니다. 따라서 컴파일시 컴파일러가 논리적 주소를 생성한다는 가정하에 나에게 남겨 둡니까? –

+0

@Keen Learner, true. –