Process state, 프로세스의 상태

2021. 7. 3. 02:01운영체제

 

앞서 살펴본 PCB 에 저장된 정보 중,

Process State 에 관한 정보가 있었다.

 

프로세스의 상태란, 정확히 어떤 것을 표현할까?

다음은 프로세스 상태 전이의 도식화이다.

Process State Transition

한 눈에 들어오는 구조는 아닌 것 같다..!

이해를 위해, 단계별로 살펴보자.

 

 

 

 

Created State

 

Created State

  • 프로세스가 생성되는 단계
  • 작업을 커널에 등록하고, PCB를 할당한다.
  • 가용 메모리 공간 체크, 할당받을 수 있는 메모리가 있는지 확인한다.
    • 메모리가 할당되면, Ready State 로 넘어간다.
    • 할당받을 수 있는 메모리가 없으면, Suspended Ready 상태로 대기한다!

 

 

 

 

 

Ready State

Ready State

  • 프로세서만 제외, 메모리 등 다른 모든 자원을 할당 받은 상태
  • 프로세서 할당 대기 상태
  • 프로세서를 할당 받으면 즉시 실행이 가능한 상태

 

 

 

 

Running 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 State

  • 메모리 할당받지 못한, 혹은 빼앗긴 상태
    • Suspended Ready : Ready State 처럼, 다른 자원을 할당 받은 상태이나 프로세서 및 메모리를 할당받지 못한 상태이다. 
    • Suspended Blocked : 프로세스, 메모리, 기타 자원 모두 할당받지 못한 상태이다.


Ready State 혹은 Blocked State 에서, 메모리를 잃게 되면 Suspended State 가 되고,

메모리를 할당 받으면 다시 Ready State 혹은 Blocked State 로 돌아간다.


이 때 Suspend 되기 전의 작업 상태를 되찾기 위해,

Suspend 될 때 Memory ImageSwap device에 보관하고 

Resume 될 때 Image를 복구하여, 다시 작업을 진행하게 된다.

 

 

 

 

 

 

Terminated State

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