Computer Science/OS

OS] 프로세스(Process)와 프로세스 상태(Process State) 정리

TwinParadox 2019. 2. 10. 10:43
728x90

프로세스


작업(Job)

실행 프로그램과 이에 필요한 데이터 묶음, 컴퓨터에 의해 실행되기 이전의 상태.


프로세스(Process)

커널에 등록된 작업, 커널에 등록되어 커널의 관리 하에 들어감.

각종 자원들을 요청하고 할당 받을 수 있는 개체.

PCB를 할당 받은 개체.

능동적인 개체로 실행 중 각종 자원을 요구하거나 반납하면서 진행함.


PCB:Process Control Block

커널 공간 내 존재해 프로세스가 커널에 등록되어 실행될 시에 프로세스마다 자동으로 생성.

프로세스의 각종 정보를 내장하며 종료 시 파괴. OS에 따라서 저장되어야 하는 정보가 다르고, PCB 영역 참조 및 갱신 속도 개선이 시스템 전체 성능에 영향을 미침.


- Process Identification ; 프로세스 고유 번호

- Process Status ; 프로세스 우선 순위

- Process State:Process status work, Priority, Register ; 프로세스 현재 상태로, 할당 받은 자원들의 리스트나 이들에 대한 포인터

- Accounting ; 문맥 저장 영역으로 실행중인 프로세스의 일시중지 시 레지스터 문맥의 저장 영역임. 프로세스가 사용했던 자원들에 대한 정보가 있어 어떤 자원을 얼마나 사용했는지 확인 가능.




프로세스 상태


- 활동 상태 ; Active, Swapped-in

기억장치를 할당받은 상태

Running ; 프로세서를 할당 받은 상태

Ready ; 필요한 자원을 모두 소유했으며, 프로세서를 요청하는 상태

Blocked, Asleep ; 프로세서 외 다른 자원이 없는 상태


- 지연 상태 ; Suspended, Swapped-out

기억장치를 소멸한 상태

Suspended ready ; 프로세서를 요청하는 상태

Suspended blocked ; 프로세서외 다른 자원이 없는 상태



Created State

사용자가 요청한 작업이 커널에 등록, PCB가 할당되어 새로운 프로세스 만들어 지는 상태로, 커널은 기억 장치의 공간을 검사하고 프로세스를 준비 상태 혹은 지연 준비 상태로 전이


Ready State

프로세스가 모든 자원을 할당 받고 프로세서 할당을 기다리는 상태

프로세서만 없으며 나머지 필요 자원은 갖고 있으며 즉시 실행 가능


Running State

프로세서에 의해 실행되고 있는 상태로, 필요한 모든 자원을 소유한 상태

- Preemption : 실행중인 프로세스가 프로세서 시간 할당량을 다 소비하거나 우선순위 등으로 자신에게 할당된 자원을 반납해야 하는 경우 준비상태로 전이

- Block/Sleep : 프로세스가 실행중 자원 요청 등이 여러 이유로 system call을 하는 경우 대기 상태로 전이


Blocked/Asleep State

프로세스가 프로세서 외의 특정 자원을 요청하고 이를 할당 받을 때까지 기다리고 있는 상태

자원 요청은 system call을 통하며 커널 내 자원 할당은 Routine에서 관리

- System Call = SVC(Supervisor Call) : OS에서 제공되는 기본적인 함수, 가장 우선 처리

- Wakeup : 프로세스가 요청한 자원을 할당 받는 등의 이벤트가 생기면 준비 상태로 전이



Suspended Ready State

프로세스 생성 후 기억장치 양이 부족하거나, 준비 상태의 프로세스가 기억 장치를 잃은 경우


Suspended Asleep State

대기 상태에서 기억장치를 잃은 경우

- 활동 상태 프로세스가 기억 장치를 잃는 이유는 커널에 의해 선택되거나 프로세스 스스로 반납하기 때문

- Swap-out(Suspend) : 프로세스가 기억장치를 잃는 경우

- Swap-in(Resume) : 프로세스에게 기억장치가 할당되는 경우


Terminated/Zombie State

프로세스의 실행이 완료되어 모든 자원을 반납하고 커널 공간 내에 PCB 등의 프로세스 관리 정보만 남아있는 상태

728x90