인프런 커뮤니티 질문&답변

움직이는YM님의 프로필 이미지

작성한 질문수

그림으로 쉽게 배우는 운영체제

프로세스 생성과 종료에서 질문2

해결된 질문

21.12.28 16:59 작성

·

223

1

.exe 파일을 실행
OS는 해당 프로그램의 코드영역과 데이터 영역을 메모리에 로드하고 빈 스택과, 빈 힙을 생성
PCB 생성 후 초기화
 
위 과정은 OS가 부팅된 후 0번 프로세스가 생성될 때 딱 한 번만 실행된다고 하셨습니다
 
여기서 궁금한 점이
 
0번 프로세스의 종류는 가리지 않는 것인가요???
 
예를 들어,
 
제가 컴퓨터를 부팅한 직후 LoL.exe를 실행했다고 가정하면 0번 프로세스가 LOL 프로세스가 될 것입니다
 
이 때 다음 작업으로 웹브라우저를 더블 클릭하게 되면 웹브라우저 프로세스도 LOL.exe를 실행할 때 만들었던 0번 프로세스를
복사해서 만들어 지게 되는 것인가요?? (첫번째 질문)
 
만약 그렇다면 제가 LOL을 종료하면 0번 프로세스가 닫히게 되는데, 웹브라우저 프로세스 입장에서는 부모 프로세스가 닫히게 된 것이니까
 
바로 좀비 프로세스로 변하게 되는 것인가요??? (두번째 질문)
 
만약 위와 같은 가정이 참이라면 제가 컴퓨터를 부팅한 이후에 가장 먼저 실행한 프로세스가 뭔지에 따라서
(OS 부팅 후웹브라우저를 가장 먼저 실행해서 0번 프로세스로 만들고 그 이후에 많은 프로그램들을 실행해서 많은 자식 프로세스로 만들어 버리고 웹브라우저를 닫아버리면... 자식 프로세스들이 순식간에 다 좀비 프로세스로 변하므로)
 
그 이후에 만들어지는 프로세스들이 전부 좀비 프로세스가 될 수 있는 것인데 이 점이 이상합니다.
 
 
 

답변 1

1

감자님의 프로필 이미지
감자
지식공유자

2021. 12. 28. 20:05

안녕하세요 YM님!

여쭤보신 것 처럼 만약 부팅하고 LOL.exe 파일이 프로세스가 된다면 YM님의 질문처럼 동작하게 될겁니다.
하지만 운영체제가 부팅이 완료되면 자동으로 생성되는 프로세스들이 있습니다.
그 중에 init 프로세스 란 것이 있는데 이게 0번 프로세스가됩니다!

그럼 이렇게 init 프로세스를 복사해 터미널이나 그에 필요한 프로세스가 생성되는데
보통 사용자가 실행하는 프로그램은 서로 자식-부모 관계를 가지지 않기 때문에 걱정하시는 것처럼
LOL.exe 프로세스를 종료해도 웹브라우저가 종료하는 일은 발생하지 않습니다!

움직이는YM님의 프로필 이미지

2021. 12. 28. 22:55

답변 감사합니다!