JavaScript is required

Trong các giải pháp đồng bộ tiến trình sau, giải pháp nào vi phạm điều kiện “Không có hai tiến trình cùng ở trong miền giăng cùng lúc”:

A.

Sử dụng biến cờ hiệu

B.

Sử dụng luân phiên

C.

Giải pháp Peterson

D.
Câu b,c là đúng
Trả lời:

Đáp án đúng: A


Điều kiện "Không có hai tiến trình cùng ở trong miền găng cùng lúc" (mutual exclusion) là một trong bốn điều kiện cần để tránh tình trạng tranh chấp tài nguyên (race condition) trong đồng bộ hóa tiến trình. * **Sử dụng biến cờ hiệu:** Giải pháp này có thể vi phạm điều kiện mutual exclusion nếu cả hai tiến trình cùng kiểm tra cờ hiệu và thấy rằng tài nguyên đang sẵn sàng (ví dụ, cả hai cùng thấy cờ hiệu là false), dẫn đến việc cả hai cùng truy cập vào miền găng. Do đó, đáp án A vi phạm điều kiện này. * **Sử dụng luân phiên (Alternation):** Giải pháp này đảm bảo mutual exclusion, nhưng có thể dẫn đến tình trạng chờ đợi không cần thiết (busy waiting) và chỉ cho phép một tiến trình vào miền găng mỗi lượt. * **Giải pháp Peterson:** Giải pháp này là một thuật toán cổ điển để giải quyết bài toán mutual exclusion giữa hai tiến trình. Nó đảm bảo mutual exclusion, không có deadlock và không có starvation. Vì vậy, đáp án A là đáp án đúng nhất vì nó vi phạm điều kiện mutual exclusion.

Câu hỏi liên quan