You are on page 1of 6

Cho bảng dữ liệu định thời như sau:

Tiến trình Thời gian đến Ready List Thời gian xử lý (thực thi)
(RL)
P1 0 7
P2 1 16
P3 3 8
P4 4 3
P5 2 2
Tính thời gian chờ, thời gian hoàn tất của từng tiến trình theo các giải thuật sau:
1. FCFS
2. SJF độc quyền và không độc quyền
3. RR, với thời gian xoay vòng là 3 (quantum=3)
4. Độ ưu tiên, với độ ưu tiên như sau (giá trị nhỏ có độ ưu tiên cao hơn)
Tiến trình Thời gian đến Ready List Thời gian xử lý (thực thi) Độ ưu tiên
(RL)
P1 0 7 3
P2 1 16 1
P3 3 8 4
P4 4 3 5
P5 2 2 2

HƯỚNG DẪN GIẢI


Giả sử đơn vị thời gian là t
1. Giải thuật FCFS (First Comes First Served)
- Giải thuật này thực thi theo cơ chế độc quyền
- Theo bảng dữ liệu, thứ tự nhận CPU của các tiến trình lần lượt là: P1,P2,P5,P3,P4
- Biểu đồ Gantt
P1 P2 P5 P3 P4
0 7 23 25 33 36
36
- Thời gian chờ (waiting time) của mỗi tiến trình:
P1=0
P2=7-1=6
P3=25-3=22
P4=33-4=29
P5=23-2=21
- Thời gian hoàn tất (turnaround time) của mỗi tiến trình
P1=7
P2=23-1=22
P3=33-3=30
P4=36-4=32
P5=25-2=23

2. SJF (Shortest Job First)


a. Độc quyền
- Thứ tự nhận CPU của các tiến trình được tính như sau:
o Tại 0t: P1 vào RL nhận CPU, chạy hết thời gian xử lý của nó
o Tại 7t: Bốn tiến trình còn lại đều đã vào RL và theo thứ tự: P2,P5,P3,P4. Theo
giải thuật SJF độc quyền, thứ tự nhận CPU của 4 tiến trình sẽ dựa vào thời gian
xử lý từ nhỏ đến lớn, cụ thể là: P5,P4,P3,P2
- Biểu đồ Gantt
P1 P5 P4 P3 P2
0 7 9 12 20 36

- Thời gian chờ (waiting time) của mỗi tiến trình:


P1=0
P2=20-1=19
P3=12-3=9
P4=9-4=5
P5=7-2=5
- Thời gian hoàn tất (turnaround time) của mỗi tiến trình
P1=7
P2=36-1=35
P3=20-3=17
P4=12-4=8
P5=9-2=7

b. Không độc quyền


- Thứ tự nhận CPU của các tiến trình được tính như sau:
o Tại 0t: Trong RL chỉ có P1
o Tại 1t: P2 vào RL, thứ tự nhận CPU sẽ là P1,P2 (P1 vẫn chiếm CPU vì thời gian
xử lý của P1=6,P2=16)
o Tại 2t: P5 vào RL, thứ tự nhận CPU sẽ là P5,P1,P2 (P5 được nhận CPU vì thời
gian xử lý nhỏ nhất: P5=2,P1=5,P2=16)
o Tại 3t: P3 vào RL, thứ tự nhận CPU sẽ là P5,P1,P3,P2 (thời gian xử lý:
P5=1,P1=5,P3=8,P2=16)
o Tại 4t: P4 vào RL,P5 kết thúc, thứ tự nhận CPU sẽ là P4,P1,P3,P2 (thời gian xử
lý: P5=0,P4=3,P1=5,P3=8,P2=16)
Tiến trình Thời gian đến Ready List Thời gian xử lý (thực thi) Độ ưu tiên
(RL)
P1 0 7 3
P2 1 16 1
P3 3 8 4
P4 4 3 5
P5 2 2 2

- Biểu đồ Gantt
P1 P5 P4 P1 P3 P2
0 2 4 7 12 20 36
36
- Thời gian chờ (waiting time) của mỗi tiến trình:
P1=0+(7-2)=5
P2=20-1=19
P3=12-3=9
P4=4-4=0
P5=2-2=0
- Thời gian hoàn tất (turnaround time) của mỗi tiến trình
P1=12
P2=36-1=35
P3=20-3=17
P4=7-4=3
P5=4-2=2

3. Round Robin với quantum=3


- Giải thuật này thực thi theo cơ chế không độc quyền
- Thứ tự nhận CPU của các tiến trình được tính như sau:
o Tại 0t: P1 vào RL nhận CPU, chạy hết thời gian quantum cho phép là 3t, sau đó
quay về hàng đợi RL, đúng ngay thời điểm mà P3 vào RL (2 tiến trình cùng đến
RL tại một thời điểm), hệ điều hành sẽ chọn tiến trình cũ (là P1) xếp vào RL trước
tiến trình mới (là P3). Khi đó trong RL đã có P2 và P5 đang đợi trong RL theo thứ
tự P2,P5. Do đó, thứ tự nhận CPU tiếp theo sẽ là: P2,P5,P1,P3
o Tại 3t: P2 nhận CPU và chạy 3t, sau đó quay về hàng đợi RL, đứng cuối cùng
trong danh sách các tiến trình có mặt trong RL. Tại thời điểm 4t, khi mà P2 đang
chạy thì P4 vào RL và đang đợi cùng với các tiến trình khác theo thứ tự
P5,P1,P3,P4. Do đó, thứ tự nhận CPU tiếp theo sẽ là: P5,P1,P3,P4,P2
o Tại 6t: P5 nhận CPU và chạy 2t thì kết thúc và trả CPU lại. Thứ tự nhận CPU là:
P1,P3,P4,P2
o Tại 8t: P1 nhận CPU và chạy 3t, sau đó quay về hàng đợi RL, đứng cuối cùng
trong danh sách các tiến trình đang đợi trong RL. Do đó, thứ tự nhận CPU tiếp
theo sẽ là: P3,P4,P2,P1
o Tại 11t: P3 nhận CPU và chạy 3t, sau đó quay về hàng đợi RL, đứng cuối cùng
trong danh sách các tiến trình đang đợi trong RL. Do đó, thứ tự nhận CPU tiếp
theo sẽ là: P4,P2,P1,P3
o Tại 14t: P4 nhận CPU và chạy 3t thì kết thúc và trả CPU lại. Thứ tự nhận CPU là:
P2,P1,P3
o Tại 17t: P2 nhận CPU và chạy 3t, sau đó quay về hàng đợi RL, đứng cuối cùng
trong danh sách các tiến trình đang đợi trong RL. Do đó, thứ tự nhận CPU tiếp
theo sẽ là: P1,P3,P2
o Tại 20t: P1 nhận CPU, chạy 1t thì kết thúc và trả lại CPU. Thứ tự nhận CPU tiếp
theo là: P3,P2
o Tại 21t: P3 nhận CPU chạy 3t, sau đó quay về hàng đợi RL, đứng cuối cùng trong
danh sách các tiến trình đang đợi trong RL. Thứ tự nhận CPU tiếp theo là: P2,P3
o Tại 24t: P2 nhận CPU và chạy 3t, sau đó quay về hàng đợi RL, đứng cuối cùng
trong danh sách các tiến trình đang đợi trong RL. Do đó, thứ tự nhận CPU tiếp
theo sẽ là: P3,P2
o Tại 27t: P3 nhận CPU, chạy 2t thì kết thúc và trả lại CPU. Lúc này trong RL chỉ
còn có P2 với thời gian xử lý còn lại là 7t. P2 nhận CPU nhưng vẫn thực hiện
nhận và trả CPU xoay vòng theo khoảng thời gian là 3t cho đến khi chạy xong.
Tiến trình Thời gian đến Ready List Thời gian xử lý (thực thi) Độ ưu tiên
(RL)
P1 0 7 3
P2 1 16 1
P3 3 8 4
P4 4 3 5
P5 2 2 2

- Biểu đồ Gantt
P1 P2 P5 P1 P3 P4 P2 P1 P3 P2 P3 P2 P2 P2
0 3 6 8 11 14 17 20 21 24 27 29 32 35 36
36
- Thời gian chờ (waiting time) của mỗi tiến trình:
P1=0+(8-3)+(20-11)=14
P2=(3-1)+(17-6)+(24-20)+(29-27)=19
P3=(11-3)+(21-14)+(27-24)=18
P4=14-4=10
P5=6-2=4
- Thời gian hoàn tất (turnaround time) của mỗi tiến trình
P1=21
P2=36-1=35
P3=29-3=26
P4=17-4=13
P5=8-2=6

4. Độ ưu tiên
a. Độc quyền
- Thứ tự nhận CPU của các tiến trình được tính như sau:
o Tại 0t: P1 vào RL nhận CPU, chạy hết thời gian xử lý của nó
o Tại 7t: Bốn tiến trình còn lại đều đã vào RL và theo thứ tự: P2,P5,P3,P4. Theo
giải thuật SJF độc quyền, thứ tự nhận CPU của 4 tiến trình sẽ dựa vào độ ưu tiên
từ cao xuống thấp, cụ thể là: P2,P5,P3,P4
Tiến trình Thời gian đến Ready List Thời gian xử lý (thực thi) Độ ưu tiên
(RL)
P1 0 7 3
P2 1 16 1
P3 3 8 4
P4 4 3 5
P5 2 2 2

- Biểu đồ Gantt
P1 P2 P5 P3 P4
0 7 23 25 33 36

- Thời gian chờ (waiting time) của mỗi tiến trình:


P1=0
P2=7-1=6
P3=25-3=22
P4=33-4=29
P5=23-2=21
- Thời gian hoàn tất (turnaround time) của mỗi tiến trình
P1=7
P2=23-1=22
P3=33-3=30
P4=36-4=32
P5=25-2=23

b. Không độc quyền


- Thứ tự nhận CPU của các tiến trình được tính như sau:
o Tại 0t: Trong RL chỉ có P1
o Tại 1t: P2 vào RL, thứ tự nhận CPU sẽ là P2,P1 (P2 chiếm CPU vì độ ưu tiên cao
hơn. Độ ưu tiên: P1=3,P2=1)
o Tại 2t: P5 vào RL, thứ tự nhận CPU sẽ là P2,P5,P1 (Độ ưu tiên: P1=3,P2=1,P5=2)
o Tại 3t: P3 vào RL, thứ tự nhận CPU sẽ là P2,P5,P1,P3 (Độ ưu tiên:
P1=3,P2=1,P5=2,P3=4)
o Tại 4t: P4 vào RL, thứ tự nhận CPU sẽ là P2,P5,P1,P3,P4 (Độ ưu tiên:
P1=3,P2=1,P5=2,P3=4,P4=5)
Tiến trình Thời gian đến Ready List Thời gian xử lý (thực thi) Độ ưu tiên
(RL)
P1 0 7 3
P2 1 16 1
P3 3 8 4
P4 4 3 5
P5 2 2 2

- Biểu đồ Gantt
P1 P2 P5 P1 P3 P4
0 1 17 19 25 33 36
36
- Thời gian chờ (waiting time) của mỗi tiến trình:
P1=0+(19-1)=18
P2=1-1=0
P3=25-3=22
P4=33-4=29
P5=17-2=15
- Thời gian hoàn tất (turnaround time) của mỗi tiến trình
P1=25
P2=17-1=16
P3=33-3=30
P4=36-4=32
P5=19-2=17

You might also like