일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 추상화
- 알고리즘
- 페이지 대치
- fork()
- Oracle
- BOJ
- concurrency
- 우선순위
- 운영체제
- 단편화
- 트랩
- 인터럽트
- 프로세스
- mips
- 기아 상태
- mutex
- 스레드
- Algorithm
- 컴퓨터구조
- PYTHON
- 교착상태
- 백준
- ALU
- 가상 메모리
- 동기화
- 부동소수점
- 페이징
- 세마포어
- 페이지 부재율
- 스케줄링
- Today
- Total
봉황대 in CS
[운영체제] Zombie Process ⊃ Orphan Process 본문
[운영체제] Zombie Process ⊃ Orphan Process
등 긁는 봉황대 2023. 10. 21. 02:19* 본 글은 2023학년도 2학기에 수강한 '시스템 프로그래밍' 과목 강의 내용을 함께 정리하여 작성하였습니다.
Zombie Processes
Zombie process(좀비 프로세스)는
process가 할 일을 전부 마쳐서 종료되었음에도 불구하고, 자원들을 계속 소비하고 있는 process를 말한다.
Reaping
Process의 생성과 종료가 정상적으로 진행되는 상황을 보자.
- Parent process가 fork() system call을 호출하여 Child process가 생성된다.
- Child process가 자신의 할 일들을 모두 마치고 종료한다.
→ Parent process에게 SIGCHLD signal을 보내고, Kernel은 Child process의 자원들을 회수한다.
→ 이때 Child process의 PCB는 회수되지 않는다. - Parent process에게 SIGCHLD signal이 도달한다.
→ wait() 또는 waitpid()를 통해서 Kernel에게 Child process의 나머지 자원들도 회수하라고 요청한다. : Reaping
즉, Reaping(자원 회수)은 Parent process에 의해서 진행이 된다.
Orphan Processes
Child process 보다 Parent process가 먼저 죽어버린 상황에서는 어떤 일이 발생할까?
→ 이 상황에서의 Child process를 Orphan process(고아 프로세스)라고 부른다.
이러한 Child process가 종료된다면,
Parent process가 먼저 죽어버렸기 때문에 해당 Child process에 대한 자원 회수가 정상적으로 진행되지 않는다.
결국 Zombie process가 되어버린 것이다.
init process
Orphan process들은 결국 최상위 부모(모든 process의 조상)인 init process에 의해서 reaping 된다.
정리
Orphan process는 곧 Zombie process이다.
하지만 모든 Zombie process는 Orphan process가 아니다.
Zombie process가 발생하는 이유는
1. Parent process가 Child process 보다 먼저 죽었거나,
2. Parent process에서 wait() 또는 waitpid()를 호출하는 부분까지 아직 도달하지 않았기 때문이다.
2번의 경우에는 Parent process를 강제 종료시키면 Child process가 정상적으로 종료되는 것을 확인할 수 있다.
∴ Zombies ⊃ Orphans
'Computer Science & Engineering > Operating System' 카테고리의 다른 글
[Chapter 12. 대용량 저장장치 구조] 회전 지연 시간 최적화 알고리즘, RPM의 한계 (0) | 2022.08.09 |
---|---|
[Chapter 12. 대용량 저장장치 구조] 디스크와 디스크 스케줄링(FCFS, SSTF, SCAN, LOOK) (0) | 2022.08.08 |
[Chapter 11. 파일 시스템 구현] 파일 시스템, 디스크 공간 할당 방법과 자유 공간의 관리 (1) | 2022.08.07 |
[Chapter 10. 파일 시스템] 파일과 디렉터리 (0) | 2022.08.06 |
[Chapter 9. 가상 메모리] 커널 메모리의 할당, 메모리 사상 파일 (0) | 2022.08.05 |