1. 생성 상태 (New)
- fork() 또는 exec()로 생성
- PCB 할당
- fork(): 부모 프로세스의 주소 공간을 그대로 복사 (비동기 작업은 상속 X)
- exec(): 완전히 새로운 프로세스를 생성
2. 대기 상태 (Ready)
- 메모리 공간이 충분하면 할당받고, 아니면 준비 큐에 대기
- CPU 스케줄러로부터 CPU 소유권을 기다리는 상태
3. 대기 중단 상태 (Ready Suspended)
- 준비 큐가 꽉 차거나 메모리 부족으로 일시 중단된 상태
4. 실행 상태 (Running)
- CPU 소유권과 메모리 모두 할당
- 명령어 실행 중 (CPU burst 발생)
5. 중단 상태 (Waiting / Blocked)
- 특정 이벤트(I/O 완료 등)를 기다리며 차단된 상태
6. 일시 중단 상태 (Blocked Suspended)
- 차단 상태에서 실행 대기 중, 하지만 메모리 부족으로 중단됨
7. 종료 상태 (Terminated)
- 실행 완료 후 자원 반납, PCB 삭제
- 자발적 종료: 정상 실행 완료
- 비자발적 종료:
- 부모가 자식 강제 종료
- 자원 한계 초과
- 부모 종료
- 사용자가 kill 명령 실행
'ZeroBase > CS' 카테고리의 다른 글
| 공유자원과 경쟁상태 그리고 임계영역 (0) | 2025.08.17 |
|---|---|
| IPC (3) | 2025.08.17 |
| PCB와 컨텍스트 스위칭 (1) | 2025.08.13 |
| DFS(깊이 우선 탐색), BFS(너비 우선 탐색) (4) | 2025.08.13 |
| 프로그램 컴파일 과정 (0) | 2025.08.12 |