Q) 여러가지 CPU 스케줄링 기법은 어떻게 평가되나요?
A) 시스템 관점에서는 CPU 이용률과 처리량(throughput)을 높이는 데 목적이 있고 개별 프로세스 관점에서는 응답시간, 대기시간, 소요시간을 짧게 하는 것이 목적입니다. 이때 응답시간은 준비상태의 프로세스에게 최초로 CPU가 할당되기까지 걸린 시간, 대기 시간은 ready 상태에서 CPU를 기다린 총 시간, 소요시간은 프로세스가 CPU를 요청한 시점으로부터 원하는 만큼의 CPU를 모두 사용하는 데 걸린 시간입니다. 소요시간은 CPU 버스트가 완료될 때까지의 시간으로, 프로그램의 종료시점과는 좀 다릅니다.
Q) 여러가지 CPU 스케줄링 방법에 대해 간략히 설명해주세요.
A) 우선 스케줄링을 두가지로 나눌 수 있습니다. CPU를 강제로 빼앗기는 선점형 스케줄링과 CPU를 강제로 빼앗기지 않는 비선점형 스케줄링이 있습니다.
FCFS은 먼저 온 프로세스부터 CPU를 할당합니다. 이는 비선점형 스케줄링입니다. 소요 시간이 긴 프로세스가 먼저 도착해버리면 전체적으로 프로세스들의 효율성을 낮춘다는 단점을 갖고 있습니다.
SJF은 CPU 버스트가 짧은 프로세스에게 먼저 CPU를 할당해주는 방식이며 역시 비선점형 스케줄입니다. CPU 버스트가 긴 프로세스는 오랜시간 CPU를 할당받지 못하는 starvation문제가 발생할 수 있습니다.
SRTF는 SJF와 유사하나 중간에 새로운 프로세스가 도착하면 새로 스케줄링을 합니다. 따라서 선점형 스케줄링이며 현재 실행중인 프로세스의 남은 CPU버스트 시간보다 더 짧은 CPU버스트시간을 가지는 프로세스가 도착하면 CPU를 빼앗깁니다.
Priority Scheduling은 우선순위대로 CPU를 할당해주는 스케줄링입니다. 선점형 스케줄링 방식에서는 더 높은 우선 순위의 프로세스가 도착하면 그 프로세스에게 CPU를 빼앗기고 비선점형 스케줄링 방식에서는 더 높은 우선순위의 프로세스가 도착하더라도 그 프로세스는 우선 ready queue에 위치하게 됩니다(header). 이 방식에서도 starvation 문제가 발생합니다. aging을 통해 starvation 문제를 해결할 수 있습니다. aging기법은 오래 기다린 프로세스에게 우선순위를 높여주는 것입니다.
Round Robin 방식은 현대적인 방식으로 각 프로세스에게 동일한 크기의 할당 시간을 줍니다. 할당 시간이 지난 프로세스는 ready queue의 제일 뒤에 가서 다시 CPU를 기다리게 됩니다. RR의 장점은 가장 빠른 응답 시간을 기대할 수 있습니다. RR에서는 할당 시간이 너무 큰 경우 FCFS처럼 동작해버리고 너무 짧으면 문맥교환 오버헤드가 커지기 때문에 적절한 할당시간을 설정하는 것이 중요합니다.
Tech Interview/Operating System
[운영체제] CPU 스케줄링
반응형
댓글