Các trường hợp sau có thể diễn ra trong quá trình thực thi tiến trình: (1) Loại trừ tương hỗ, (2) Giữ và chờ cấp thêm tài nguyên, (3) Không cho trưng dụng tài nguyên, (4) Đợi xoay vòng. Khả năng xảy ra Deadlock (tắc nghẽn) hệ thống do những trường hợp nào gây ra?
Trả lời:
Đáp án đúng: D
Để xảy ra deadlock, hệ thống cần đồng thời thỏa mãn 4 điều kiện cần: (1) Loại trừ tương hỗ (Mutual exclusion): Tài nguyên chỉ được sử dụng bởi một tiến trình tại một thời điểm. (2) Giữ và chờ (Hold and wait): Tiến trình đang giữ ít nhất một tài nguyên và đang chờ để có được thêm tài nguyên do tiến trình khác giữ. (3) Không trưng dụng (No preemption): Tài nguyên chỉ có thể được giải phóng một cách tự nguyện bởi tiến trình đang giữ nó, sau khi tiến trình đó hoàn thành nhiệm vụ. (4) Đợi vòng tròn (Circular wait): Tồn tại một tập các tiến trình {P0, P1, ..., Pn} mà P0 đang chờ một tài nguyên P1 giữ, P1 đang chờ một tài nguyên P2 giữ, ..., Pn-1 đang chờ một tài nguyên Pn giữ, và Pn đang chờ một tài nguyên P0 giữ.
Dựa trên các điều kiện trên, đáp án D (Tất cả 4 trường hợp trên) là đáp án chính xác, vì tất cả các trường hợp (1), (2), (3), và (4) đều là các điều kiện cần để xảy ra deadlock.
50 câu hỏi 60 phút