First In, First Out

Queue Simulations


큐 시뮬레이션은 도착한 항목을 큐에 넣고 처리할 차례가 되면 앞에서 꺼내 사건 순서대로 상태를 계산한다. enqueue(dequeue())를 반복하면 원형 이동도 큐의 두 연산만으로 표현할 수 있다.

원형 이동enqueue(dequeue())는 앞쪽 값을 뒤쪽으로 보낸다.
도착과 시작작업이 도착하면 enqueue, 처리를 시작하면 dequeue한다.
대기 시간wₖ = sₖ − aₖ이며 처리 시작 시각에서 도착 시각을 뺀 값이다.

큐를 돌려 발표 차례를 정한다

이동 횟수와 단계를 바꾸면 앞 사람이 뒤로 옮겨지는 과정, 차례를 배정받는 사람, 대기 명단이 바뀐다. 처음 순서는 A, B, C, D다. 정해진 횟수만큼 이동한 뒤 다음 앞 사람을 선택하므로 무작위 추첨은 아니다.

위 줄은 대기 큐이며 왼쪽이 앞쪽이다. 초록 테두리 칸은 방금 뒤로 옮긴 사람, 빨간 점선 칸은 방금 차례를 배정하고 큐에서 삭제한 사람이다. 아래 줄은 먼저 배정한 발표 차례다. 마지막 한 명은 마지막 차례다.

대기 시간은 처리를 시작한 시각에서 도착 시각을 뺀 값이다

현재 시각을 옮기면 도착한 작업의 enqueue, 프린터가 비었을 때의 dequeue, 큐에 남은 작업과 대기 시간이 바뀐다. 작업은 한 번에 하나만 처리한다.

위 줄은 대기 큐이며 왼쪽이 앞쪽이다. 표의 초록 칸은 지금 처리 중인 작업, 파란 칸은 처리를 마친 작업이며 대기 시간은 처리를 시작한 작업에만 있다.