본문 바로가기
Category/정보처리기사

HRN(Highest Response Ratio Next)이란?

by Corinee 2024. 10. 15.
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)는 대기 시간과 실행 시간을 고려해 응답률을 계산하고, 가장 높은 응답률을 가진 프로세스를 실행하는 방식입니다. 기아 현상을 방지하고 공정성을 제공하는 장점이 있으며, 주로 비실시간 시스템에서 사용됩니다.