MrBuides
29-06-2010, 10:58
Tình hình là mình ôn thi liên thông nhưng ông thầy dạy rất tồi, nói đúng hơn là lão không hiểu sâu môn này mà cứ đọc tài liệu rồi đi dạy nên lên đây nhờ anh em cho ý kiến dùm bài này :)
Môn: Hệ điều hành
Đề: Giả sử trong hệ thống có 3 tiến trình P1, P2, P3. Trong đó thứ tự phát sinh và thời gian xử lý của mỗi tiến trình được cho trong bảng sau"
Tiến trình -------Thứ tự phát sinh--------Thời gian xử lý
P1-------------------1----------------------10
P2-------------------2---------------------- 4
P3-------------------3----------------------- 7
Cho biết thời gian chờ của từng tiến trình và thời gian chờ trung bình (biết rằng hệ thống sử dụng chiến lược FIFO)
Vấn đề được bắt đầu tại đây:
- Theo cách giải của ông thầy ở trên lớp:
Tiến trình----Thứ tự phát sinh-------Thời gian xử lý----Thời gian chờ
P1--------------- 1----------------------10----------------0
P2----------------2-----------------------4-----------10 - 2 = 8
P3----------------3-----------------------7---------(10 + 4) -3 = 11
=> Thời gian chờ trung bình là: (0 + 8 +11)/3 = 6,333
Mình hỏi vì sao trừ 2 và trừ 3 ở P1 và P2 thì được giải thích là trừ cho thứ tự phát sinh (thứ tự vào) nhưng theo mình được biết chỉ trừ cho thời điểm vào nếu đề cho thời điểm vào.
- Theo cách giải của một lão người quen:
Tiến trình Thứ tự phát sinh Thời gian xử lý Thời gian chờ
P1----------------1----------------------10--------------0
P2----------------2-----------------------4----------10 - 1 = 9
P3----------------3----------------------7---------(10 + 4) -2 = 12
=> Thời gian chờ trung bình là: (0 + 9 +12)/3 = 7
Cái này thì mình được giải thích là P2 đứng thứ 2 nên phải trừ 1 vì chờ P1, P3 trừ 2 vì chờ P1 và P2 (không hiểu mông tê gì cả...)
- Và đây là cách giải theo tài liệu ông thầy (giải cách 1) đưa về nghiên cứu:
Tiến trình-----Thứ tự phát sinh-------Thời gian xử lý----Thời gian chờ
P1----------------1---------------------10--------------0
P2----------------2----------------------4-------------10
P3----------------3----------------------7----------10 + 4 = 14
=> Thời gian chờ trung bình là: (0 + 10 + 14)/3 = 8
Đây là cách theo mình thấy là hợp lý nhất, P1 xử lý đầu tiên nên nó không chờ suy ra thời gian chờ là 0, P2 xử lý ngay sau P1 thì thời gian chờ nó phải là 10, nếu nó là 9 hay 8 như 2 cách trên thì P1 chưa xử lý xong nó đã nhảy vào.
Và như thế mình bị bấn loạn bởi bài này vì không biết cách nào là đúng. Nhờ anh em phân tích dùm. Thanks :)
Môn: Hệ điều hành
Đề: Giả sử trong hệ thống có 3 tiến trình P1, P2, P3. Trong đó thứ tự phát sinh và thời gian xử lý của mỗi tiến trình được cho trong bảng sau"
Tiến trình -------Thứ tự phát sinh--------Thời gian xử lý
P1-------------------1----------------------10
P2-------------------2---------------------- 4
P3-------------------3----------------------- 7
Cho biết thời gian chờ của từng tiến trình và thời gian chờ trung bình (biết rằng hệ thống sử dụng chiến lược FIFO)
Vấn đề được bắt đầu tại đây:
- Theo cách giải của ông thầy ở trên lớp:
Tiến trình----Thứ tự phát sinh-------Thời gian xử lý----Thời gian chờ
P1--------------- 1----------------------10----------------0
P2----------------2-----------------------4-----------10 - 2 = 8
P3----------------3-----------------------7---------(10 + 4) -3 = 11
=> Thời gian chờ trung bình là: (0 + 8 +11)/3 = 6,333
Mình hỏi vì sao trừ 2 và trừ 3 ở P1 và P2 thì được giải thích là trừ cho thứ tự phát sinh (thứ tự vào) nhưng theo mình được biết chỉ trừ cho thời điểm vào nếu đề cho thời điểm vào.
- Theo cách giải của một lão người quen:
Tiến trình Thứ tự phát sinh Thời gian xử lý Thời gian chờ
P1----------------1----------------------10--------------0
P2----------------2-----------------------4----------10 - 1 = 9
P3----------------3----------------------7---------(10 + 4) -2 = 12
=> Thời gian chờ trung bình là: (0 + 9 +12)/3 = 7
Cái này thì mình được giải thích là P2 đứng thứ 2 nên phải trừ 1 vì chờ P1, P3 trừ 2 vì chờ P1 và P2 (không hiểu mông tê gì cả...)
- Và đây là cách giải theo tài liệu ông thầy (giải cách 1) đưa về nghiên cứu:
Tiến trình-----Thứ tự phát sinh-------Thời gian xử lý----Thời gian chờ
P1----------------1---------------------10--------------0
P2----------------2----------------------4-------------10
P3----------------3----------------------7----------10 + 4 = 14
=> Thời gian chờ trung bình là: (0 + 10 + 14)/3 = 8
Đây là cách theo mình thấy là hợp lý nhất, P1 xử lý đầu tiên nên nó không chờ suy ra thời gian chờ là 0, P2 xử lý ngay sau P1 thì thời gian chờ nó phải là 10, nếu nó là 9 hay 8 như 2 cách trên thì P1 chưa xử lý xong nó đã nhảy vào.
Và như thế mình bị bấn loạn bởi bài này vì không biết cách nào là đúng. Nhờ anh em phân tích dùm. Thanks :)