0. 스케줄링의 목적

- CPU나 자원을 효율적으로 사용하기 위함

- 멀티 프로그래밍에서 CPU 효율을 극대화 하기 위함

 

 

 

1. 스케줄러 종류

- 장기 스케줄러 ( Long Term )

- 단기 스케줄러 ( Short Term )

- 중기 스케줄러 ( Medium Term )

 

 

 

2. 장기 스케줄러 

- 디스크와 메모리 사이의 스케줄링을 관리

- 디스크에 비해 메모리 크기는 한정되어 있음으로 수행해야할 일(pool)에서 선택적으로 프로세스에 메모리를 할당하여

  Ready Queue로 보내는 역할

- 즉, 실행을 위해 메모리에 적재한다.

- I/O가 자주 필요한 프로세스들은 I/O 시간이 오래 걸리므로 이러한 프로세스들만 많이 올라가면 CPU가 비효율적으로

  사용됨

- CPU 사용이 많은 프로세스들만 올라가면 사용자는 불편함을 느낄 수 있음

- 적절히 섞어서 올려주는 것이 장기 스케줄러의 역할

 

 

3. 단기 스케줄러

- 메모리와 CPU사이의 스케줄링을 관리

- Ready Queue에서 어떤 프로세스를 Running 할 지 결정

- 10개의 프로세스가 장기 스케줄러에 의해 Ready Queue로 올라왔다고 가정하자

- CPU는 이 중 하나의 프로세스를 선택해서 실행해야 하는데 그것을 스케줄링 해주는 것이 단기 스케줄러

  (CPU 스케줄러라고도한다.)

- CPU 자원을 효율적으로 사용하기 위함이다.

- 사용자에게 여러개의 프로세스를 동시실행되고 있는 것 처럼 보이게 하기위해 아주 짧은 시간으로 쪼개서 스케줄링

- 또는 A프로세스를 실행하다가 I/O를 해야하면 이를 기다리는 시간동안 B프로세스를 올려서 작업한다.

- 매우 짧은 시간단위로 수행되므로 단기 스케줄러라고 한다.

 

 

4. 중기 스케줄러

- 너무 많은 프로세스가 메모리에 올라와있을 경우 이를 다시 디스크로 보낸다.

- CPU를 사용하려는 프로세스들 사이에서 중재하여 일시 보류, 재활성화를 수행한다. (swapper라고도 한다.)

- 일정시간 이상 CPU에서 수행되지 않았거나, 우선순위를 기준으로 판단하여 내려보낸다.

 

+ Recent posts