Trắc nghiệm Hệ điều hành Bài 17: Các giải pháp “Sleep and wakeup” Trắc nghiệm Hệ điều hành Bài 17: Các giải pháp “Sleep and wakeup” 25 câu hỏi 30 phút Hệ điều hànhBẮT ĐẦU LÀM BÀITrắc nghiệm Hệ điều hành Bài 17: Các giải pháp “Sleep and wakeup” 25 câu hỏi 30 phút Hệ điều hànhPHẦN I. Câu trắc nghiệm nhiều phương án lựa chọn.Câu 1Nhận biếtMục đích chính của các giải pháp "Sleep" và "Wakeup" trong đồng bộ hóa là gì?A.Chỉ để tối ưu hóa việc sử dụng CPU.B.Cho phép các tiến trình chia sẻ bộ nhớ.C.Tạo ra các tiến trình mới.D.D Lát kiểm tra lại Câu 2Nhận biếtTrong 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?A.Running.B.Ready.C.Terminated.D.D Lát kiểm tra lại Câu 3Nhận biếtTrong 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?A.Running.B.BC.Waiting.D.Terminated. Lát kiểm tra lại Câu 4Nhận biếtSo với "Busy-waiting" (ví dụ như Spinlock), ưu điểm của giải pháp "Sleep and Wakeup" là gì?A.Đảm bảo Mutual Exclusion tốt hơn.B.Dễ dàng cài đặt hơn.C.Tránh được Deadlock.D.D Lát kiểm tra lại Câu 5Nhận biếtNhượ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ì?A.Dễ gây ra Deadlock.B.Dẫn đến Starvation.C.CD.Chỉ hoạt động trên hệ thống đơn xử lý. Lát kiểm tra lại Câu 6Nhận biếtVấ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?A.Khi một tiến trình gọi Sleep nhưng không có tiến trình nào gọi Wakeup.B.Khi một tiến trình gọi Wakeup nhưng không có tiến trình nào đang Sleep.C.CD.Khi nhiều tiến trình cùng gọi Sleep đồng thời. Lát kiểm tra lại Câu 7Nhận biếtĐể 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?A.Chỉ đọc bởi tiến trình chờ.B.Chỉ ghi bởi tiến trình báo hiệu.C.Chỉ được truy cập sau khi gọi Sleep.D.D Lát kiểm tra lại Câu 8Nhận biếtTạ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ố?A.Để tăng tốc độ thực thi.B.Để giảm số lượng tiến trình chờ.C.Để tránh việc điều kiện thay đổi giữa lúc kiểm tra và lúc ngủ, dẫn đến Lost Wakeup.D.Để tiết kiệm bộ nhớ. Lát kiểm tra lại Câu 9Nhận biếtSemaphore giải quyết vấn đề "Lost Wakeup" như thế nào?A.Bằng cách sử dụng busy-waiting.B.Bằng cách cho phép nhiều tiến trình vào miền găng.C.CD.Bằng cách chỉ cho phép một tiến trình gọi `wait()` tại một thời điểm. Lát kiểm tra lại Câu 10Nhận biếtTrong 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ì?A.Tiếp tục thực thi bên trong Monitor.B.Rời khỏi Monitor và tiếp tục chạy bên ngoài.C.Bị chặn và giữ khóa Monitor.D.D Lát kiểm tra lại Câu 11Nhận biếtTrong 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ì?A.Đánh thức tất cả các tiến trình chờ.B.Nhả khóa Monitor.C.CD.Bị chặn cho đến khi tiến trình được đánh thức rời Monitor. Lát kiểm tra lại Câu 12Nhận biếtSự khác biệt giữa `signal()` và `broadcast()` (hoặc `notifyAll()`) trên Condition Variable là gì?A.`signal()` đánh thức tất cả, `broadcast()` đánh thức một.B.`signal()` nhả khóa, `broadcast()` không nhả khóa.C.`signal()` dành cho User-Level Threads, `broadcast()` dành cho Kernel-Level Threads.D.D Lát kiểm tra lại Câu 13Nhận biếtTrong 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?A.Khi bộ đệm đầy (nhà sản xuất cần Sleep).B.Khi bộ đệm rỗng (người tiêu dùng cần Sleep).C.Truy cập vào biến đếm số lượng mục trong bộ đệm.D.D Lát kiểm tra lại Câu 14Nhận biếtNế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?A.Deadlock.B.Starvation.C.CD.Buffer Overflow. Lát kiểm tra lại Câu 15Nhận biếtĐể 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?A.Chỉ Mutex cho truy cập bộ đệm.B.Chỉ Semaphore cho đếm mục.C.CD.Chỉ sử dụng busy-waiting. Lát kiểm tra lại Câu 16Nhận biếtTrong 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?A.Chỉ là các vòng lặp bận trong không gian người dùng.B.BC.Sử dụng các tệp tạm thời để lưu trạng thái ngủ.D.Chỉ hoạt động trên các thiết bị I/O. Lát kiểm tra lại Câu 17Nhận biếtTạ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?A.Vì nó gây ra Starvation.B.Vì nó chỉ hoạt động cho 2 tiến trình.C.Vì nó không đảm bảo Progress.D.D Lát kiểm tra lại Câu 18Nhận biếtTrong 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ì?A.Hết hạn time slice.B.Được tạo ra.C.Kết thúc thực thi.D.D Lát kiểm tra lại Câu 19Nhận biết"Wakeup" thường được gọi bởi ai?A.Chính tiến trình đang ngủ.B.Người dùng cuối.C.CD.CPU. Lát kiểm tra lại Câu 20Nhận biếtSo 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?A.Cao hơn nhiều.B.Tương đương.C.CD.Không thể so sánh. Lát kiểm tra lại Câu 21Nhận biếtNế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?A.Tiến trình sẽ chạy ngay lập tức.B.Tiến trình sẽ bị đánh thức ngay lập tức sau khi ngủ.C.CD.Hệ điều hành sẽ báo lỗi. Lát kiểm tra lại Câu 22Nhận biếtTrong 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?A.Pipes và Sockets.B.Signal Handlers.C.CD.Shared Memory. Lát kiểm tra lại Câu 23Nhận biếtƯ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ì?A.Hiệu năng nhanh hơn.B.Sử dụng ít bộ nhớ hơn.C.Cho phép Race Condition xảy ra một cách có kiểm soát.D.D Lát kiểm tra lại Câu 24Nhận biếtKhi 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?A.Trong hàng đợi Ready.B.Trong PCB của tiến trình khác.C.Chỉ trên đĩa cứng.D.D Lát kiểm tra lại Câu 25Nhận biếtTrong 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ì?A.Chỉ khi hết thời gian time slice.B.Chỉ khi người dùng nhấn một phím.C.Chỉ khi một tiến trình khác kết thúc.D.D Lát kiểm tra lại Số câu đã làm0/25|Thời gian còn lại--:--NỘP BÀI