본문 바로가기

Microsoft/Windows System Programming

프로세스의 상태 변화

CPU는 하나의 프로세스만 실행 가능하다고 말씀 드렸습니다.

프로세스의 상태 변화를 통해 어떻게 실행되고 있는지 알아보도록 하겠습니다.

 

 

 

1. 프로세스 생성 

S는 프로세스가 생성됨을 의미합니다. 생성되고 나서 바로 Ready 상태로 바뀝니다. 만약 놀고 있는 CPU가 있다면 바로 스케쥴러에 의해

Running 상태로 변경될 것입니다.

 

2. Ready -> Running

Ready 상태에 있는 프로세스는 언제든지 스케쥴러에 의해 Running 상태로 변경될 수 있습니다.

 

3. Running -> Ready

프로세스도 우선순위가 있습니다. 알고 있으신 것처럼 Windows OS는 선점형 방식을 취하고 있기 때문에 우선순위가 높은 프로세스가

실행된다면 Running -> Ready 상태로 변경될 수 있습니다.

 

4. Running -> Blocked

Running 상태에서 데이터 입,출력이 진행 중에 있다면 CPU를 사용하지 않고 있을 것입니다. 효육적으로 사용하기 위해서는 이런 상태의 프로세스는 Blocked로 상태 변경해서 잠시 내려놓고, 다른 프로세스가 CPU를 사용하게 하는게 더 효율적입니다.

 

5. Blocked -> Ready

데이터 입,출력 작업(파일 I/O)이 끝나고 나면 다시 Ready 상태로 변경되고, 다시 연산이 필요할 경우 스케쥴러에 의해서 Running 상태로 변경됩니다. Blocked 바로 Running 상태로 변경은 불가능합니다.

 

 

 

'Microsoft > Windows System Programming' 카테고리의 다른 글

컨텍스트 스위칭(Context Switching)  (0) 2015.04.26