2012-06-14 1 views
0

파일의 이미지는 "시스템이 파일 이미지를 저장하기에 충분한 저장 공간을 페이징 파일에서 할당"하는 것과 같은 것을 의미합니까?이미지 파일

+1

나는 두 가지 대답이 너무 좁게 실행 파일에 집중한다고 생각합니다. 파일의 유형은 부적합합니다. "파일의 이미지"는 단순히 해당 파일의 복사본입니다. 메모리 또는 페이지 파일에있을 수 있지만 위치에 상관없이 파일의 복사본입니다. –

답변

0

만약 내가 이것이 무엇이라고 생각한다면, 당신은 DLL s와 비슷한 짐승들에 대해 이야기하고 있습니다 : 실행중인 프로세스에로드되는 코드.

이 경우 전체 DLL이 (가상) 메모리에 매핑되고이 memeory가 실행 가능으로 표시됩니다. 이를 수행해야 할 필요성은 일반적으로 코드를 디스크에서 실행할 수는 없지만 메모리에서 실행해야한다는 사실에 기인합니다.

+0

코드가 디스크에서 실행되지 않습니다. 코드는 항상 메모리에 먼저 매핑되어야하므로 (매핑이므로) 코드를 실행할 수 있습니다. – mox

+0

내가 말한 것은 무엇입니까! "일반적으로"라는 단어는 (이전) 아키텍처와 관련이 있습니다. 실제로 이것은 가능했습니다 - http://www.pbm.com/~lindahl/mel.html을 참조하십시오. –

+0

Windows는 그렇게하지 않으며 이것이 질문이었습니다. . "시스템은 페이징 파일에서 파일의 이미지를 저장할 충분한 공간을 할당합니다. – mox

1

파일 이미지는 일반적으로 실행 파일의 내용입니다. 로더는 응용 프로그램 (EXE, ... DLL, SYS ..)을 실행할 수 있기 전에 매체 (파일의 내용에 포함 된)의 적절한 실행 부분을 메모리 (매핑)에 복사합니다. 성공적으로 완료되면 로더가 엔트리 포인트 (메모리에 있음)로 점프하고 프로그램을 실행합니다.

+0

이것은"표준 "방식입니다 (실행 파일의 99 %는 파일에서 시작됩니다.) 실행 파일이 파일에 있지 않지만 메모리에서 직접 시작되는 경우가 있습니다. 다른 이야기입니다. – mox

+0

매핑이란 파일의 내용을 디스크에서 메모리로 간단히 복사하는 것을 의미합니까? – user1232138

+0

매핑은 가상 메모리 영역을 표시하기 위해 메모리 관리자가 사용하는 메커니즘입니다. 매핑이 수행되면 파일의 내용이 이미 메모리에 있습니다 (MapViewOfFile - http://stackoverflow.com/questions/9718616/what). - 지도보기 오팔 반환) – mox