Trắc nghiệm Hệ điều hành Bài 13: Liên lạc giữa các tiến trình và vấn đề đồng bộ hóa 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 13: Liên lạc giữa các tiến trình và vấn đề đồng bộ hóa
Câu 1.Tại sao các tiến trình cần phải liên lạc (communicate) với nhau?
A. Để mỗi tiến trình có thể chạy độc lập hoàn toàn.
B. Để tăng cường bảo mật hệ thống.
C. Để trao đổi dữ liệu, chia sẻ thông tin và phối hợp hoạt động để hoàn thành một tác vụ chung.
D. Để làm cho Hệ điều hành trở nên phức tạp hơn.
Câu 2.Cơ chế nào cho phép các tiến trình trao đổi dữ liệu và phối hợp hoạt động?
A. Chỉ thông qua tệp trên đĩa.
B. Chỉ thông qua mạng.
C. Giao tiếp liên tiến trình (Inter-Process Communication – IPC).
D. Bằng cách truy cập trực tiếp bộ nhớ của nhau.
Câu 3.Đâu là hai mô hình cơ bản để thực hiện Giao tiếp liên tiến trình (IPC)?
A. Gọi hàm và truy cập biến toàn cục.
B. Xử lý hàng loạt và chia sẻ thời gian.
C. User-Level Threads và Kernel-Level Threads.
D. Bộ nhớ chia sẻ (Shared Memory) và Truyền thông điệp (Message Passing).
Câu 4.Trong mô hình Bộ nhớ chia sẻ (Shared Memory), các tiến trình giao tiếp bằng cách nào?
A. Gửi tin nhắn cho nhau qua kernel.
B. Gọi hàm của nhau.
C. Đọc và ghi vào một vùng bộ nhớ mà tất cả các tiến trình liên quan đều có quyền truy cập.
D. Thông qua các tệp tạm thời.
Câu 5.Ưu điểm chính của mô hình Bộ nhớ chia sẻ là gì?
A. Tự động đảm bảo đồng bộ hóa.
B. Dễ dàng cài đặt hơn Truyền thông điệp.
C. Tốc độ trao đổi dữ liệu nhanh chóng sau khi vùng nhớ được thiết lập.
D. An toàn hơn các mô hình khác.
Câu 6.Nhược điểm chính của mô hình Bộ nhớ chia sẻ là gì?
A. Tốc độ trao đổi dữ liệu chậm.
B. Chỉ giới hạn số lượng tiến trình có thể liên lạc.
C. Các tiến trình phải tự đảm bảo đồng bộ hóa việc truy cập vào vùng nhớ chia sẻ để tránh Race Condition.
D. Chỉ hoạt động trên hệ thống phân tán.
Câu 7.Trong mô hình Truyền thông điệp (Message Passing), các tiến trình giao tiếp bằng cách nào?
A. Đọc/ghi vào vùng bộ nhớ chung.
B. Gửi và nhận các gói dữ liệu (tin nhắn) thông qua các lời gọi hệ thống.
C. Thay đổi trạng thái trong PCB của nhau.
D. Truy cập trực tiếp vào các thanh ghi CPU của nhau.
Câu 8.Ưu điểm của mô hình Truyền thông điệp là gì?
A. Tốc độ trao đổi dữ liệu rất nhanh.
B. Cần ít sự hỗ trợ của Hệ điều hành.
C. Dễ dàng triển khai trong các môi trường phân tán và cung cấp cơ chế đồng bộ hóa tích hợp (ví dụ: Blocking send/receive).
D. Ít phức tạp hơn Bộ nhớ chia sẻ.
Câu 9.Nhược điểm của mô hình Truyền thông điệp là gì?
A. Các tiến trình phải tự đồng bộ hóa.
B. Khó khăn trong việc gửi dữ liệu nhỏ.
C. Tốc độ trao đổi dữ liệu chậm hơn Bộ nhớ chia sẻ do cần sự can thiệp của kernel cho mỗi thao tác gửi/nhận.
D. Chỉ hoạt động trên hệ thống đơn CPU.
Câu 10.Trong truyền thông điệp trực tiếp (Direct Communication), các lời gọi `send()` và `receive()` thường yêu cầu chỉ định thông tin gì?
A. Kích thước của tin nhắn.
B. Nội dung của tin nhắn.
C. Loại kênh truyền thông.
D. Tên của tiến trình đích (cho send) và tiến trình nguồn (cho receive).
Câu 11.Trong truyền thông điệp gián tiếp (Indirect Communication), các tiến trình giao tiếp thông qua một thực thể trung gian nào?
A. Một tệp.
B. Một biến toàn cục.
C. Hộp thư (Mailbox) hoặc cổng (Port).
D. Một vùng bộ nhớ chia sẻ.
Câu 12.Vấn đề gì xảy ra khi nhiều tiến trình hoặc tiểu trình cùng truy cập và thao tác trên cùng một dữ liệu chia sẻ mà kết quả phụ thuộc vào thứ tự thực thi cụ thể?
A. Deadlock (Tắc nghẽn).
B. Starvation (Đói).
C. Race Condition (Điều kiện tranh chấp).
D. Segmentation Fault.
Câu 13.Để giải quyết Race Condition, chúng ta cần đảm bảo chỉ có tối đa một tiến trình/tiểu trình được thực thi trong một vùng mã cụ thể tại một thời điểm. Vùng mã này được gọi là gì?
A. Vùng an toàn (Safe Zone).
B. Vùng đệm (Buffer).
C. Vùng bộ nhớ chia sẻ.
D. Miền găng (Critical Section).
Câu 14.Ba yêu cầu cơ bản để giải pháp cho bài toán Miền găng là gì?
A. Tốc độ nhanh, sử dụng ít bộ nhớ, đơn giản.
B. Ngăn chặn Deadlock, ngăn chặn Starvation, hiệu quả cao.
C. Chỉ hoạt động trên hệ thống đa xử lý, dễ dàng cài đặt, bảo mật.
D. Loại trừ lẫn nhau (Mutual Exclusion), Tiến bộ (Progress), Chờ đợi giới hạn (Bounded Waiting).
Câu 15.Yêu cầu “Mutual Exclusion” (Loại trừ lẫn nhau) trong giải pháp Miền găng có nghĩa là gì?
A. Chỉ một tiến trình được phép chạy tại một thời điểm trong toàn bộ hệ thống.
B. Không có tiến trình nào có thể vào miền găng.
C. Nếu tiến trình \(P_i\) đang thực thi trong miền găng của nó, thì không có tiến trình nào khác được phép thực thi trong miền găng của chúng.
D. Các tiến trình phải chờ đợi lẫn nhau.
Câu 16.Yêu cầu “Progress” (Tiến bộ) trong giải pháp Miền găng có nghĩa là gì?
A. Tất cả các tiến trình phải hoàn thành trong một thời gian nhất định.
B. Các tiến trình phải luân phiên nhau vào miền găng.
C. Không có tiến trình nào bị trì hoãn vô thời hạn bên ngoài miền găng.
D. Nếu không có tiến trình nào đang ở trong miền găng và một số tiến trình muốn vào miền găng, thì chỉ những tiến trình không ở trong phần còn lại (remainder section) mới có thể tham gia vào quyết định tiến trình nào sẽ vào miền găng tiếp theo, và quyết định này không được trì hoãn vô thời hạn.
Câu 17.Yêu cầu “Bounded Waiting” (Chờ đợi giới hạn) trong giải pháp Miền găng có nghĩa là gì?
A. Một tiến trình chỉ được phép chờ một số lần nhất định.
B. Không có tiến trình nào phải chờ đợi quá lâu.
C. Tồn tại một giới hạn về số lần các tiến trình khác được phép vào miền găng của chúng sau khi một tiến trình \(P_i\) đưa ra yêu cầu vào miền găng và trước khi yêu cầu đó được chấp nhận.
D. Mỗi tiến trình phải chờ một khoảng thời gian cố định.
Câu 18.Lệnh đặc quyền nào được CPU cung cấp có thể được sử dụng để xây dựng các cơ chế đồng bộ hóa phần cứng?
A. Load.
B. Store.
C. Jump.
D. TestAndSet() hoặc Swap().
Câu 19.Một Semaphore là gì?
A. Một biến Boolean được sử dụng để khóa/mở khóa.
B. Một biến số nguyên (integer variable) được truy cập thông qua hai thao tác nguyên tố (atomic operations): wait() (hoặc P()) và signal() (hoặc V()).
C. Một hàng đợi các tiến trình.
D. Một vùng bộ nhớ chia sẻ.
Câu 20.Thao tác `wait()` (hoặc `P()`) trên Semaphore `S` hoạt động như thế nào?
A. Tăng giá trị của S lên 1.
B. Cho phép tiến trình vào miền găng.
C. Nếu S > 0, giảm S xuống 1; ngược lại, tiến trình tiếp tục chạy.
D. Nếu S > 0, giảm S xuống 1; ngược lại (S <= 0), tiến trình bị chặn.
Câu 21.Thao tác `signal()` (hoặc `V()`) trên Semaphore `S` hoạt động như thế nào?
A. Tăng giá trị của S lên 1. Nếu có tiến trình nào đang bị chặn trên Semaphore này, đánh thức một trong số chúng.
B. Giảm giá trị của S xuống 1.
C. Cho phép tất cả các tiến trình bị chặn chạy.
D. Kiểm tra giá trị của S.
Câu 22.Semaphore nhị phân (Binary Semaphore) là trường hợp đặc biệt của Semaphore tổng quát (Counting Semaphore) mà giá trị của nó chỉ có thể là bao nhiêu?
A. Bất kỳ số nguyên nào.
B. Bất kỳ số nguyên không âm nào.
C. 0 hoặc 10.
D. 0 hoặc 1.
Câu 23.Mutex (Mutual Exclusion) là gì?
A. Một Semaphore tổng quát.
B. Một cơ chế cho phép nhiều tiến trình vào miền găng.
C. Một biến khóa (lock variable) được sử dụng để đảm bảo chỉ một tiến trình/tiểu trình có thể giữ khóa và vào miền găng tại một thời điểm. Thường được hiện thực bằng Binary Semaphore.
D. Một kỹ thuật truyền thông điệp.
Câu 24.Mục đích của việc sử dụng Mutex hoặc Semaphore trong lập trình đồng hành là gì?
A. Tăng tốc độ thực thi.
B. Giảm số lượng tiến trình.
C. Giảm dung lượng bộ nhớ sử dụng.
D. Kiểm soát quyền truy cập vào các tài nguyên chia sẻ (như biến dùng chung) để đảm bảo tính đúng đắn và ngăn chặn Race Condition.
Câu 25.Các vấn đề cổ điển của đồng bộ hóa (ví dụ: Bài toán Nhà sản xuất-Người tiêu dùng, Bài toán Các triết gia ăn tối, Bài toán Đọc giả-Nhà văn) thường được sử dụng để minh họa và kiểm tra tính hiệu quả của các cơ chế đồng bộ hóa nào?
A. Chỉ Giao tiếp liên tiến trình.
B. Chỉ Quản lý bộ nhớ chia sẻ.
C. Semaphore và Mutex.
D. Chỉ Truyền thông điệp.