Nguyên nhân nào dưới đây có thể gây ra hiện tượng Deadlock (tắc nghẽn)?
Trả lời:
Đáp án đúng: C
Deadlock (tắc nghẽn) xảy ra khi hai hoặc nhiều tiến trình bị chặn vô thời hạn, chờ đợi lẫn nhau để giải phóng các tài nguyên mà tiến trình khác đang giữ. Điều này dẫn đến một vòng tròn chờ đợi, không có tiến trình nào có thể tiếp tục thực hiện.
* **A. Hệ thống bị thiếu bộ nhớ:** Thiếu bộ nhớ có thể gây ra các vấn đề về hiệu suất, nhưng không trực tiếp gây ra deadlock. Nó có thể làm tăng khả năng xảy ra deadlock, nhưng không phải là nguyên nhân chính.
* **B. Nhiều tiến trình chờ một tài nguyên:** Đây là một điều kiện cần thiết cho deadlock. Nếu nhiều tiến trình cùng chờ một tài nguyên đang bị giữ bởi một tiến trình khác, thì có khả năng deadlock xảy ra.
* **C. Tiến trình chờ tài nguyên lâu vô tận:** Đây là một biểu hiện của deadlock, không phải là nguyên nhân trực tiếp. Deadlock gây ra việc chờ đợi vô tận.
* **D. Số tài nguyên nhỏ hơn số tiến trình:** Đây là một điều kiện có thể dẫn đến deadlock. Nếu có ít tài nguyên hơn so với số lượng tiến trình cần, thì các tiến trình có thể phải chờ đợi tài nguyên, làm tăng khả năng deadlock.
Trong các phương án trên, phương án D mô tả điều kiện gần nhất dẫn đến deadlock. Khi số lượng tài nguyên nhỏ hơn số lượng tiến trình, các tiến trình cạnh tranh để giành tài nguyên, và nếu việc cấp phát tài nguyên không được quản lý cẩn thận, có thể dẫn đến tình trạng deadlock. Tuy nhiên, phương án B cũng là một yếu tố quan trọng, vì deadlock thường xảy ra khi nhiều tiến trình chờ đợi lẫn nhau để có được một tài nguyên cụ thể.
Tuy nhiên, phương án **D** mô tả đúng và đủ nhất điều kiện cần để deadlock xảy ra, là số tài nguyên không đủ để đáp ứng nhu cầu của tất cả các tiến trình, từ đó gây ra việc các tiến trình phải chờ đợi lẫn nhau.
50 câu hỏi 60 phút





