본문 바로가기
IT

FCFS, SJF, RR 방식 예제 비교 - 스케줄링 알고리즘의 이해

by 카카오망고 2025. 4. 22.
반응형
FCFS(First-Come First-Served) 알고리즘

목차

    현대의 컴퓨터 시스템에서 여러 프로세스가 동시에 실행되는 환경은 흔한 일입니다. 이때 각 프로세스가 CPU 자원을 어떻게 할당받는지가 시스템의 전반적인 성능에 크게 영향을 미치는데, 이를 관리하기 위한 다양한 스케줄링 알고리즘이 존재합니다. 본 글에서는 가장 기본적인 세 가지 스케줄링 알고리즘인 FCFS(First-Come First-Served), SJF(Shortest Job First), RR(Round Robin)을 비교하여 각각의 특징과 장단점을 살펴보겠습니다.

     

    스케줄링 알고리즘은 크게 비선점형과 선점형으로 나눌 수 있으며, 각 알고리즘은 CPU 자원을 할당하는 방식이 다릅니다. 비선점형 알고리즘은 이미 CPU를 점유한 프로세스가 작업을 마칠 때까지 다른 프로세스가 CPU를 얻지 못하는 방식입니다. 반면, 선점형 알고리즘은 CPU를 점유한 프로세스가 일정 시간 후에 다른 프로세스에게 CPU 제어권을 빼앗길 수 있는 방식입니다. 이러한 스케줄링 알고리즘은 CPU Utilization, Throughput, Turnaround Time, Waiting Time, Response Time과 같은 다양한 성능 기준에 영향을 미칩니다.

    👉FCFS, SJF, RR 방식 예제 비교 바로 보기

    FCFS(First-Come First-Served) 알고리즘

    FCFS는 가장 간단한 스케줄링 알고리즘 중 하나로, 먼저 도착한 프로세스가 먼저 CPU를 할당받는 방식입니다. 이는 은행의 대기줄처럼, 먼저 줄을 서 있는 사람부터 처리하는 원리와 비슷합니다. FCFS의 장점은 구현이 간단하다는 것이며, 프로세스가 도착한 순서에 따라 처리되므로 예측 가능성이 높습니다.

     

    그러나 FCFS 알고리즘은 단점도 존재합니다. 특히 긴 프로세스가 먼저 도착할 경우, 그 뒤에 오는 짧은 프로세스들이 긴 대기 시간을 견뎌야 하는 문제가 발생합니다. 이러한 현상을 'Convoy Effect'라고 하며, 이는 전체 시스템의 성능을 저하시키는 원인이 됩니다. 예를 들어, 하나의 프로세스가 20초를 소요하면, 그 뒤에 대기하는 모든 프로세스는 최소 20초를 기다려야 하므로 평균 대기 시간이 증가하게 됩니다.

    SJF(Shortest Job First) 알고리즘

    SJF는 CPU를 가장 짧은 시간 동안 사용할 프로세스에게 우선적으로 CPU를 할당하는 방식입니다. 이는 평균 대기 시간을 최소화하는 데 가장 효과적인 알고리즘으로 알려져 있습니다. SJF는 비선점형과 선점형으로 나눌 수 있으며, 비선점형 SJF는 대기 중인 프로세스 중 가장 짧은 작업을 완료한 후 다음 작업을 결정합니다.

     

    예를 들어, 프로세스가 진행 중일 때, 새로운 프로세스가 도착하더라도 현재 진행 중인 프로세스가 끝날 때까지 기다려야 합니다. 반면, 선점형 SJF인 SRTF(Shortest Remaining Time First)는 현재 실행 중인 프로세스보다 짧은 프로세스가 도착하면 CPU 제어권을 빼앗을 수 있습니다. SJF의 단점으로는, 긴 프로세스가 무한정 대기해야 하는 'Starvation' 문제가 발생할 수 있다는 점입니다. 또한, 실제 시스템에서 CPU 사용 시간을 미리 예측하는 것은 매우 어렵기 때문에 SJF를 적용하는 데 한계가 있습니다.

    RR(Round Robin) 알고리즘

    RR은 현대 시스템에서 널리 사용되는 스케줄링 알고리즘으로, 각 프로세스에 정해진 시간을 할당하여 순환적으로 CPU를 사용할 수 있도록 하는 방식입니다. 이 방식의 가장 큰 장점은 모든 프로세스가 공평하게 CPU 자원을 이용할 수 있도록 하여 응답 시간을 줄일 수 있다는 점입니다. 즉, 모든 프로세스가 일정 시간만 기다리면 CPU를 사용할 수 있으므로, 대기 시간이 길어지는 문제를 해결할 수 있습니다.

     

    하지만 RR 알고리즘은 할당 시간을 너무 짧게 설정하면頻繁한 Context Switching이 발생하여 오버헤드가 증가하는 단점이 있습니다. 따라서 적절한 Time Quantum을 설정하는 것이 중요합니다. 예를 들어, 할당 시간이 너무 짧으면 CPU 자원을 효율적으로 사용하지 못하고, 반대로 너무 길면 FCFS와 비슷한 상황이 발생할 수 있습니다.

    👉FCFS, SJF, RR 방식 예제 비교 확인하기

    세 가지 알고리즘의 비교

    각각의 알고리즘은 특정 상황에 따라 최적의 성능을 발휘할 수 있습니다. 다음은 FCFS, SJF, RR 알고리즘의 특징을 비교한 표입니다.

    알고리즘 장점 단점
    FCFS 구현이 간단함 긴 대기 시간 발생
    SJF 최소 평균 대기 시간 Starvation 문제
    RR 짧은 응답 시간 Context Switching 오버헤드

    결론

    FCFS, SJF, RR 알고리즘은 각각 고유한 장점과 단점을 지니고 있으며, 사용자의 요구에 따라 적절한 알고리즘을 선택하는 것이 중요합니다. FCFS는 간단하고 예측 가능한 방식으로 안정적인 성능을 제공하지만, 긴 대기 시간을 초래할 수 있습니다. SJF는 평균 대기 시간을 최소화할 수 있지만 Starvation 문제와 CPU 사용 시간 예측의 어려움이 있습니다. RR은 공정성을 중시하며 응답 시간을 개선하지만, 적절한 Time Quantum 설정이 필요합니다.

     

    따라서 각 알고리즘의 특성을 이해하고, 실제 상황에 맞는 스케줄링 방식을 선택하는 것이 중요합니다. 앞으로도 다양한 스케줄링 알고리즘에 대한 연구와 적용이 필요할 것이며, 이를 통해 더욱 효율적인 시스템 운영이 가능할 것입니다.

    FAQ

    • Q: FCFS 알고리즘의 가장 큰 단점은 무엇인가요?
    • A: FCFS 알고리즘의 가장 큰 단점은 긴 프로세스가 우선 처리될 경우, 뒤에 대기하는 짧은 프로세스들이 긴 대기 시간을 겪게 되는 'Convoy Effect'입니다.
    • Q: SJF 알고리즘을 사용할 때 어떤 문제가 발생할 수 있나요?
    • A: SJF 알고리즘은 긴 프로세스가 무한정 대기할 수 있는 'Starvation' 문제가 발생할 수 있으며, CPU 사용 시간을 미리 알 수 없어 실제 환경에서 적용하기 어려운 점이 있습니다.

    👉FCFS, SJF, RR 방식 예제 비교 확인하기

    반응형