본문 바로가기
프로그래밍 기초/운영체제

프로세스 상태 전이도 ( Process State Diagram )

by junsday 2017. 6. 2.

프로세스 상태 전이도 ( Process State Diagram )




프로세스(Process)란?


보조 기억장치에 있던 프로그램이 주기억장치에 적재되어 실행중일때 이를 프로세스라고 한다. 쉽게 말해서 실행중인 프로그램을 프로세스라고 한다. 일반적으로 CPU를 뜻하는 하드웨어적 의미인 프로세서(Processor)와 헷갈리지 말자.





다음 그림은 프로세스의 상태와 상태 전이를 나타낸 것이다. 사실 프로세스의 상태라고 말은 하지만 엄밀하게 말한다면 스레드(Thread)의 상태라고 보는 것이 더 정확하다. 따라서 한 프로세스에서 두 개 이상의 스레드가 작업중이라면 한 프로세스에서 한 번에 두 가지 이상의 상태가 나타날 수 있다.



< 프로세스 상태 >

1. Create - 프로세스가 생성되는 단계

2. Ready - 프로세스가 생성되어 주기억장치에 적재가 되고, 실행하는데 필요한 자원을 모두 얻은 상태이다. 

   Running 상태가 되기위한 모든 준비가 끝난 상태로 대기큐에서 대기중인 상태

3. Running - 프로세스가 CPU를 점유하여 실행중인 상태이다

4. Terminated - 프로세스가 종료되는 상태

5. Asleep - 주기억장치에 적재는 되었지만 필요한 자원을 얻지 못한 상태

6. Suspended Ready - 필요한 자원은 모두 얻었지만 주기억장치에 적재되지 못한 상태

7. Suspended Blocked - 필요한 자원도 없고 주기억장치에도 적재되지 못한 상태


< 상태 전이 >

1. Dispatch - 프로세스 스케줄러에 의해 결정된 우선순위에 따라 프로세스가 CPU를 점유하게 되는 상태

2. Time out - 프로세스가 실행중이다가 제한된 시간을 다 소비하여 CPU 점유를 빼앗기는 상태

3. Block - 실행중이던 프로세스가 외부 요인에 의해서 자원을 빼앗기는 상태

4. Wake up - 프로세스가 자원을 할당받는 상태

5. Swap in - 프로세스가 주기억장치에 적재 되는 상태

6. Swap out - 프로세스가 주기억장치에서 해제 되는 상태



'프로그래밍 기초 > 운영체제' 카테고리의 다른 글

프로세스 스케줄링(Process Scheduling)  (2) 2017.06.05
문맥교환(Context Switching)  (0) 2017.06.02
인터럽트(Interrupt)  (0) 2017.06.02
PCB ( Process Control Block )  (0) 2017.06.02
운영체제 기초 1강~12강  (0) 2016.07.18

댓글