열렬히.뛰기

알고리즘의 평가

운영체제 > Part 2 : 프로세스 관리 > 공룡책 5장 : cpu 스케쥴링 > 알고리즘의 평가

스케쥴링 알고리즘 고르기

CPU 스케쥴링 알고리즘을 고를 수 있는 기준은 무엇인가?

→ 사용자 기준을 정의한다. 이 기준은 CPU 이용률, 응답 시간, 처리량 등이 될 수 있음.

일단 기준이 정의되면, 인제 평가방법을 생각해보면 된다.

평가방법 1 : 결정론적 모델링

알고리즘에 특정한 값을 넣어서 성능을 확인하는 방법

p1 : 10
p2 : 29
p3 : 3
p4 : 7
p5 : 12
---------------------------

각 알고리즘의 평균 대기시간은?
FIFO 방식 : 28밀리초
SJF 방식 : 13밀리초
라운드 로빈 방식 : 23밀리초
  • 단순하고 빠르다.
  • 그러나 입력으로 정확한 숫자를 요구한다.
  • 예외도 충분히 나올 수 있다.

평가방법 2 : 큐잉 모델

확률론적 모델이라고 생각하면 된다.

평균 큐 길이, 평균 대기시간, 평균 도착률 등을 이용해 시간의 확률분포를 측정.

  • 대부분 지수분포 형태가 나옴.
  • 그러나 분포의 형태가 상당히 제한적이다.
    • 보통은 어쩔 수 없이 근사치를 활용한다.
  • 많은 수학적 지식이 필요하다.

평가방법 3 : 모의실험

데이터를 계속 때려 넣는 방법.

난수를 발생시켜 데이터를 만들며, 이때의 난수는 특정 확률분포에 의존.

  • 확률분포가 연속이면, 각 데이터의 생성 순서를 알 수 없음.
  • 그래서 추적 파일을 사용.
  • 단, 대량의 저장공간이 요구됨.

평가방법 4 : 구현

실제 코드를 작성해 실제 시스템에 넣어보는 것.

  • 비용이 많이 들어감.
  • 알고리즘이 사용되는 환경이 변할 수도 있음.