프로세스 (Process)
핵심
프로세스 (Process)
프로세스란?
실행 중인 프로그램의 인스턴스. OS가 관리하는 작업 단위.
메모리 구조
높은 주소 ─────────────
│ 스택 (Stack) │ 지역변수, 매개변수
│ ↓ │
│ (빈 공간) │
│ ↑ │
│ 힙 (Heap) │ 동적 할당 (malloc, new)
│ 데이터 (Data) │ 전역변수, static
│ 코드 (Code/Text) │ 실행 명령어
낮은 주소 ─────────────
프로세스 상태
[생성] → [준비] ⇄ [실행] → [종료]
↕
[대기/블록]
| 상태 | 설명 |
|---|---|
| 준비 (Ready) | CPU 대기 중 |
| 실행 (Running) | CPU에서 실행 중 |
| 대기 (Blocked) | I/O 완료 대기 |
실무 포인트
fork(): 부모 프로세스 복사하여 자식 프로세스 생성exec(): 현재 프로세스를 새 프로그램으로 교체- 좀비 프로세스: 종료됐지만 부모가 회수 안 한 상태
- 고아 프로세스: 부모가 먼저 종료된 자식 (init이 입양)
면접에서 이렇게 나옵니다
- Q.프로세스의 메모리 구조를 설명해주세요
- Q.프로세스 상태 전이를 설명해주세요
- Q.좀비 프로세스란? 어떻게 해결하나요?