스케쥴링 알고리즘 고르기
CPU 스케쥴링 알고리즘을 고를 수 있는 기준은 무엇인가?
→ 사용자 기준을 정의한다. 이 기준은 CPU 이용률, 응답 시간, 처리량 등이 될 수 있음.
일단 기준이 정의되면, 인제 평가방법을 생각해보면 된다.
평가방법 1 : 결정론적 모델링
알고리즘에 특정한 값을 넣어서 성능을 확인하는 방법
p1 : 10
p2 : 29
p3 : 3
p4 : 7
p5 : 12
---------------------------
각 알고리즘의 평균 대기시간은?
FIFO 방식 : 28밀리초
SJF 방식 : 13밀리초
라운드 로빈 방식 : 23밀리초
- 단순하고 빠르다.
- 그러나 입력으로 정확한 숫자를 요구한다.
- 예외도 충분히 나올 수 있다.
평가방법 2 : 큐잉 모델
확률론적 모델이라고 생각하면 된다.
평균 큐 길이, 평균 대기시간, 평균 도착률 등을 이용해 시간의 확률분포를 측정.
- 대부분 지수분포 형태가 나옴.
- 그러나 분포의 형태가 상당히 제한적이다.
- 보통은 어쩔 수 없이 근사치를 활용한다.
- 많은 수학적 지식이 필요하다.
평가방법 3 : 모의실험
데이터를 계속 때려 넣는 방법.
난수를 발생시켜 데이터를 만들며, 이때의 난수는 특정 확률분포에 의존.
- 확률분포가 연속이면, 각 데이터의 생성 순서를 알 수 없음.
- 그래서 추적 파일을 사용.
- 단, 대량의 저장공간이 요구됨.
평가방법 4 : 구현
실제 코드를 작성해 실제 시스템에 넣어보는 것.
- 비용이 많이 들어감.
- 알고리즘이 사용되는 환경이 변할 수도 있음.