Trắc nghiệm Hệ điều hành Bài 17: Các giải pháp “Sleep and wakeup”
25 câu · Đề ôn tập tổng hợp
Xem trước: đọc nhanh mọi câu dạng chữ, chưa tính giờ, chưa hiện đáp án. Luyện tập: chọn đáp án là biết đúng sai ngay, kèm lời giải. Thi thử: nộp bài mới chấm điểm và hiện lời giải.
Câu 1
Mục đích chính của các giải pháp “Sleep” và “Wakeup” trong đồng bộ hóa là gì?
Đáp án và lời giải
Đáp án: D
Câu 2
Trong giải pháp “Sleep and Wakeup”, khi một tiến trình gọi “Sleep()”, nó sẽ chuyển sang trạng thái nào?
Đáp án và lời giải
Đáp án: D
Câu 3
Trong giải pháp “Sleep and Wakeup”, khi một tiến trình gọi “Wakeup()” cho một tiến trình khác, tiến trình được đánh thức (nếu đang ngủ) sẽ chuyển sang trạng thái nào?
Đáp án và lời giải
Đáp án: B
Câu 4
So với “Busy-waiting” (ví dụ như Spinlock), ưu điểm của giải pháp “Sleep and Wakeup” là gì?
Đáp án và lời giải
Đáp án: D
Câu 5
Nhược điểm chính của việc sử dụng các lời gọi “Sleep” và “Wakeup” đơn giản (không có thêm cơ chế bảo vệ) là gì?
Đáp án và lời giải
Đáp án: C
Câu 6
Vấn đề “Lost Wakeup” (mất tín hiệu đánh thức) xảy ra trong giải pháp “Sleep and Wakeup” khi nào?
Đáp án và lời giải
Đáp án: C
Câu 7
Để giải quyết vấn đề “Lost Wakeup” trong giải pháp “Sleep and Wakeup”, một phương pháp là sử dụng thêm một biến (flag) để theo dõi trạng thái của điều kiện. Biến này cần được thao tác như thế nào?
Đáp án và lời giải
Đáp án: D
Câu 8
Đáp án do AI giải
Tại sao việc kiểm tra điều kiện và gọi “Sleep()” cần phải là một thao tác nguyên tố?
Đáp án và lời giải
Đáp án: C
Câu 9
Semaphore giải quyết vấn đề “Lost Wakeup” như thế nào?
Đáp án và lời giải
Đáp án: C
Câu 10
Trong ngữ cảnh của Monitor, “Condition Variable” (Biến điều kiện) kết hợp với các thao tác `wait()` và `signal()` (hoặc `notify()`) cung cấp giải pháp “Sleep and Wakeup” ở mức cao hơn. Khi một tiến trình gọi `wait()` trên một biến điều kiện, nó làm gì?
Đáp án và lời giải
Đáp án: D
Câu 11
Trong ngữ cảnh của Monitor, khi một tiến trình gọi `signal()` trên một biến điều kiện, nó làm gì?
Đáp án và lời giải
Đáp án: C
Câu 12
Sự khác biệt giữa `signal()` và `broadcast()` (hoặc `notifyAll()`) trên Condition Variable là gì?
Đáp án và lời giải
Đáp án: D
Câu 13
Trong bài toán Nhà sản xuất-Người tiêu dùng, giải pháp sử dụng “Sleep and Wakeup” cần đồng bộ hóa những điều kiện nào?
Đáp án và lời giải
Đáp án: D
Câu 14
Nếu trong giải pháp Nhà sản xuất-Người tiêu dùng sử dụng “Sleep and Wakeup” đơn giản, Nhà sản xuất kiểm tra bộ đệm đầy và chuẩn bị ngủ. Cùng lúc đó, Người tiêu dùng lấy một mục và gọi Wakeup cho Nhà sản xuất. Vấn đề gì có thể xảy ra?
Đáp án và lời giải
Đáp án: C
Câu 15
Để giải quyết vấn đề “Lost Wakeup” trong bài toán Nhà sản xuất-Người tiêu dùng với “Sleep and Wakeup”, cần sử dụng thêm cơ chế nào?
Đáp án và lời giải
Đáp án: C
Câu 16
Trong hệ điều hành, các lời gọi hệ thống liên quan đến “Sleep” và “Wakeup” thường được hiện thực như thế nào?
Đáp án và lời giải
Đáp án: B
Câu 17
Tại sao giải pháp “Sleep and Wakeup” đơn giản (không có thêm bảo vệ) KHÔNG đủ để giải quyết an toàn bài toán Miền găng chỉ bằng cách kiểm tra biến cờ và ngủ/đánh thức?
Đáp án và lời giải
Đáp án: D
Câu 18
Trong bối cảnh của Hệ điều hành, “Sleep” thường được gọi khi một tiến trình đang chờ đợi điều gì?
Đáp án và lời giải
Đáp án: D
Câu 19
”Wakeup” thường được gọi bởi ai?
Đáp án và lời giải
Đáp án: C
Câu 20
So với Semaphore hoặc Monitor, giải pháp “Sleep and Wakeup” đơn giản có mức độ trừu tượng cao hay thấp?
Đáp án và lời giải
Đáp án: C
Câu 21
Nếu một tiến trình gọi `Sleep()` và điều kiện nó chờ đợi đã được thỏa mãn ngay trước khi nó gọi `Sleep()`, trong giải pháp đơn giản, điều gì xảy ra?
Đáp án và lời giải
Đáp án: C
Câu 22
Trong các ngôn ngữ lập trình hỗ trợ đa luồng và cung cấp các primitive đồng bộ hóa mức cao (ví dụ: Monitor-like structures), khái niệm Sleep/Wakeup thường được hiện thực bên dưới các cấu trúc nào?
Đáp án và lời giải
Đáp án: C
Câu 23
Ưu điểm của việc sử dụng các cơ chế đồng bộ hóa mức cao (như Monitor) so với “Sleep and Wakeup” đơn giản là gì?
Đáp án và lời giải
Đáp án: D
Câu 24
Khi một tiến trình gọi “Sleep” và bị chặn, trạng thái của nó được lưu trữ ở đâu?
Đáp án và lời giải
Đáp án: D
Câu 25
Trong bối cảnh Hệ điều hành, việc đánh thức một tiến trình từ trạng thái ngủ có thể được kích hoạt bởi điều gì?