inflearn logo
강의

講義

知識共有

Windowsシステムプログラミング - 基本

プロセス同期とIPC#1

강사님 메뉴얼 중 이것도 궁금해서 여쭤봅니다.

解決済みの質問

208

kimsc

投稿した質問数 70

0

TerminateProcess가 ExitProcess 대신 사용되는 경우 DLL(동적 연결 라이브러리)에서 유지 관리하는 글로벌 데이터의 상태가 손상될 수 있다.

 

====> 어떤 내용인지 설명해 주실 수 있는지요?

c system-programming vc++

回答 2

0

nullnull8537

MSDN을 보면 이후 설명이 잘 나와 있습니다. 간단히 언급하자면...

TerminateProcess() 함수를 이용해 강제로 프로세스를 종료하더라도 실제로는 종료되지 못할 수 있습니다. 대표적으로 비동기 입/출력을 시도해 Kernel에 요청한 경우입니다. 이런 경우 관련해 사용된 커널 오브젝트는 아직도 사용중인 상황이 됩니다 이 과정에서 문제가 발생할 수 있습니다.

참고하시기 바랍니다.

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

제공해 주신 정보에는 TerminateProcessExitProcess에 대한 설명이 없어서 직접적인 답변을 드릴 수 없습니다만, 일반적인 차이점을 설명드릴게요.

TerminateProcess 함수는 지정된 프로세스와 그 프로세스의 모든 스레드를 즉시 종료시킵니다. 이 방법은 강제적으로 프로세스를 종료시키기 때문에, 프로세스가 사용 중인 자원을 정상적으로 정리하거나 열려 있는 파일을 제대로 닫지 못할 수 있으며, DLL에서 유지 관리하는 글로벌 데이터가 손상될 위험이 있습니다.

반면에 ExitProcess 함수는 호출하는 프로세스를 종료시키지만, 현재 실행 중인 모든 스레드가 종료될 때까지 기다립니다. 또한, 열려 있는 파일 핸들을 닫고 DLL 프로세스 분리 메시지를 보내어 글로벌 데이터와 시스템 리소스의 정상적인 정리를 수행합니다.

따라서, ExitProcess는 프로세스를 안전하게 종료하기 위해 필요한 정리 작업을 보장하는 반면, TerminateProcess는 프로세스를 즉시 종료시키므로 이러한 안전장치 없이 프로세스를 종료시키게 됩니다. 이로 인해 DLL에서 관리하는 글로벌 데이터 손상과 같은 부작용이 발생할 수 있습니다.

세마포어 개수에 따른 스레드 점유상태

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

강사님 파일입출력(Callback함수)와 관련하여 질문 드립니다.

0

348

2

dll 명시적 링크 오류 (원인 및 해결 방법이 필요 합니다)

0

962

2

static 영역의 rw 가능한 곳은 어떤 데이터가 담기는지 궁금합니다.

0

221

1

TerminanteProcess 와 관련하여 질문 드립니다.

0

170

1

강사님 스레드 관련 질문 드립니다.

0

224

1

강사님 프로세스의 IPC에서 굳이 MUTEX 가 필요할까 하는 생각이 듭니다.

1

370

4