Notice

[OS] 프로세스 상태와 계층 구조

 

프로세스 상태

생성 상태, 준비 상태, 실행 상태, 대기 상태, 종료 상태

 

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
글쓰기 설정