라운드 로빈 (RR)

허성재's avatar
Aug 21, 2024
라운드 로빈 (RR)
라운드 로빈 (Round Robin, RR) 스케줄링은 프로세스나 작업을 공평하게 처리하기 위해 사용하는 알고리즘입니다. 주로 운영 체제의 프로세스 스케줄링과 네트워크 패킷 처리에서 사용됩니다. 이 알고리즘의 핵심은 각 작업을 순서대로 일정한 시간 동안 처리한 후 다음 작업으로 넘어가는 것입니다.

기본 개념

  1. 시간 분할: 라운드 로빈 스케줄링에서는 각 프로세스 또는 작업에 대해 동일한 시간 슬라이스(타임 퀀텀)를 할당합니다. 이 시간 동안 작업이 수행된 후, 그 작업은 대기 큐의 끝으로 이동하고, 다음 작업이 처리됩니다.
  1. 순환 처리: 모든 작업은 큐에서 순서대로 처리되며, 모든 작업이 공평하게 실행될 기회를 가지게 됩니다. 따라서, 각 프로세스는 자신의 시간 슬라이스가 끝날 때까지 실행되고, 그 후 다시 대기 큐의 뒤쪽으로 이동합니다.

특징

  1. 공정성: 모든 프로세스가 동일한 시간 슬라이스를 가지므로, 특정 프로세스가 과도한 CPU 시간을 독점하지 않도록 보장합니다. 이는 특히 다중 사용자 시스템에서 중요합니다.
  1. 단순성: 라운드 로빈 알고리즘은 구현이 간단하고 직관적입니다. 대기 큐에서 작업을 순차적으로 처리하기 때문에 복잡한 알고리즘을 필요로 하지 않습니다.
  1. 문제점: 만약 시간 슬라이스가 너무 짧으면, 컨텍스트 스위칭 오버헤드가 커져 효율성이 떨어질 수 있습니다. 반대로, 너무 길면 응답 시간이 느려질 수 있습니다.

사용 예시

  • 운영 체제의 CPU 스케줄링: 여러 프로세스가 동시에 실행될 때, 각 프로세스에게 공평하게 CPU 시간을 배분합니다.
  • 네트워크 라우팅: 네트워크 패킷을 순서대로 처리하거나, 트래픽을 공평하게 분배하는 데 사용될 수 있습니다.

예시 시나리오

  1. 프로세스 스케줄링: 프로세스 A, B, C가 CPU를 공유하고 있다고 가정합니다. 각 프로세스는 10ms의 시간 슬라이스를 갖습니다. 프로세스 A가 먼저 실행되고 10ms 후에 대기 큐의 끝으로 이동합니다. 그 다음 프로세스 B가 10ms 실행되고, 같은 방식으로 프로세스 C가 실행됩니다. 이후 다시 프로세스 A로 돌아가서 반복됩니다.
  1. 패킷 처리: 네트워크 장비에서 여러 패킷을 처리할 때, 각 패킷에 대해 일정한 처리 시간(예: 1ms)을 할당하고 순서대로 처리하여 모든 패킷이 공평하게 전송될 수 있도록 합니다.
라운드 로빈 스케줄링은 효율적인 자원 관리를 통해 시스템의 응답성과 공정성을 높이는 데 도움을 주지만, 특정 상황에서는 성능 저하를 초래할 수 있습니다. 적절한 타임 슬라이스를 설정하는 것이 중요합니다.
Share article

heo-gom