1. Trong quản lý bộ nhớ, phân mảnh ngoài (External Fragmentation) xảy ra khi nào?
A. Bộ nhớ được cấp phát theo các khối có kích thước cố định.
B. Có đủ tổng dung lượng bộ nhớ trống nhưng không tập trung thành một khối đủ lớn cho yêu cầu mới.
C. Kích thước của tiến trình nhỏ hơn kích thước của khối bộ nhớ được cấp phát.
D. Dữ liệu của tiến trình bị phân tán trên đĩa cứng.
2. Phương pháp nào có thể được sử dụng để ngăn chặn tắc nghẽn (Deadlock)?
A. Cho phép tất cả bốn điều kiện tắc nghẽn xảy ra.
B. Đảm bảo ít nhất một trong bốn điều kiện cần cho tắc nghẽn không xảy ra.
C. Luôn luôn hủy bỏ một trong các tiến trình bị tắc nghẽn.
D. Phát hiện tắc nghẽn và sau đó phục hồi.
3. Vai trò của khối điều khiển tiến trình (PCB - Process Control Block) là gì?
A. Chứa mã lệnh của tiến trình.
B. Lưu trữ trạng thái và thông tin quản lý của một tiến trình.
C. Quản lý các file mà tiến trình đang mở.
D. Xử lý các yêu cầu I∕O của tiến trình.
4. Ưu điểm chính của lập lịch Round Robin là gì?
A. Đảm bảo thời gian quay vòng (turnaround time) nhỏ nhất.
B. Không có hiện tượng `đói′ (starvation).
C. Dễ dàng thực hiện.
D. Phù hợp nhất cho hệ thống xử lý theo lô (batch).
5. Tại sao việc đồng bộ hóa (Synchronization) lại quan trọng trong hệ thống đa nhiệm∕đa luồng?
A. Để đảm bảo chỉ có một tiến trình∕luồng chạy tại một thời điểm.
B. Để ngăn chặn tình trạng tranh chấp dữ liệu khi nhiều tiến trình∕luồng truy cập tài nguyên dùng chung.
C. Để tăng hiệu suất sử dụng CPU.
D. Để phân bổ bộ nhớ cho các tiến trình.
6. Ưu điểm chính của việc sử dụng luồng (Thread) so với tiến trình (Process) khi thực hiện đa nhiệm là gì?
A. Luồng có không gian địa chỉ riêng biệt.
B. Chi phí tạo và chuyển đổi ngữ cảnh giữa các luồng thường thấp hơn.
C. Luồng được lên lịch độc lập bởi hệ điều hành.
D. Luồng cung cấp mức độ bảo vệ cao hơn giữa các đơn vị thực thi.
7. Điều gì xảy ra với các luồng (threads) khi tiến trình chứa chúng bị kết thúc?
A. Các luồng tiếp tục chạy độc lập.
B. Các luồng bị dừng lại nhưng vẫn tồn tại.
C. Tất cả các luồng trong tiến trình đó đều bị kết thúc.
D. Một luồng ngẫu nhiên được chọn để tiếp tục chạy.
8. Mục đích chính của việc sử dụng Semaphore trong đồng bộ hóa tiến trình là gì?
A. Tăng tốc độ thực thi của tiến trình.
B. Kiểm soát quyền truy cập vào tài nguyên dùng chung để tránh tranh chấp.
C. Giảm bớt việc sử dụng bộ nhớ.
D. Phân bổ CPU cho các tiến trình.
9. Mục đích của bộ đệm (Buffering) trong quản lý I∕O là gì?
A. Giảm số lần truy cập đĩa cứng.
B. Tăng tốc độ truyền dữ liệu giữa thiết bị I∕O và bộ nhớ chính.
C. Đồng bộ hóa tốc độ giữa thiết bị I∕O và CPU∕bộ nhớ chính.
D. Phân bổ thiết bị I∕O cho các tiến trình.
10. Mục đích của cơ chế bộ nhớ ảo (Virtual Memory) là gì?
A. Tăng tốc độ truy cập bộ nhớ vật lý.
B. Cho phép chương trình sử dụng không gian địa chỉ lớn hơn bộ nhớ vật lý có sẵn.
C. Bảo vệ bộ nhớ khỏi virus.
D. Giảm thiểu việc sử dụng đĩa cứng.
11. Trong quản lý file, cấu trúc thư mục dạng cây (Tree-structured directory) có nhược điểm gì so với cấu trúc đơn giản (Single-level directory)?
A. Không thể tạo thư mục con.
B. Tìm kiếm file có thể tốn thời gian hơn.
C. Không cho phép đặt tên file giống nhau.
D. Khó quản lý quyền truy cập file.
12. Trong quản lý file, phương pháp cấp phát file nào dễ bị phân mảnh ngoài nhất?
A. Cấp phát liên tục (Contiguous Allocation).
B. Cấp phát theo danh sách liên kết (Linked Allocation).
C. Cấp phát theo chỉ mục (Indexed Allocation).
D. Cấp phát theo cây (Tree Allocation).
13. Thuật toán lập lịch CPU nào có nhược điểm là `đói′ (starvation) đối với các tiến trình có độ ưu tiên thấp?
A. Round Robin.
B. Shortest Job First (SJF).
C. Priority Scheduling.
D. First-Come, First-Served (FCFS).
14. Chức năng chính của hệ điều hành là gì?
A. Quản lý và điều phối tài nguyên phần cứng.
B. Phát triển ứng dụng phần mềm.
C. Thiết kế mạch điện tử.
D. Kết nối Internet.
15. Tại sao cần phải có cơ chế chuyển đổi ngữ cảnh (Context Switching) trong hệ điều hành đa nhiệm?
A. Để tăng tốc độ thực thi của từng tiến trình.
B. Để cho phép CPU chuyển đổi giữa việc thực thi các tiến trình khác nhau.
C. Để giải phóng bộ nhớ khi một tiến trình kết thúc.
D. Để xử lý lỗi trang (Page Fault).
16. Tiến trình (Process) khác luồng (Thread) ở điểm nào cơ bản nhất?
A. Tiến trình có nhiều luồng, luồng không có tiến trình.
B. Tiến trình chia sẻ bộ nhớ với các tiến trình khác, luồng không chia sẻ bộ nhớ.
C. Tiến trình có không gian địa chỉ riêng biệt, luồng chia sẻ không gian địa chỉ với các luồng cùng tiến trình.
D. Luồng yêu cầu nhiều tài nguyên hệ thống hơn tiến trình.
17. Đâu là một phương pháp để phát hiện tắc nghẽn (Deadlock)?
A. Sử dụng đồ thị cấp phát tài nguyên và tìm chu trình.
B. Ngăn chặn điều kiện Giữ và chờ.
C. Yêu cầu tiến trình khai báo trước tài nguyên cần dùng.
D. Giải phóng tất cả tài nguyên khi yêu cầu mới không được đáp ứng.
18. Mục đích của việc sử dụng giao tiếp liên tiến trình (IPC - Inter-Process Communication) là gì?
A. Tăng tốc độ thực thi của một tiến trình đơn lẻ.
B. Cho phép các tiến trình trao đổi dữ liệu và đồng bộ hóa hoạt động.
C. Giảm bớt việc sử dụng CPU.
D. Tăng cường bảo mật hệ thống.
19. Đâu là một trong bốn điều kiện cần để xảy ra tắc nghẽn (Deadlock)?
A. Độc quyền tài nguyên (Mutual Exclusion).
B. Bộ nhớ ảo (Virtual Memory).
C. Đa nhiệm (Multitasking).
D. Phân trang (Paging).
20. Trong mô hình Producer-Consumer sử dụng semaphore, semaphore `empty′ ban đầu được khởi tạo với giá trị nào?
A. 0.
B. 1.
C. Kích thước của bộ đệm (buffer size).
D. Số lượng producer.
21. Trong quản lý bộ nhớ, phân mảnh trong (Internal Fragmentation) xảy ra khi nào?
A. Có đủ tổng dung lượng bộ nhớ trống nhưng không tập trung.
B. Kích thước của khối bộ nhớ được cấp phát lớn hơn kích thước thực tế của dữ liệu cần lưu.
C. Dữ liệu của tiến trình bị chia thành các phần nhỏ.
D. Có quá nhiều tiến trình chạy đồng thời.
22. Đâu là nhược điểm chính của thuật toán lập lịch FCFS (First-Come, First-Served)?
A. Chi phí chuyển đổi ngữ cảnh cao.
B. Thời gian chờ trung bình lớn nếu một tiến trình dài đến trước.
C. Khó thực hiện.
D. Không hỗ trợ đa nhiệm.
23. Thuật toán lập lịch SJF (Shortest Job First) có ưu điểm gì?
A. Đảm bảo công bằng giữa các tiến trình.
B. Giảm thiểu thời gian quay vòng trung bình.
C. Dễ dàng dự đoán thời gian thực thi của tiến trình.
D. Không có hiện tượng `đói′.
24. Thuật toán thay thế trang (Page Replacement Algorithm) nào có thể gây ra hiện tượng `Thrush′ (Thrashing)?
A. FIFO (First-In, First-Out).
B. LRU (Least Recently Used).
C. Optimal Page Replacement.
D. LIFO (Last-In, First-Out).
25. Trong hệ thống phân trang (Paging), `lỗi trang′ (Page Fault) xảy ra khi nào?
A. CPU cố gắng truy cập một trang không có trong bộ nhớ vật lý.
B. Một trang bị ghi đè bởi dữ liệu mới.
C. Có quá nhiều trang trong bộ nhớ vật lý.
D. Bộ nhớ vật lý bị đầy.
26. Điều kiện `Không chiếm giữ` (No Preemption) trong tắc nghẽn (Deadlock) nghĩa là gì?
A. Tài nguyên chỉ có thể được giải phóng bởi tiến trình đang giữ nó một cách tự nguyện.
B. Một tiến trình có thể chiếm giữ tài nguyên của tiến trình khác.
C. Các tiến trình phải yêu cầu tất cả tài nguyên cần thiết cùng một lúc.
D. Các tiến trình chỉ được yêu cầu tài nguyên khi không giữ tài nguyên nào.
27. Thuật toán lập lịch CPU nào thường được sử dụng trong các hệ thống chia sẻ thời gian (Time-sharing systems) để đảm bảo tính tương tác?
A. FCFS.
B. SJF (Preemptive).
C. Priority Scheduling.
D. Round Robin.
28. Cơ chế bảo vệ nào được sử dụng để đảm bảo một tiến trình chỉ có thể truy cập vào các vùng nhớ được cấp phát cho nó?
A. Bảo vệ dựa trên Domain.
B. Bảo vệ dựa trên List.
C. Bảo vệ dựa trên Ring.
D. Tất cả các cơ chế trên.
29. Cơ chế bảo vệ dựa trên Ring (Protection Rings) hoạt động dựa trên nguyên tắc nào?
A. Kiểm soát quyền truy cập dựa trên người dùng.
B. Phân cấp các mức độ đặc quyền cho các thành phần hệ thống.
C. Sử dụng danh sách kiểm soát truy cập cho từng đối tượng.
D. Mã hóa dữ liệu để bảo vệ.
30. Mục đích của việc sử dụng ngăn xếp (Stack) trong mỗi luồng là gì?
A. Lưu trữ biến toàn cục.
B. Lưu trữ thông tin ngữ cảnh luồng (thanh ghi, con trỏ ngăn xếp, v.v.).
C. Lưu trữ các hàm thư viện dùng chung.
D. Lưu trữ các biến cục bộ và địa chỉ trả về của các lời gọi hàm.