티스토리 뷰

728x90

HRN (Highest Response Ratio Next)스케줄링 알고리즘 중 하나로, 우선순위 스케줄링에 기반한 방식입니다. 주로 프로세스 스케줄링에서 사용되며, 기아 현상(Starvation)을 방지하는 것이 특징입니다. HRN응답률(Response Ratio)을 계산하여 그 값이 가장 높은 프로세스를 다음에 실행하는 방식입니다.

주요 개념:

  • 응답률(Response Ratio) = (기 시간 + 행 시간) / 행 시간
  • 여기서,
    • 대기 시간: 프로세스가 준비 상태에서 대기한 시간
    • 실행 시간: 프로세스가 실행되는 데 필요한 시간(서비스 시간)
    이 응답률을 계산하여 응답률이 가장 높은 프로세스가 먼저 실행됩니다.

HRN 알고리즘의 동작 방식:

  1. 모든 프로세스에 대해 응답률 계산: HRN 알고리즘은 대기 중인 모든 프로세스의 응답률을 계산합니다.
  2. 가장 높은 응답률을 가진 프로세스 실행: 응답률이 가장 높은 프로세스가 다음에 실행됩니다.
  3. 대기 시간이 반영됨: 프로세스의 대기 시간이 길어질수록 응답률이 높아지기 때문에, 오래 기다린 프로세스가 우선적으로 실행됩니다. 이로 인해 기아 현상이 방지됩니다.

HRN의 장점:

  • 기아 현상 방지: 대기 시간이 오래된 프로세스의 응답률이 높아져 우선적으로 실행되므로, 특정 프로세스가 영원히 대기하는 기아 상태가 발생하지 않습니다.
  • 프로세스 간 공정성: 실행 시간이 짧은 프로세스는 빠르게 처리되지만, 실행 시간이 긴 프로세스도 어느 정도 기다리면 처리될 수 있습니다.

HRN의 단점:

  • 복잡성: 매번 응답률을 계산해야 하므로, 계산이 복잡해질 수 있습니다.
  • 실시간 시스템에 부적합: HRN은 실시간 시스템에서 사용하는 데 적합하지 않습니다. 실시간 시스템은 즉각적인 응답이 필요하기 때문에, HRN처럼 대기 시간을 반영한 스케줄링 방식은 적합하지 않습니다.

HRN의 응답률 계산 예시:

  • 예를 들어, 두 개의 프로세스 A와 B가 있고,
    • A의 실행 시간이 3이고 대기 시간이 2라면,
      • A의 응답률 = (2 + 3) / 3 = 1.67
    • B의 실행 시간이 5이고 대기 시간이 1이라면,
      • B의 응답률 = (1 + 5) / 5 = 1.2
    이 경우, A의 응답률이 더 높기 때문에 A가 먼저 실행됩니다.

요약:

  • HRN (Highest Response Ratio Next)는 대기 시간과 실행 시간을 고려해 응답률을 계산하고, 가장 높은 응답률을 가진 프로세스를 실행하는 방식입니다. 기아 현상을 방지하고 공정성을 제공하는 장점이 있으며, 주로 비실시간 시스템에서 사용됩니다.
728x90