Trắc nghiệm Hệ điều hành Bài 18: Các vấn đề cổ điển của đồng bộ hoá

Làm bài thi

Mục Lục

Trắc nghiệm Hệ điều hành Bài 18: Các vấn đề cổ điển của đồng bộ hoá là một trong những đề thi thuộc Chương 2: Quản lý Tiến trình và Đồng bộ hóa trong học phần Hệ điều hành chuyên ngành Công Nghệ Thông Tin cấp độ Đại học. Đây là phần mở đầu quan trọng giúp sinh viên hình thành cái nhìn tổng quan về vai trò, chức năng và tầm quan trọng của hệ điều hành trong một hệ thống máy tính hiện đại.

Trong bài học này, người học cần nắm được các nội dung cốt lõi như: định nghĩa hệ điều hành, chức năng chính của hệ điều hành (quản lý tiến trình, bộ nhớ, thiết bị và hệ thống tệp), phân loại hệ điều hành, cũng như mối quan hệ giữa phần cứng, phần mềm và người dùng thông qua hệ điều hành. Việc hiểu rõ các kiến thức nền tảng này sẽ tạo tiền đề vững chắc cho sinh viên khi tiếp cận các khái niệm chuyên sâu hơn như quản lý tiến trình, xử lý đồng thời, và bảo mật hệ thống.

Hãy cùng Dethitracnghiem.vn tìm hiểu về đề thi này và tham gia làm kiểm tra ngay lập tức!

Trắc nghiệm Hệ điều hành Bài 18: Các vấn đề cổ điển của đồng bộ hoá

Câu 1.Bài toán “Producer-Consumer Problem” (Nhà sản xuất-Người tiêu dùng) minh họa nhu cầu đồng bộ hóa trong việc truy cập tài nguyên chung nào?
A. CPU.
B. Bộ nhớ RAM toàn hệ thống.
C. Tệp cấu hình.
D. Một bộ đệm (buffer) có giới hạn kích thước được chia sẻ.

Câu 2.Trong bài toán Nhà sản xuất-Người tiêu dùng với bộ đệm có giới hạn, vấn đề gì xảy ra nếu Nhà sản xuất cố gắng thêm mục vào bộ đệm khi nó đã đầy mà không có đồng bộ hóa?
A. Deadlock.
B. Starvation của người tiêu dùng.
C. Race Condition khi đọc dữ liệu.
D. Buffer Overflow (ghi đè dữ liệu cũ hoặc lỗi bộ nhớ).

Câu 3.Trong bài toán Nhà sản xuất-Người tiêu dùng với bộ đệm có giới hạn, vấn đề gì xảy ra nếu Người tiêu dùng cố gắng lấy mục từ bộ đệm khi nó rỗng mà không có đồng bộ hóa?
A. Deadlock.
B. Starvation của nhà sản xuất.
C. Race Condition khi ghi dữ liệu.
D. Buffer Underflow (lấy dữ liệu không hợp lệ hoặc lỗi).

Câu 4.Để giải quyết bài toán Nhà sản xuất-Người tiêu dùng sử dụng Semaphore, chúng ta thường cần bao nhiêu Semaphore?
A. 1 (Mutex).
B. 2 (một cho đầy, một cho rỗng).
C. 3 (một Mutex cho truy cập buffer, một Semaphore đếm số ô trống, một Semaphore đếm số mục đã đầy).
D. 4 (một Mutex cho mỗi tiến trình, và hai Semaphore).

Câu 5.Trong giải pháp Nhà sản xuất-Người tiêu dùng sử dụng Semaphore, Semaphore dùng để đếm số ô trống (ví dụ: `empty`) được khởi tạo giá trị ban đầu là bao nhiêu?
A. 0.
B. 1.
C. Kích thước tối đa của bộ đệm (N).
D. Số lượng tiến trình nhà sản xuất.

Câu 6.Trong giải pháp Nhà sản xuất-Người tiêu dùng sử dụng Semaphore, Semaphore dùng để đếm số mục đã đầy (ví dụ: `full`) được khởi tạo giá trị ban đầu là bao nhiêu?
A. 0.
B. 1.
C. Kích thước tối đa của bộ đệm.
D. Số lượng tiến trình người tiêu dùng.

Câu 7.Trong bài toán “Reader-Writer Problem” (Bài toán Đọc giả-Nhà văn), yêu cầu đồng bộ hóa cơ bản nhất là gì?
A. Chỉ cho phép một đọc giả hoặc một nhà văn truy cập tài nguyên tại một thời điểm.
B. Chỉ cho phép nhiều nhà văn ghi đồng thời.
C. Chỉ cho phép một đọc giả đọc tại một thời điểm.
D. Nhiều đọc giả có thể đọc đồng thời, nhưng chỉ một nhà văn được ghi tại một thời điểm, và nhà văn không thể ghi khi có đọc giả nào đang đọc (và ngược lại).

Câu 8.Trong bài toán Reader-Writer, đâu là vấn đề ưu tiên phổ biến?
A. Ưu tiên các tiến trình mới đến.
B. Ưu tiên các tiến trình có CPU burst ngắn nhất.
C. Ưu tiên các tiến trình yêu cầu I/O.
D. Ưu tiên đọc giả (cho phép đọc giả mới vào ngay cả khi có nhà văn đang chờ) hoặc ưu tiên nhà văn (đảm bảo nhà văn chờ đợi không bị “đói” do dòng đọc giả liên tục).

Câu 9.Nếu áp dụng giải pháp ưu tiên đọc giả cho bài toán Reader-Writer, vấn đề gì có thể xảy ra đối với nhà văn?
A. Deadlock.
B. Buffer Overflow.
C. Race Condition.
D. Starvation (nếu liên tục có đọc giả mới đến).

Câu 10.Bài toán “Dining Philosophers Problem” (Bài toán Các triết gia ăn tối) minh họa rõ nét vấn đề nào trong xử lý đồng hành?
A. Race Condition.
B. Starvation.
C. Buffer Overflow.
D. Deadlock.

Câu 11.Trong bài toán Các triết gia ăn tối (với N triết gia và N chiếc dĩa xếp vòng tròn), tình huống Deadlock có thể xảy ra khi nào?
A. Khi chỉ một triết gia cố gắng nhấc dĩa.
B. Khi các triết gia nhấc dĩa luân phiên.
C. Khi số lượng triết gia ít hơn số lượng dĩa.
D. Khi tất cả N triết gia đồng thời nhấc chiếc dĩa bên trái của mình và chờ chiếc dĩa bên phải.

Câu 12.Để giải quyết bài toán Các triết gia ăn tối và tránh Deadlock, một trong những giải pháp là làm gì?
A. Cho phép nhiều triết gia nhấc cùng một chiếc dĩa.
B. Chỉ cho phép một triết gia ăn tại một thời điểm.
C. Tăng gấp đôi số lượng dĩa.
D. Giới hạn số lượng triết gia được phép ngồi ăn cùng lúc (ví dụ: tối đa N-1 triết gia), hoặc yêu cầu triết gia nhấc cả hai chiếc dĩa cùng lúc (bên trong một miền găng).

Câu 13.Bài toán “Sleeping Barber Problem” (Bài toán Thợ cắt tóc đang ngủ) minh họa nhu cầu đồng bộ hóa giữa Thợ cắt tóc và Khách hàng, liên quan đến tài nguyên chung nào?
A. Ghế cắt tóc và ghế chờ.
B. Kéo và lược.
C. Cửa ra vào tiệm.
D. Ghế cắt tóc, ghế chờ trong phòng chờ, và trạng thái của Thợ cắt tóc (đang ngủ/đang làm).

Câu 14.Trong bài toán Sleeping Barber, nếu không có đồng bộ hóa, vấn đề gì xảy ra khi Khách hàng đến và Thợ cắt tóc đang ngủ?
A. Khách hàng sẽ chờ mãi ngoài cửa.
B. Thợ cắt tóc sẽ không bao giờ thức dậy.
C. Khách hàng có thể không đánh thức được Thợ cắt tóc (Lost Wakeup) hoặc Thợ cắt tóc tỉnh dậy nhưng không có ai cắt.
D. Nhiều khách hàng có thể vào phòng chờ hơn số ghế.

Câu 15.Các bài toán cổ điển của đồng bộ hóa thường được sử dụng để làm gì?
A. Để chứng minh các vấn đề không thể giải quyết.
B. Chỉ để dạy về lịch sử hệ điều hành.
C. Để tăng độ phức tạp của hệ thống.
D. Để minh họa các vấn đề đồng bộ hóa phổ biến và kiểm thử tính đúng đắn cũng như hiệu quả của các cơ chế đồng bộ hóa khác nhau (Semaphore, Monitor, v.v.).

Câu 16.Trong bài toán Sản xuất-Tiêu dùng sử dụng Monitor, chúng ta thường sử dụng Biến điều kiện (`Condition Variable`) để làm gì?
A. Để đảm bảo Mutual Exclusion cho Monitor.
B. Để đếm số lượng mục trong buffer.
C. Để chỉ định loại dữ liệu trong buffer.
D. Để các tiến trình Nhà sản xuất chờ khi buffer đầy, và Người tiêu dùng chờ khi buffer rỗng.

Câu 17.Khi Nhà sản xuất thêm một mục vào buffer đầy và phải chờ trong giải pháp dùng Monitor, nó sẽ gọi thao tác nào trên biến điều kiện tương ứng?
A. `signal()`.
B. `broadcast()`.
C. `wait()`.
D. `exit()`.

Câu 18.Khi Người tiêu dùng lấy một mục từ buffer rỗng và phải chờ trong giải pháp dùng Monitor, nó sẽ gọi thao tác nào trên biến điều kiện tương ứng?
A. `signal()`.
B. `broadcast()`.
C. `wait()`.
D. `exit()`.

Câu 19.Khi Nhà sản xuất thêm một mục vào buffer (có thể đánh thức người tiêu dùng), nó sẽ gọi thao tác nào trên biến điều kiện mà Người tiêu dùng đang chờ?
A. `wait()`.
B. `lock()`.
C. `release()`.
D. `signal()` hoặc `notify()`.

Câu 20.Khi Người tiêu dùng lấy một mục từ buffer (có thể đánh thức nhà sản xuất), nó sẽ gọi thao tác nào trên biến điều kiện mà Nhà sản xuất đang chờ?
A. `wait()`.
B. `lock()`.
C. `release()`.
D. `signal()` hoặc `notify()`.

Câu 21.Trong bài toán Reader-Writer, nếu sử dụng Semaphore, cần sử dụng các Semaphore để kiểm soát những gì?
A. Chỉ số lượng đọc giả.
B. Chỉ trạng thái của nhà văn.
C. Chỉ truy cập vào biến đếm đọc giả.
D. Truy cập vào biến đếm đọc giả, quyền truy cập chung vào cơ sở dữ liệu (đảm bảo nhà văn độc quyền), và/hoặc cơ chế ưu tiên.

Câu 22.Giải pháp cho bài toán Các triết gia ăn tối sử dụng Semaphore thường liên quan đến việc giới hạn quyền truy cập vào tài nguyên nào?
A. Chỉ dĩa bên trái.
B. Chỉ dĩa bên phải.
C. Số lượng triết gia tại bàn.
D. Cặp dĩa bên cạnh mỗi triết gia (đảm bảo triết gia chỉ nhấc dĩa nếu cả hai đều sẵn sàng) hoặc số lượng triết gia tối đa được phép cố gắng nhấc dĩa.

Câu 23.Các vấn đề cổ điển của đồng bộ hóa cho thấy tầm quan trọng của việc thiết kế các cơ chế đồng bộ hóa có thể áp dụng cho nhiều tình huống khác nhau. Cơ chế nào được coi là nền tảng cho nhiều giải pháp khác?
A. Monitor.
B. Spinlock.
C. Busy Waiting.
D. Semaphore.

Câu 24.Vấn đề nào liên quan đến việc một tiến trình/tiểu trình giữ một tài nguyên và chờ đợi một tài nguyên khác đang bị giữ bởi một tiến trình/tiểu trình khác trong một chu trình?
A. Race Condition.
B. Starvation.
C. Priority Inversion.
D. Deadlock.

Câu 25.Mục tiêu chính của việc nghiên cứu các vấn đề cổ điển của đồng bộ hóa là gì?
A. Tìm ra giải pháp duy nhất cho mọi bài toán đồng bộ hóa.
B. Làm cho lập trình đồng hành trở nên đơn giản hơn.
C. Hiểu rõ các thách thức của lập trình đồng hành, đánh giá và lựa chọn các công cụ đồng bộ hóa phù hợp.
D. Chứng minh rằng đồng bộ hóa là không cần thiết.

×

Bạn ơi!!! Để xem được kết quả
bạn vui lòng làm nhiệm vụ nhỏ xíu này nha

LƯU Ý: Không sử dụng VPN hoặc 1.1.1.1 khi vượt link

Bước 1: Mở tab mới, truy cập Google.com

Bước 2: Tìm kiếm từ khóa: Từ khóa

Bước 3: Trong kết quả tìm kiếm Google, hãy tìm website giống dưới hình:

(Nếu trang 1 không có hãy tìm ở trang 2, 3, 4... nhé )

Bước 4: Cuộn xuống cuối bài viết rồi bấm vào nút GIỐNG HÌNH DƯỚI và chờ 1 lát để lấy mã: