Search

'Microsoft/Windows System Programming'에 해당되는 글 2건

  1. 2015.04.26 프로세스의 상태 변화
  2. 2015.04.26 컨텍스트 스위칭(Context Switching)

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' 카테고리의 다른 글

프로세스의 상태 변화  (0) 2015.04.26
컨텍스트 스위칭(Context Switching)  (0) 2015.04.26

CPU는 여러 개의 프로세스를 동시에 실행하지 못합니다.

'CPU에 존재하는 레지스터들은 현재 실행 중에 있는 프로세스 관련 데이터들로 채워져 있습니다.'

 

실행 중인 프로세스가 변경될 때 컨텍스트 스위칭이라는 과정을 거치게 됩니다.

풀어 설명하면 CPU에 존재하는 레지스터들에 있는 데이터들이 Ready -> Running 상태로 변경되는 프로세스 관련 데이터로 적재되고 이전 실행되고 있는 프로세스 관련 데이터들은 메인 메모리에 저장되는 것을 의미합니다.

 

 

 

 

 

"실행되는 프로세스의 변경과정에서 발생하는 컨텍스트 스위칭은 시스템에 많은 부담을 줍니다." 

 

출처 - 뇌를 자극하는 윈도우즈 시스템 프로그래밍

 

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

프로세스의 상태 변화  (0) 2015.04.26
컨텍스트 스위칭(Context Switching)  (0) 2015.04.26