You are on page 1of 2

Họ tên: Nguyễn Quyết Thắng

MSV: 19020441
Bài 1 (trang 12):

+ Loại trừ lẫn nhau (Mutual Exclusion): Khi một tiến trình Pi đang thực thi khu
vực quan trọng (CSi), không một tiến trình nào khác được thực thi khu vực quan
trọng. Tính chất này được đảm bảo ở trong vòng while (flag[j] && turn == j) ở
dòng //wait to enter CS
+ Tiến triển (Progress): Nếu không có tiến trình nào đang thực thi khu vực quan
trọng, và tồn tại một số tiến trình muốn thực thi khu vực quan trọng thì việc lựa
chọn tiến trình tiếp theo thực thi khu vực quan trọng không thể bị trì hoãn vô thời
hạn. Tính chất này được đảm bảo vì khu vực quan trọng critical section ngay sau
khi Pi chạy xong Pj sẽ tiếp tục chạy, khu vực quan trọng không thể bị trì hoãn vô
thời hạn mà sau khi tiếp nhận xong Pi phải chạy luôn Pj vì turn = j (j sẵn sàng
chạy).
+ Chờ đợi có giới hạn (Bounded Waiting): sau khi một tiến trình Pi có yêu cầu vào
CSi và trước khi yêu cầu đó được chấp nhận, số lần các tiến trình Pj (với j≠i) được
phép thực hiện CSj phải bị giới hạn. Tính chất này được đảm bảo vì đảm bảo vì Pi
thực thi xong sẽ dừng lại ngay và Pj sẽ được chạy sau thời gian đợi nhất định (bị
giới hạn).
Bài 2 (trang 19):

Đảm bảo tính chất Loại trừ lẫn nhau vì chỉ có vòng while (key == TRUE) để chặn
Bài 3 (trang 33):
Giải pháp: Cho phép nhà triết học lấy đũa khi cả 2 chiếc đũa ở trạng thái sẵn sàng
Note: Khi lấy được 2 chiếc đũa từ hai láng giềng gần nhất thì triết gia mới có thể
ăn.
Chương trình được đính kèm trong file Main.java
Bài 4 (trang 38):
Chương trình được đính kèm trong file cross_bridge.cpp

You might also like