Multi-Level Feedback Queue

ORCASUIT·2023년 11월 27일

날짜 : 2023-11-26 17:18

주제 :


개요

Multi-Level Feedback Queue (MLFQ) 스케줄링은 복잡하지만 효율적인 프로세스 스케줄링 알고리즘 중 하나입니다. 이 알고리즘은 여러 개의 큐를 사용하며, 각 큐는 다른 우선순위 레벨을 가집니다. MLFQ는 다양한 종류의 프로세스에 대응하고, 시스템 성능을 최적화하기 위해 설계되었습니다.

MLFQ의 주요 특징

  1. 다중 큐 구조

    • MLFQ는 여러 개의 큐를 가지며, 각 큐는 다른 우선순위를 가집니다. 일반적으로, 상단 큐가 가장 높은 우선순위를, 하단 큐가 가장 낮은 우선순위를 가집니다.
  2. 동적 우선순위 조정

    • 프로세스의 우선순위는 동적으로 변경됩니다. 프로세스가 CPU 시간을 많이 소모하면 우선순위가 낮아지고(우선순위 강등), 반대로 CPU를 적게 사용하면 우선순위가 상승합니다.
  3. 시간 할당량(Time Quantum)

    • 각 큐는 다른 시간 할당량(타임 슬라이스)을 가집니다. 일반적으로, 높은 우선순위의 큐는 짧은 시간 할당량을, 낮은 우선순위의 큐는 긴 시간 할당량을 가집니다.
  4. Starvation 방지

    • 낮은 우선순위의 프로세스가 기아 상태(starvation)에 빠지지 않도록, 오랫동안 대기하는 프로세스의 우선순위를 시간이 지남에 따라 높여줍니다.

MLFQ 작동 방식

  1. 초기 할당

    • 새로운 프로세스는 일반적으로 가장 높은 우선순위의 큐에 배치됩니다.
  2. 시간 할당량 소진

    • 프로세스가 자신에게 할당된 시간을 모두 사용하면, 다음 우선순위가 낮은 큐로 이동합니다.
  3. I/O 요청 또는 대기

    • 프로세스가 I/O 요청을 하거나 특정 이벤트를 기다리는 경우, 우선순위가 높은 큐로 이동할 수 있습니다.
  4. 우선순위 상승

    • 일정 시간 동안 실행되지 않은 프로세스는 우선순위가 점차 상승하여 궁극적으로 기아 상태를 방지합니다.

MLFQ의 장단점

  • 장점

    • 다양한 유형의 프로세스를 효율적으로 관리합니다.
    • CPU 바운드 프로세스와 I/O 바운드 프로세스 간의 균형을 잘 맞춥니다.
    • 시스템 성능을 최적화합니다.
  • 단점

    • 알고리즘이 복잡하여 구현이 어렵습니다.
    • 올바른 파라미터 설정(시간 할당량, 우선순위 레벨 등)이 필요합니다.

MLFQ 스케줄링은 특히 시스템의 성능과 반응성을 최적화하는 데 중요한 역할을 합니다. 그러나 구현의 복잡성으로 인해 이 알고리즘을 적절히 관리하고 조정하는 것이 중요합니다.

출처(참고문헌)

연결문서

0개의 댓글