SJFS và Non SJFS

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down

SJFS và Non SJFS

Bài gửi  VoThanhTrung41 (HLT3) on 28/3/2014, 15:20

Mình xin đề cập trước hết là cách giải của Non - Preemtive SJFS và Preemtive SJFS, mình xin diễn giải thông qua ví dụ
Non - Preemtive SJFS (Không tiếm quyền)
Ví dụ
Thời điểm Tiến Trình Khoảng CPU kế tiếp
0 P1 7
2 P2 4
4 P3 1
6 P4 4


VẼ BIỂU ĐỒ GANTT:(bằng cách nào?)
- Để vẽ được biểu đồ Gantt bạn nên dựa theo nguyên tắc:
+ Với mỗi tiến trình nó sẽ được vận hành cho hết khoảng CPU của nó

- Giải thích:
+Bắt đầu từ thời điểm 0, P1 ưu tiên được vận hành và vận hành đến hết khoảng CPU của nó là 7 ms
(tiếp theo sẽ chọn tiến trình nào ?)
+Thời điểm 7, tiến trình P3 sẽ được ưu tiên vận hành vì khoảng Cpu của nó là ngắn nhất và nó cũng được vận hành cho hết khoảng Cpu của nó là 1 ms
(tiếp theo sẽ chọn tiến trình nào ?)
+Thời điểm 8 xong thì tiến trình P2 sẽ được ưu tiên vận hành vì so với P4 là nó có khoảng CPU bằng nhau nhưng P2 có thời điểm đến trước P4 nên nó dc vận hành và nó cũng được vận hành cho hết khoảng Cpu của nó là 4 ms
+ cuối cùng là P4 vận hành cho hết khoảng CPu của nó

TÍNH THỜI GIAN CHỜ TRUNG BÌNH
Ttb = (T1 + T2 + T3+..+Tn)/n
- Ttb: Thời gian chờ trung bình
- T1, T2, T3, Tn: thời gian chờ của mỗi tiến trình (tính = thời điểm bắt đầu vận hành - thời điểm đến mà đề bài cho)
===> Ttb= ( 0 + (8-2) + (7-4) + ( 12-6))/4 = 3.75 ms
Preemptive SJFS (có tiếm quyền)
Ví dụ
Thời điểm Tiến trình Khoảng CPU kế tiếp
0 P1 7
2 P2 4
4 P3 1
5 P4 4

VẼ BIỂU ĐỒ GANTT (vẽ như thế nào?)
- Nguyên tắc nên theo khi vẽ:
+ Vào mỗi thời điểm đến của 1 tiến trình, nếu tiến trình mới này có khoảng CPU < thời gian còn lại của tiến trình đang vận hành thì nó sẽ được ưu tiến tiếm (chiếm) quyền vận hành
+ Vẽ


- Giải thích:
+ Bắt đầu thời điểm 0, P1 được vận hành.
+ Trong khi P1 đang vận hành thì vào thời điểm 2, P2 đến. Theo nguyên tắc trên ta thấy Khoảng CPU của P2 < hơn thời gian mà P1 còn phải vận hành nữa ( nghĩa là 4 < 5 --> P2 thỏa điều kiện được tiếm quyền)
+ thời điểm 4, P3 đến tiếm quyền của P2 vì P2 còn phải vận hành thêm 2ms nữa mà khoảng CPU dành cho P3 có 1ms và P3 vận hành xong
+ Thời điểm 5, xét khoảng CPU mỗi tiến trình là P1 là 5ms, P2 là 2ms, P4 là 4ms. Như vậy vào thời điểm 5 này thì P4 ko dc tiếm quyền vì khoảng CPU kế tiếp của nó là 4 > thời gian còn lại mà P2 còn phải vận hành, do đó P2 được tiếm quyền ưu tiên vân hành hết 2ms
+ thời điểm 7, ta so sánh tiến trình P1 là 5ms, P4 là 4ms ==> P4 sẽ được tiếm quyền ưu tiên và vận hành hết khoảng CPU là 4ms
+cuối cùng P1 sẽ vận hành tiếp tục cho hết khoảng CPu còn lại của nó

TÍNH THỜI GIAN CHỜ TRUNG BÌNH
Ttb= ( T1 + T2 + T3 + ... + Tn)/ n
+Ttb: thời gian chờ trung bình
+ n: số tiến trình
+T1, T2, T3, ... , Tn:thời gian chờ của mỗi tiến trình được tính như sau:
* Với tiến trình P1, P2, P5 dc tiếm quyền thì
thời gian chờ của tiến trình = th.điểm tiến trình đó dc quay trở lại vận hành - thời điểm tiến trình đó bắt đầu bị gián đoạn hoặc
* Với tiến trình P4 bị vận hành chậm hơn so với thời điểm đến của nó theo đầu bài cho
thời gian chờ của tiến trình = thời điểm tiến trình đó dc vận hành chậm hơn - thời điểm đến của nó theo đầu bài cho
===> Ttb= ((11-2) + (5-4) + (4-4) + (7-5))/4 = (9+1+0+2)/4 = 3ms

VoThanhTrung41 (HLT3)

Tổng số bài gửi : 34
Join date : 23/03/2014

Xem lý lịch thành viên

Về Đầu Trang Go down

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang


 
Permissions in this forum:
Bạn không có quyền trả lời bài viết