강사님 파일입출력(Callback함수)와 관련하여 질문 드립니다.
강의 내용중 비동기 입출력 CALLBACK 함수 사용 부분에서 OVERLAPPED 구조체와 BUFFER 를 동적할당 해야 한다고 하셨는데.
하지만 비동기 I/O를 하고 있는 스레드가 마지막 부분에서 SleepEx(1, TRUE) 로 대기하고 있습니다. 즉 스레드는 해당 CALL 함수 종료 후에도 계속 존재하기 때문에 스래드의 로컬변수로 선언해서 전달해도 CALLBACK 함수에서 사용하는데는 문제가 없는거 아닌지요? (이벤트로 처리하는 부분은 스레드 변수로 처리)
왜 동적변수로 할당해야 하는지 이해가 되지 않아서요?
실제로 제가 스레드내의 로컬 변수로 선언하고 동작 시켜도 정상적으로 동작을 해서요.
回答 2
0
불가능한 것은 아니지만 적절하지는 않습니다. 비동기 요구를 OS에 요청할 경우 입/출력에 사용되는 메모리 공간에 대해 OS는 락을 겁니다. 따라서 자동변수의 메모리 주소를 전달할 경우 스택 메모리 공간에 락이 걸릴 수 있습니다.
그리고 무엇보다 스택의 크기는 스레드 당 1MB가 기본 입니다. 그런데 파일 입/출력의 단위는 경우에 따라 1MB를 넘길 수도 있습니다. 이렇게 되면 당연히 스택 메모리가 모두 소진되어 프로그램이 비정상 종료될 것입니다. 참고하시기 바랍니다. 😄
세마포어 개수에 따른 스레드 점유상태
0
61
2
메모리 맵과 비동기 입/출력 조합 #2 수업내용에 질문있습니다.
0
94
2
힙 메모리 블럭 관리 방법 질문
0
97
2
MapViewOfFile 원리 관련 질문있습니다
0
102
1
가상 메모리 시스템 영역 구분
0
95
2
스택 크기 결정 단계
0
75
2
시스템프로그래밍-응용편
0
130
2
바이트와 관련된 유튜브 영상을 못 찾겠어요ㅠㅠ
0
94
2
파일 복사에 관한 질문입니다
0
113
2
세마포어 예제에 대한 질문이 있습니다.
0
108
2
메모장 쓰레기값 ?
0
131
2
64 bit 운영체제라면 가상메모리가
0
180
2
alertable Wait 상태 질문있습니다
0
226
1
GetCurrentDirectory 관련 질문
0
169
2
세마포어 예제중 형변환에 대한 질문
0
162
2
강사님 dll 지연로딩 관련하여 질문 드립니다
0
205
3
선장님 , _beginThreadEx() 함수 원리는 어디서 정보를 얻을 수 있을까요?
0
285
2
메모리 맵 강의 예제의 결과가 이상합니다.
0
227
1
dll 명시적 링크 오류 (원인 및 해결 방법이 필요 합니다)
0
962
2
static 영역의 rw 가능한 곳은 어떤 데이터가 담기는지 궁금합니다.
0
221
1
TerminanteProcess 와 관련하여 질문 드립니다.
0
170
1
강사님 스레드 관련 질문 드립니다.
0
224
1
강사님 메뉴얼 중 이것도 궁금해서 여쭤봅니다.
0
208
2
강사님 프로세스의 IPC에서 굳이 MUTEX 가 필요할까 하는 생각이 듭니다.
1
370
4

