Process state, 프로세스의 상태
2021. 7. 3. 02:01ㆍ운영체제
앞서 살펴본 PCB 에 저장된 정보 중,
Process State 에 관한 정보가 있었다.
프로세스의 상태란, 정확히 어떤 것을 표현할까?
다음은 프로세스 상태 전이의 도식화이다.
한 눈에 들어오는 구조는 아닌 것 같다..!
이해를 위해, 단계별로 살펴보자.
Created State
- 프로세스가 생성되는 단계
- 작업을 커널에 등록하고, PCB를 할당한다.
- 가용 메모리 공간 체크, 할당받을 수 있는 메모리가 있는지 확인한다.
- 메모리가 할당되면, Ready State 로 넘어간다.
- 할당받을 수 있는 메모리가 없으면, Suspended Ready 상태로 대기한다!
Ready State
- 프로세서만 제외, 메모리 등 다른 모든 자원을 할당 받은 상태
- 프로세서 할당 대기 상태
- 프로세서를 할당 받으면 즉시 실행이 가능한 상태
Running State
- 필요한 자원 및 프로세서를 모두 할당 받은 상태
- 프로세서를 차지하고 작업을 실행 중인 상태
- Running State 에서 빠져나가는 두 가지 경우가 있다.
- Preemption : Ready State로 돌아가는 경우이다. 프로세서 스케줄링 등으로, 프로세서를 잃고 다시 프로세서 할당을 대기.
- Block / Sleep : 입/출력 등의 특정한 Event 를 기다리게 된다. 할당받았던 프로세서를 반납하고, asleep(blocked) 상태가 되어I/O 자원 등 필요한 자원을 할당 받기를 기다린다.
Asleep / Blocked State
- 프로세서 외 다른 자원을 기다리는 상태. e.g. I/O 자원
- Wake-up : 자원을 할당받게 되면 Blocked State 에서 다시 Ready State 로 되는 것을 가리킨다.
Suspended State
- 메모리를 할당받지 못한, 혹은 빼앗긴 상태
- Suspended Ready : Ready State 처럼, 다른 자원을 할당 받은 상태이나 프로세서 및 메모리를 할당받지 못한 상태이다.
- Suspended Blocked : 프로세스, 메모리, 기타 자원 모두 할당받지 못한 상태이다.
Ready State 혹은 Blocked State 에서, 메모리를 잃게 되면 Suspended State 가 되고,
메모리를 할당 받으면 다시 Ready State 혹은 Blocked State 로 돌아간다.
이 때 Suspend 되기 전의 작업 상태를 되찾기 위해,
Suspend 될 때 Memory Image 를 Swap device에 보관하고
Resume 될 때 Image를 복구하여, 다시 작업을 진행하게 된다.
Terminated / Zombie State
- 프로세스 수행이 끝난 상태
- 프로세서, 메모리 등 모든 자원을 반납한다.
- 커널 내 일부 PCB 정보를 남겨, 프로세스 관리를 위한 정보 수집하기 위한 단계이다.
- 이 단계가 끝나면 프로세스는 삭제, 소멸된다.
QUEUE
Ready State 를 대기하는 Ready Queue,
Blocked State 에서의 각 자원 별 Queue (e.g. I/O Queue) 등이 존재!
'운영체제' 카테고리의 다른 글
Kernel Thread, User Thread (0) | 2021.07.08 |
---|---|
Thread 의 개념 (0) | 2021.07.07 |
Interrupt 와 Context Switching (0) | 2021.07.05 |
PCB (Process Control Block) 이란? (0) | 2021.07.02 |
메모리 계층구조, Cache Memory 의 작동 방식 (0) | 2021.07.02 |