스케줄링

여러 프로세스의 상황을 고려해 CPU와 시스템 자원을 어떻게 배정할지 결정하는 일을 말한다.

고수준 스케줄링

전체 시스템의 부하를 고려해 작업을 시작할지 말지를 결정한다.

이 결정에 따라 시스템 전체 프로세스 수가 결정된다.

중간수준 스케줄링

시스템의 부하를 조절하려면 고수준 스케줄링 대신 중간 수준 스케줄링을 고려해야한다.

시스템에 과부하가 걸려서 전체 프로세스 수를 조절해야 한다면 이미 활성화된 프로세스 중 일부를

보류 상태로 보낸다. 보류된 프로세스는 여유가 생기면 다시 활성화 된다.

저수준 스케줄링

저수준 스케줄링에서는 실제로 작업이 이뤄진다.

오늘날의 CPU 스케줄러는 대부분 중간, 저수준 스케줄링으로 구성되어있다.

CPU 스케줄러는 필요에 따라 준비상태에 있는 프로세스를 실행 상태로 옮기기도 하고,

대기 상태로 보내기도 하며, 준비 상태로 보내기도 한다.

준비 상태에 있는 프로세스 중 어떤 프로세스를 선택할 지에 따라서 시스템의 성능에 많은 영향을 미친다.

스케줄링의 목적 !!!!!

CPU 스케줄링의 목적은 모든 프로세스가 공평하게 작업하도록 하는 것이다.

특정 프로세스에 편중되지 않게 골고루 자원을 배분하기 위해 공평성을 유지하면서도 안정적으로 작동해야 한다.

즉 특정 프로세스가 시스템 자원을 독점하거나 파괴하는 것을 막기위해 중요도에 따라 우선순위를 배정해야 한다.