다음 예에는 P1, P2, P3, P4, P5 및 P6이라는 6개의 프로세스가 있습니다. 도착 시간과 버스트 시간은 아래 표에 나와 있습니다. 시스템의 시간 양자는 4 단위입니다.
np 0
프로세스 ID | 도착 시간 | 버스트 시간 |
---|---|---|
1 | 0 | 5 |
2 | 1 | 6 |
삼 | 2 | 삼 |
4 | 삼 | 1 |
5 | 4 | 5 |
6 | 6 | 4 |
알고리즘에 따라 준비 큐와 간트 차트를 유지해야 합니다. 두 데이터 구조의 구조는 모든 예약 후에 변경됩니다.
준비 대기열:
처음에는 시간 0에 프로세스 P1이 도착하여 시간 조각 4 단위에 대해 예약됩니다. 따라서 준비 대기열에는 CPU 버스트 시간 5 단위로 시작할 때 하나의 프로세스 P1만 있게 됩니다.
P1 |
5 |
간트 차트
P1은 먼저 4개 유닛에 대해 실행됩니다.
준비 대기열
그 동안 P1의 실행과 함께 4개의 추가 프로세스 P2, P3, P4 및 P5가 준비 대기열에 도착합니다. P1은 아직 완료되지 않았습니다. 1단위의 시간이 더 필요하므로 준비 대기열에 다시 추가됩니다.
P2 | P3 | P4 | P5 | P1 |
6 | 삼 | 1 | 5 | 1 |
간트 차트
P1 후에 P2는 간트 차트에 표시된 4시간 단위 동안 실행됩니다.
준비 대기열
P2가 실행되는 동안 하나 이상의 프로세스 P6이 준비 대기열에 도착합니다. P2가 아직 완료되지 않았으므로 P2도 남은 버스트 시간 2단위로 준비 대기열에 다시 추가됩니다.
P3 | P4 | P5 | P1 | P6 | P2 |
삼 | 1 | 5 | 1 | 4 | 2 |
간트 차트
P1과 P2 후에 P3은 CPU 버스트 시간이 3초에 불과하므로 3단위의 시간 동안 실행됩니다.
준비 대기열
P3이 완료되었으므로 종료되고 준비 대기열에 추가되지 않습니다. 다음 프로세스가 실행될 것은 P4입니다.
P4 | P5 | P1 | P6 | P2 |
1 | 5 | 1 | 4 | 2 |
간트 차트
그 후에 P1, P2 및 P3, P4가 실행됩니다. 버스트 시간은 시간 할당량보다 작은 1단위이므로 완료됩니다.
준비 대기열
준비 큐의 다음 프로세스는 버스트 시간이 5단위인 P5입니다. P4가 완료되었으므로 대기열에 다시 추가되지 않습니다.
파이썬 새 줄
P5 | P1 | P6 | P2 |
5 | 1 | 4 | 2 |
간트 차트
P5는 타임 슬라이스보다 높은 5단위의 버스트 시간이 필요하기 때문에 전체 타임 슬라이스에 대해 실행됩니다.
준비 대기열
P5는 아직 완료되지 않았습니다. 남은 버스트 시간 1개로 대기열에 다시 추가됩니다.
P1 | P6 | P2 | P5 |
1 | 4 | 2 | 1 |
간트 차트
프로세스 P1에는 실행을 완료하기 위해 다음 차례가 주어집니다. 버스트 시간은 1단위만 필요하므로 완료됩니다.
준비 대기열
P1은 완료되었으며 준비 대기열에 다시 추가되지 않습니다. 다음 프로세스 P6에는 4단위의 버스트 시간만 필요하며 다음에 실행됩니다.
P6 | P2 | P5 |
4 | 2 | 1 |
간트 차트
P6은 완료될 때까지 4단위의 시간 동안 실행됩니다.
준비 대기열
P6이 완료되었으므로 대기열에 다시 추가되지 않습니다. 준비 대기열에는 두 개의 프로세스만 있습니다. 다음 프로세스 P2에는 2단위의 시간만 필요합니다.
P2 | P5 |
2 | 1 |
간트 차트
P2는 2단위의 시간만 필요하므로 다시 실행되어 완료됩니다.
준비 대기열
이제 대기열에서 사용 가능한 유일한 프로세스는 1 단위의 버스트 시간이 필요한 P5입니다. 타임 슬라이스는 4개 단위이므로 다음 버스트에서 완료됩니다.
P5 |
1 |
간트 차트
P5는 완료될 때까지 실행됩니다.
왼쪽 조인 vs 오른쪽 조인
완료 시간, 소요 시간, 대기 시간은 아래 표와 같이 계산됩니다.
우리가 알고 있듯이,
Turn Around Time = Completion Time - Arrival Time Waiting Time = Turn Around Time - Burst Time
프로세스 ID | 도착 시간 | 버스트 시간 | 완료 시간 | 처리 시간 | 대기 시간 |
---|---|---|---|---|---|
1 | 0 | 5 | 17 | 17 | 12 |
2 | 1 | 6 | 23 | 22 | 16 |
삼 | 2 | 삼 | 열하나 | 9 | 6 |
4 | 삼 | 1 | 12 | 9 | 8 |
5 | 4 | 5 | 24 | 이십 | 열 다섯 |
6 | 6 | 4 | 이십 일 | 열 다섯 | 열하나 |
평균 대기 시간 = (12+16+6+8+15+11)/6 = 76/6대