1일 1개념정리 24.08.09.금 ~
큰 결정에 큰 동기가 따르지 않을 때도 있다. 하지만 큰 결심이 따라야 이뤄낼 수 있다.
무조건 무조건 1일 1개의 개념 정리하기 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#98. 프로세스 종류
프로세스가 뭔지는 많이 이야기하는데, "어떤" 프로세스가 있는지는 잘 이야기하지 않는듯하다. 예를들면 데몬 프로세스, 좀비 프로세스 ... 이런 흥미로운 이야기를 안하다니 오늘은 프로세스에 대해 알아보자.

프로세스 종류
0. init 프로세스
init은 부팅 시 가장 먼저 실행되는 프로세스이고, 프로세스 ID(PID)가 1로 할당된다. 모든 프로세스는 init에서 시작되거나, init이 부모 역할을 맡는다.
init은 종료되지 않는 장기 프로세스이다. 만약 init 프로세스가 중단되거나 종료되면, 시스템 전체가 멈추거나 비정상 상태에 빠질 수 있다.
1. 데몬 프로세스 (Daemon)
데몬 프로세스는 OS의 백그라운드에서 실행되며, 사용자가 직접 호출하지 않아도 시스템이 자동으로 실행하고 관리하는 프로세스이다. 특정 서비스를 제공하거나 시스템 상태를 모니터링하는 데 사용된다. → 네트워크 연결, 하드웨어 관리, 스케줄링, 로그 관리 등 시스템 작업 처리. 일반적으로 이름이 d로 끝난다. (ex. sshd, httpd)
2. 고아 프로세스 (Orphan Process)
이름이 좀 그렇긴 한데 ,,,, 말 그대로 부모 프로세스가 없는 자식 프로세스를 의미한다. 즉, 부모 프로세스는 종료됐지만 자식 프로세스가 실행중인 상태인데, 사실 이게 이상한 건 아니다. 원래도 이 둘은 독립적으로 실행된다. 다만, 부모가 사라졌을 때는 시스템상으로 init 프로세스나 systemd 프로세스가 고아 프로세스를 인수하여 부모 역할을 해준다. (입양 ?)
어차피 독립적으로 실행되는 부모/자식 프로세스지만, 인수(입양)하는 이유는, 고아 프로세스가 안정적으로 종료되거나, 계속 실행되도록 관리해주는 역할이 필요하기 때문이다.
3. 좀비 프로세스 (Zombie Process)
좀비 프로세스는 이미 종료가 됐지만 부모 프로세스가 아직 종료 상태를 ok하지 않아서 프로세스 테이블에 남아있는 상태이다. 즉, 종료했는데 부모가 인지하지 못함. 원래 맥락은 자식 프로세스가 종료됐으니 유예기간 내에 부모가 확인하라는 상태인데, 부모가 계속 확인을 안하면 프로세스 테이블에 계속 남아서 마치 좀비가 되어버리는 것이다.
다만, 이미 종료가 됐기에 CPU나 메모리 등의 자원을 사용하진 않는다. 하지만 프로세스 테이블 자리를 차지하고 있어서 새로운 프로세스를 생성할 자리가 부족할 수도 있다.
4. 부모 프로세스 (Parent Process)
부모 프로세스는 다른 프로세스를 생성한 프로세스이다. 새로운 프로세스를 생성할 때 fork() 라는 시스템 콜을 사용한다. 이때 부모 프로세스는 자식 프로세스의 PID를 받아온다. 이를 통해 자식 프로세스의 상태를 추적하고, 종료 상태로 바뀌면 수거해간다. 수거하지 않으면 위에처럼 좀비가 된다.
부모, 자식이라고 해서 한쪽이 종료시 다른쪽도 종료되고 이런 것은 없다. 독립적으로 실행이 가능하고, 때에 따라 메모리와 리소스를 공유하기도 한다.
5. 자식 프로세스 (Child Process)
자식 프로세스는 부모 프로세스에 의해 생성된 프로세스이다. 부모가 실행한 fork()에 의해 생성되고, 부모와 독립적으로 실행되거나 부모의 작업을 지원할 수도 있다. 독립적이기 때문에 고유의 PID를 가진다.
독립적으로 실행하지만 초기 상태는 부모와 같다. 초기에 fork를 통해 생성되므로 초기에는 부모 프로세스의 주소 공간, 메모리 페이지, 데이터 등을 공유한다. 프로세스에서 데이터 변경 작업이 없으면 계속 read만 하니까 굳이 데이터를 추가로 복사해갈 필요가 없는데, Write가 발생하면 값을 따로 복사해간다. → 즉, 이 시점에서 프로세스가 독립적인 메모리 공간을 가지게 된다. = Copy On Write 기법
만약 부모가 먼저 종료되면 자식을 관리해줄 프로세스가 사라지기 때문에 고아 프로세스가 되는데, 이때는 최상위 수준의 프로세스인 init, systemd같은 프로세스가 부모 역할을 맡아 관리( = 종료시 수거)해준다.
'1일 1개념정리 (24년 8월~12월) > 운영체제 , 하드웨어' 카테고리의 다른 글
1일1개 (89) - ㅋㅋㅋㅋㅋㅋㅋㅋㅋ큐 비트 (0) | 2024.11.22 |
---|---|
1일1개 (81) - 컴퓨터에 캐시 지르기 (3) | 2024.11.14 |
1일1개 (76) - 암어 콘보이~ (0) | 2024.11.09 |
1일1개 (62) - 싸울때) 너가먼저 놔라 vs 너 놓을 때 까지 나도 안놓는다 (0) | 2024.10.16 |
1일1개 (60) - 실제 메모리 아닌데~ 실제 메모리 아닌데~ (0) | 2024.10.14 |