수업시간에 배운 RR(Round Robin) 스케줄링 알고리즘을 시뮬레이션할 수 있는 프로그램을 작성한다.
시뮬레이션의 입력으로 사용될 수 있는 값은 델타=2, 프로세스 ID (갯수), 도착시간, 서비스 타임 등이 입력의 변수로 사용될 수 있다. 그에 따라서 아래쪽 RR 의 동작이 바뀌고, 평균 응답시간도 바뀐다. 총 프로세스의 개수(총 10개 이내), 델타 값(2-5) 등으로 제한조건을 줄 수 있다.
html과 css, javascript를 사용하여 구현했다.
위 그림은 실제 실행 화면에 설명을 위한 그림을 추가한 것이다. 번호에 따른 설명은 다음과 같다.
- Time Quantum을 작성할 수 있다.
- 프로세스 스케줄링에 사용할 새로운 프로세스를 추가할 수 있다.
- 각 프로세스의 Arrival Time과 Service Time을 임의의 난수로 설정한다.
- Arrival Time: 0~10
- Service Time: 1~10
- 시뮬레이션을 실행한다.
- 모든 내용과 결과를 초기화하여 최초 실행 상태로 되돌린다.
- 프로세스 ID를 표시한다. 프로세스 추가 시 자동으로 기입된다.
- 프로세스 도착 시간을 기입할 수 있다.
- 프로세스 서비스 시간을 기입할 수 있다.
- 시뮬레이션이 실행되면 기입된 정보(Arrival Time, Service Time, Delta)에 따라 스케줄링 시뮬레이션 결과가 간트 차트 형태로 표현된다. 각 블록의 길이는 실행되는 시간의 길이를 의미하고, 각 블록에는 실행되는 프로세스 ID와 실행 시작 시각, 실행 종료 시각을 표시한다. 가로 길이가 부족하면 자동으로 줄바꿈된다.
- 실행 결과를 표로 정리하여 나타낸다.
- 실행 결과를 계산하여 평균 응답 시간을 보여준다.
- 프로그램을 실행한다.
- Time Quantum을 기입한다.
- Add Process를 눌러 원하는 수만큼 프로세스를 추가한다.
- Arrival Time과 Service Time을 기입한다. (필요한 경우 Randomize Values를 클릭하여 랜덤으로 값을 기입할 수 있다.)
- Run Simulation을 눌러 시뮬레이션을 실행한다.
- 새로운 시뮬레이션을 실행하기 위해서는 Reset 버튼을 눌러 초기화할 수 있다.