안잭 2019. 9. 20. 21:20

- 실행중인 프로그램

- 프로세스의 CPU 할당 순서 및 방법을 결정짓는 일 '스케줄링' 이때 사용되는 알고리즘 '스케줄링 알고리즘'

- 실제로 프로세스를 관리하는 운영체제 요소 (모듈)를 가리켜 '스케줄러'라고 한다.

 

프로세스의 상태변화 

1. 프로세스의 생성 -> Ready 상태로의 전환 -> Ready상태에서 스케줄러에 의해 선택전까지 대기

2. Ready상태에서 스케줄러에 의해 실행 -> Running

3. Running상태에서 우선순위에 의해 Ready상태로의 전환

4. Running상태에서 Blocked상태로의 전환 -> 데이터 입출력에 관한 일을 수행하는 경우(프로그램 실행의 상당 부분을                                                              입출력에 소모하기 때문), Blocked상태는 스케줄러에 의해 선택될수없음

5. Blocked상태에서 Ready상태로의 전환 -> 입출력이 완료된 Blocked 상태의 프로세스는 Ready 상태로 전환

 

- Ready상태의 프로세스는 스케줄러에 의해 바로 실행 가능 , Blocked상태의 프로세스는 불가능

 

컨텍스트 스위칭

- 예) 프로세스 A 관련 레지스터 정보는 메모리에 저장 , 프로세스 B와 관련된 레지스터 정보는 CPU의 레지스터에 복원

- 컨텍스트 스위칭은 시스템에 많은 부담이 된다.