inflearn logo
강의

講義

知識共有

図で簡単に学ぶオペレーティングシステム

プロセス生成と終了

수업 노트 설명에 대해 이해가 안가는 부분이 있어 질문 드립니다.

解決済みの質問

110

Lucas

投稿した質問数 27

0

안녕하세요 수업노트에 execpl() 함수가 실행되면 exit()함수가 실행되지 않는다고 하셨는데요.

 

execlp() 함수의 반환값과 상관없이 13번째 줄이 실행되야 하는게 아닌가 해서요. 성공하면 exit()를 왜 영영 실행하지 않는 것인지 궁금합니다.

 

예제 코드에서 상태에서 exit() 함수가 만약 실행되지 않는다면 부모 클래스는 계속 wait 상태가 되어 다른 자식 프로세스에서 exit()가 나올 때까지 기다리는거고 예제의 자식 프로세스는 exit()가 되지 않고 있으니 좀비 프로세스가 되는건가요?

 

 

운영체제

回答 2

0

gamja5

안녕하세요 Lucas님!
execlp() 함수가 실행되면 해당 코드가 execlp() 함수가 실행하는 프로그램의 코드, 예시에선 InternetBrowser의 코드로 대체됩니다.
따라서 exit()함수는 실행되지 않고 InternetBrowser의 코드가 실행되면서 종료도 해당 프로그램의 코드로 진행됩니다.

반면 execlp() 함수가 -1을 반환하면 현재 코드가 대체되지 않고 그대로 실행되므로 exit()함수가 실행되는 것입니다.

궁금증이 해결되셨나요? 😊

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. Lucas님, 질문 감사드립니다.

execlp() 함수는 기존 프로세스를 새 프로그램으로 대체하는 역할을 합니다. 이 함수가 성공적으로 실행되면 호출된 프로세스를 새 프로그램으로 교체하기 때문에 기존 코드의 그 이후 부분은 실행되지 않습니다. 따라서 execlp()가 정상적으로 실행되면 exit() 함수는 실행되지 않으며, 이는 프로세스가 새로운 프로그램으로 대체되었기 때문입니다.

예제에서 자식 프로세스가 execlp()를 호출하고 성공적으로 실행되면, 해당 자식 프로세스는 더 이상 원래의 프로그램을 수행하지 않으므로 exit()를 호출할 필요도, 가능성도 없어집니다. 이로 인해 부모 프로세스는 자식의 종료를 wait()로 정상적으로 기다릴 수 있게 됩니다. 자식 프로세스가 새 프로그램으로 실행되지 못할 경우(즉, execlp()가 실패한 경우), 본래 프로그램은 실패에 대해 적합한 처리를 해줘야 합니다, 예를 들어 exit()를 불러 실패를 알릴 수 있습니다.

관련해서 자세한 내용은 다음의 링크를 참조하시면 도움이 될 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

여러 의문점

1

62

1

CPU 스케줄링 RR 강의 2:54에서 질문 있습니다.

1

56

2

CPU Bound Process와 sleep, yield에 대해

1

58

1

커널과 인터페이스 개념

1

64

2

exit() 함수

0

154

2

LRU 관련 질문

1

182

2

고정 분할 방식도 연속 할당으로 알고 있는데 애니메이션이 다소 헷갈립니다.

0

115

2

Swapping, Manual Overlay, Dynamic Loading, Dynamic Linking의 개념이 헷갈립니다

0

147

2

각 메모리의 최대 요구 CPU 리소스는 어떻게 아나요?

1

165

2

PCB들이 연결리스트로 저장되는 이유가 뭔가요?

1

127

2

IPC 방식 중 매개체가 파일과 메모리일 때 할당되는 용량의 차이

0

116

2

고정 분할 방식에 질문입니다

0

120

2

세마포어에 관련해 질문입니다

1

144

2

IPC 통신 중 파일을 이용한 방법이 정확히 어떤 건가요?

0

151

1

공유자원과 동기화 문제에 관해서 질문이 있습니다.

0

152

2

FIFO 알고리즘에 대해서 질문이 있습니다.

1

128

2

멀티프로그래밍, 멀티 태스킹, 멀티 프로세싱

1

163

1

새로 올라온 영상에서 스와핑 언급이 빠졌는데

1

80

2

유니프로그래밍과 멀티프로세싱이 어떻게 공존할 수 있는 건가요?

3

173

2

인터럽트에 대해 질문 드립니다.

1

92

2

3:59초에 대해서 궁금해요!

0

116

2

실무적으로 궁금한게 있습니다ㅠ

0

92

1

완강을 해보니 오히려 더 궁금한게 많아지네요

1

164

2

파일디스크립터 질문드려요.

0

126

2