스택 크기 결정 단계
그 스택크기가 1MB이고 이게 언제 결정되는지 설명해주실때 컴파일 단계라고 알려주셨는데 via 스레드 스택 챕터보면 링커가 스택크기를 exe파일이나 DLL파일의 pe헤더상에 추가한다고 하는데 그러면 링크단계에서 결정되는게 아닌지 궁금합니다
답변 2
0
확인해보니 제가 잘못 설명한 것이 맞습니다. 생각하시는 것처럼 링크 단계로 보는 것이 적확해보입니다. 관련해서 내용을 더 알아본 후 강의를 수정하도록 하겠습니다. 제보 고맙습니다. 😄
0
안녕하세요, 인프런 AI 인턴입니다. LoDf님.
스택 크기 결정에 대한 질문을 주셨군요. 스택 크기가 언제 결정되는지에 대한 혼란이 있을 수 있습니다. 이를 명확히 하기 위해 다음과 같이 설명드리겠습니다.
일반적으로 프로그래밍에서 스택의 크기는 개발자가 설정할 수 있으며, 이 설정은 컴파일러나 링커 옵션을 통해 조정됩니다. 보통 프로세스의 스택 크기는 링커 옵션을 통해 결정되며, 이 값은 생성되는 실행 파일(exe)이나 DLL의 PE(Portable Executable) 헤더에 포함됩니다. 따라서, 최종적으로 스택 크기는 링크 단계에서 결정됩니다.
컴파일 단계: 코드가 기계어로 번역되는 과정입니다. 이 단계에서는 스택 크기와 직접적인 관련은 없습니다.
링크 단계: 컴파일된 오브젝트 파일들이 결합되어 최종 실행 파일이 만들어지는 과정입니다. 이때 링커 옵션을 통해 스택 크기를 설정할 수 있으며, 이 설정은 실행 파일의 헤더에 저장됩니다.
따라서, 스택 크기가 결정되는 주된 지점은 바로 링크 단계입니다. 이는 PE 헤더에 포함되어 운영체제가 프로그램을 로드할 때 참조할 수 있게 합니다.
추가적으로, 실행 중인 스레드별로 스택 크기를 동적으로 다르게 조정할 수 있는 방법도 있지만, 기본 스택 크기의 설정은 위와 같은 과정을 거치게 된다는 점 참고해 주세요.
위 설명이 도움이 되셨기를 바라며, 관련된 링커 옵션 설정에 대한 질문도 확인해 보시면 더 자세한 내용을 얻으실 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
세마포어 개수에 따른 스레드 점유상태
0
61
2
메모리 맵과 비동기 입/출력 조합 #2 수업내용에 질문있습니다.
0
96
2
힙 메모리 블럭 관리 방법 질문
0
97
2
MapViewOfFile 원리 관련 질문있습니다
0
102
1
가상 메모리 시스템 영역 구분
0
96
2
시스템프로그래밍-응용편
0
130
2
바이트와 관련된 유튜브 영상을 못 찾겠어요ㅠㅠ
0
94
2
파일 복사에 관한 질문입니다
0
114
2
세마포어 예제에 대한 질문이 있습니다.
0
111
2
메모장 쓰레기값 ?
0
133
2
64 bit 운영체제라면 가상메모리가
0
180
2
alertable Wait 상태 질문있습니다
0
226
1
GetCurrentDirectory 관련 질문
0
169
2
세마포어 예제중 형변환에 대한 질문
0
162
2
강사님 dll 지연로딩 관련하여 질문 드립니다
0
205
3
선장님 , _beginThreadEx() 함수 원리는 어디서 정보를 얻을 수 있을까요?
0
286
2
메모리 맵 강의 예제의 결과가 이상합니다.
0
227
1
강사님 파일입출력(Callback함수)와 관련하여 질문 드립니다.
0
348
2
dll 명시적 링크 오류 (원인 및 해결 방법이 필요 합니다)
0
968
2
static 영역의 rw 가능한 곳은 어떤 데이터가 담기는지 궁금합니다.
0
223
1
TerminanteProcess 와 관련하여 질문 드립니다.
0
172
1
강사님 스레드 관련 질문 드립니다.
0
226
1
강사님 메뉴얼 중 이것도 궁금해서 여쭤봅니다.
0
210
2
강사님 프로세스의 IPC에서 굳이 MUTEX 가 필요할까 하는 생각이 듭니다.
1
373
4





