프로세스 상태
생성 상태, 준비 상태, 실행 상태, 대기 상태, 종료 상태
1. 생성 상태
이제 막 메모리에 적재되어 PCB를 할당 받은 상태
준비 완료 되면 준비 상태가 된다.
2. 준비 상태
당장이라도 CPU를 할당받아 실행할 수 있지만, 자신의 차례가 아니라 기다리는 상태
자신의 차례가 되면 실행 상태가 된다.
- `준비 -> 실행` 상태로 바뀌는 것 = `디스패치` 라고도 함
3. 실행 상태
CPU를 할당받아 실행 중인 상태
- 할당된 시간 모두 사용 시, 타이머 인터럽트가 발생해 준비 상태로 이동한다.
- 실행 도중 입출력 장치를 사용하면, 입출력 작업이 끝날 때까지 대기 상태가 된다.
4. 대기 상태(block state)
프로세스가 실행도중 입출력 장치를 사용하는 경우. 입출력 작업이 느려 이 경우 대기 상태가 된다.
입출력 작업이 끝나면 다시 준비 상태
5. 종료 상태
프로세스가 종료된 상태
- PCB, 프로세스의 메모리 영역을 정리

프로세스 계층 구조
프로세스 실행 도중 시스템 호출로 다른 프로세스를 생성할 수 있다.
- 새 프로세스를 생성한 프로세스 = 부모 프로세스
- 부모 프로세스에 의해 생성된 프로세스 = 자식 프로세스
2개는 별개의 프로세스이므로, 각각 다른 PID를 가진다. 자식 프로세스 PCB에 부모 프로세스의 PID(PPID)를 명시하기도 함
프로세스 생성 기법
1. 부모 프로세스는 자식 프로세스를 어떻게 만들까? `fork()`
2. 자식 프로세스는 자기 코드를 어떻게 실행시킬까? `exec()`
- `fork` 호출 : 자신의 복사본을 자식 프로세스로 생성한다. 부모 프로세스의 자원을 상속 받음
- `exec` 호출 : 자신의 메모리 공간을 다른 프로그램으로 교체한다. 코드/데이터 영역은 실행할 프로그램 내용으로 바뀌고 나머지 영역은 초기화된다.

'CS' 카테고리의 다른 글
| [OS] CPU 스케쥴링 (0) | 2025.10.07 |
|---|---|
| [OS] Thread (0) | 2025.10.07 |
| [OS] 프로세스 (0) | 2025.10.07 |
| [OS] 운영체제란 (0) | 2025.10.07 |
| 디자인 패턴1 - 싱글톤, 팩토리, 전략 패턴 (0) | 2025.07.25 |