CPU 이용률
, 효율적
, CPU 할당
, 선점형
, 비선점형
, 스케줄링 알고리즘
CPU 스케줄링은 CPU 이용률을 최대화하고 효율적으로 CPU를 사용하기 위해서, 운영체제가 각 process를 CPU에 언제 어떻게 할당시킬지 결정하는 방식입니다. 크게 선점형, 비선점형 스케줄링으로 나눌 수 있으며, 스케줄링 알고리즘에 따라서 CPU 자원을 사용하는 순서를 결정하게 됩니다. 그 기준으로는 대기 순서, 실행 시간, 작업량 등이 있고, 각 기준에 따른 스케줄링 알고리즘을 상황에 맞게 효율적으로 사용하는 것이 중요합니다.
Process는 CPU Burst와 I/O Burst를 반복하며 실행된다. CPU를 이용하는 작업은 CPU Burst, 입출력 장치를 실행하는 작업은 I/O Burst라고 할 수 있다.
입출력 집중 프로세스(I/O bound process)
비디오 재생이나 디스크 백업 작업을 담당하는 process와 같이 I/O 작업이 많은 Process
CPU 집중 프로세스(CPU bound process)
복잡한 수학 연산, 컴파일, 그래픽 처리 작업을 담당하는 process와 같이 CPU 작업이 많은 Process
선점형 스케줄링은 Process가 CPU를 비롯한 자원을 사용하고 있더라도, 운영체제가 Process로부터 자원을 강제로 빼앗아 다른 프로세스에 할당할 수 있는 스케줄링 방식이다. 선점형 스케줄링 알고리즘으로는 Round Robin, SRT, 다단계 큐, 다단계 피드백 큐 등이 있다.
비전섬형 스케줄링은 CPU가 하나의 Process에 할당되면, Process가 terminated되거나, waiting 상태로 전환될 때까지 CPU를 점유하는 스케줄링 방식이다. 비선점형 스케줄링 알고리즘으로는 FCFS, SJF, 우선순위 스케줄링 등이 있다.