답변이 없어서 저도 몇자 적습니다.
일반적으로 OS는 메모리에 EXE실행화일을 로딩합니다.
DLL은 물론 아니고요(점프하는 방식으로 작동)
10MB크기라면 이 실행화일의 범위(bound)는 그 크기가 되는거죠...
물론 그 안에 동적 메모리할당이나 이런 부분이 들어가는 건 다른 메모리 공간을 사용하지만(이런 건 운영체제를 공부하세요)...
일반적으로 지금 사용하는 2000계열의 OS는 제가 알기로는 정확한지는 몰겠는데.. 2GB까지 메모리를 맵핑할 수 있는 걸로 알고 있습니다.
그래서 어지간히 크지 않은 프로그램이라면....대부분 다 작동하는 거죠...
맵핑이라고 말하는 건 일반적으로 메모리에서 실행프로그램을 엑세스 할려면 주소를 참조해야 하는데...그 메모리 포인터를 저장할 수 있는 크기가 2000계열이 32비트(?정확하지 않음 ..오래되서)크기이므로 이걸 주소값으로 환산하면 아마도 2GB가 나오지 않을까 생각합니다...
CPU는 실제 프로그램 크기와는 별로 관계가 없습니다.
다만 실제 CPU에 들어가 있는 레지스터의 크기는 CPU에 따라 다를 수 도 있지만....현재 사용하는 CPU는 거의 관계가 없다고 보셔도 관계없습니다..
참고로 더 자세한 사항을 알고 싶으시다면....어셈블리어나...운영체제에 관한 잭을 추천합니다...그럼 즐프하세염...
참고로 틀린 내용이 있으면 리필 달아주세요...저도 하도 오래되서리...
질문하신 내용이 너무 전문적이라 부합되는 결과는 한국마이크로소프트에서 정보를 얻는게 빠를듯 싶습니다.
참고 : 대부분 실행파일 크기와 상관관계는 없습니다.
만약 시스템메모리보다 큰 파일이고, 점유 메모리를 윈도우에서 할당 못받는다면 실행 자체가 되지 않을 것입니다.
그리고 윈도우NT/2000/XP의 경우 리소스 에러가 발생하지 않지만,
윈 95/98/ME의 경우 리소스 에러가 치명적이며 해결할 방법이 없습니다.
참고하십시오.
프로젝트를 컴파일 하면 EXE화일이 생기는데 이화일의 용량과 실행프로그램을 운용할 PC의 성능(386,486,586... 메모리128MB,256MB)과 운영체계(WIN98,WINME, XP..)과의 관계을 알고 십습니다. 특히 PC의 성능이나 운영체계에 따라서 실행...
이강석
•
2003.04.25 18:42
답변이 없어서 저도 몇자 적습니다.
일반적으로 OS는 메모리에 EXE실행화일을 로딩합니다.
DLL은 물론 아...
델피언
•
2003.04.25 09:23
질문하신 내용이 너무 전문적이라 부합되는 결과는 한국마이크로소프트에서 정보를 얻는게 빠를듯 싶습니다...
일반적으로 OS는 메모리에 EXE실행화일을 로딩합니다.
DLL은 물론 아니고요(점프하는 방식으로 작동)
10MB크기라면 이 실행화일의 범위(bound)는 그 크기가 되는거죠...
물론 그 안에 동적 메모리할당이나 이런 부분이 들어가는 건 다른 메모리 공간을 사용하지만(이런 건 운영체제를 공부하세요)...
일반적으로 지금 사용하는 2000계열의 OS는 제가 알기로는 정확한지는 몰겠는데.. 2GB까지 메모리를 맵핑할 수 있는 걸로 알고 있습니다.
그래서 어지간히 크지 않은 프로그램이라면....대부분 다 작동하는 거죠...
맵핑이라고 말하는 건 일반적으로 메모리에서 실행프로그램을 엑세스 할려면 주소를 참조해야 하는데...그 메모리 포인터를 저장할 수 있는 크기가 2000계열이 32비트(?정확하지 않음 ..오래되서)크기이므로 이걸 주소값으로 환산하면 아마도 2GB가 나오지 않을까 생각합니다...
CPU는 실제 프로그램 크기와는 별로 관계가 없습니다.
다만 실제 CPU에 들어가 있는 레지스터의 크기는 CPU에 따라 다를 수 도 있지만....현재 사용하는 CPU는 거의 관계가 없다고 보셔도 관계없습니다..
참고로 더 자세한 사항을 알고 싶으시다면....어셈블리어나...운영체제에 관한 잭을 추천합니다...그럼 즐프하세염...
참고로 틀린 내용이 있으면 리필 달아주세요...저도 하도 오래되서리...