To Tuan Admin

Number of posts: 187 Age: 55 Registration date: 2007-05-08
 | Subject: Huong dan On thi Tot nghiep 13/4/2009, 10:29 | |
| Những nội dung trọng tâm:- Lý thuyết: So sánh Đa luồng với Đa tiến trình, Những ích lợi của công nghệ Đa luồng, Nguyên lý Tập luồng (Thread Pools), Mục đích của Đồng bộ hoá công việc các tiến trình, Đoạn tương tranh, Loại trừ tương hỗ, Hai ứng dụng của Semaphore (đèn hiệu), Lập trình Bài toán Sản xuất-Tiêu thụ dùng semFull-semEmpty-CritSec, Bốn tình huống ra quyết định của trình điều phối CPU, Phân biệt Preemptive Scheduling với Non-Preemptive Scheduling, Điều phối hàng chờ nhiều mức (MQS), Điều phối hàng chờ nhiều mức có điều tiết (MFQS). - Bài tập: Sử dụng Visual C++ 6.0 để tạo một tập luồng (bằng hàm CreateThread) và đánh thức chúng khi cần thiết (bằng hàm ResumeThread), Lập trình đồng bộ hoá với Semaphore, Thuật giải điều phối CPU (Preemptive SJFS, Round-Robin): Biểu đồ Gantt và tính thời gian chờ trung bình của các tiến trình.
Last edited by To Tuan on 26/7/2009, 09:02; edited 2 times in total |
|
thaonguyen
Number of posts: 7 Registration date: 2008-06-05
 | Subject: Re: Huong dan On thi Tot nghiep 15/4/2009, 14:45 | |
| Thầy ơi cho em hỏi: theo như biểu đồ Gant của câu 3 thì thời gian chờ của P3 là 60-45=15 (đáp án lại là 22) chứ ạh. Không fải em tính vậy có sai ko ạh? Admin- Các bạn cho ý kiến thêm! - Chú ý: Gantt có 2 chữ T, cũng như phải viết hệ điều hành Windows chứ không phải là Window. |
|
diemphucnguyen
Number of posts: 8 Registration date: 2009-03-20
 | Subject: Re: Huong dan On thi Tot nghiep 16/4/2009, 13:40 | |
| Thời điểm đến của P3 là 45 nhưng tới thời điểm 60 mới được thực hiện nên thời gian chờ là 60 - 45 = 15 Sau khi thực hiện trong thời lượng là 20ms, P3 bị tiếm quyền và đến thời điểm 87 mới được thực hiện tiếp, nên thời gian chờ là 87-80 = 7 Nên tổng cộng thời gian chờ của P3 sẽ là : (60-45) + (87-80) = 22ms AdminDùng từ "tiếm quyền" đúng quá. Hiểu môn của thày rồi đấy! |
|
thaonguyen
Number of posts: 7 Registration date: 2008-06-05
 | Subject: Re: Huong dan On thi Tot nghiep 16/4/2009, 16:26 | |
| Mình thấy sai rồi, nhìn kỹ lại bài mới thấy mình chưa cộng khoảng thời gian chờ bị P1 tiếm quyền. Hi vọng thi ko bị sai xót như vậy! AdminSai sót ≠ Xót xa ! |
|
khongaica
Number of posts: 1 Registration date: 2009-04-18
 | Subject: Re: Huong dan On thi Tot nghiep 18/4/2009, 14:43 | |
| Một cách tính Thời Gian Chờ (TGC) cho tiến trình khác:
Cho tập n tiến trình cần được tính TGC: P(i) = (T(i), CB(i)) với 1 <= i <= n trong đó P(i) : tiến trình thứ i
T(i): thời điểm đến của P(i)
CB(i): khoảng CPU của P(i)
Giả sử trong quá trình thực thi (được CPU điều phối), P(i) được phân ra thực thi thành m lần có thứ tự : P(i,1), P(i,2), ..., P(i,m) với m >= 1
Gọi T(i,j) là thời điểm các lần P(i,j) được HĐH cấp phép thực thi (1 <= j <= m) Gọi T'(i,j) là thời điểm các lần P(i,j) bị HĐH tiếm quyền hoặc thực hiện xong
Ta có : TGC(i) = (T(i,1) - T(i)) + (T(i,2) - T'(i,1)) + (T(i,3) - T'(i,2)) + ... + (T(i,m) - T'(i, m-1))
= - T(i) - (T'(i,1) - T(i,1)) - (T'(i,2) - T(i,2) - ... - (T'(i, m-1) - T(i, m-1)) + T(i,m)
= - T(i) - { Sigma(j từ 1 đến (m-1)) của (T'(i,j) - T(i,j)) } + T(i,m)
= - T(i) - { Sigma(j từ 1 đến (m-1)) của (T'(i,j) - T(i,j))} + T(i,m) + T'(i,m) - T'(i,m)
= T'(i,m) - T(i) - {Sigma(j từ 1 đến m) của (T'(i,j) - T(i,j))}
Mà ta dễ dàng thấy được CB(i) = {Sigma(j từ 1 đến m) của (T'(i,j) - T(i,j))}
Vậy TGC(i) = T'(i,m) - T(i) - CB(i)
*** Nghĩa là TGC của tiến trình P(i) thì bằng thời điểm P(i) thực thi xong trừ cho thời điểm đến của P(i) và khoảng CPU của P(i) ----------------------------------------------------------------- Áp dụng thử:
Tiến trình
| Thời điểm đến (ms)
| CPU-Burst (ms)
| P1
| 5
| 47
| P2
| 23
| 15
| P3
| 45
| 28
|
Biểu đồ Gantt TGC(1) = 87 - 5 - 47 = 35 ms TGC(2) = 40 - 23 - 15 = 2 ms TGC(3) = 95 - 45 - 28 = 22 ms ---------------------------------------------------- Cách tính này càng hiệu quả khi P(i) bị tiếm quyền càng nhiều lần! |
|