1. Nguyên lý cơ bản nào của hệ điều hành giúp nhiều chương trình có thể chạy đồng thời trên một CPU duy nhất bằng cách chia sẻ thời gian?
A. Đa nhiệm (Multitasking)
B. Đa xử lý (Multiprocessing)
C. Đa luồng (Multithreading)
D. Xử lý hàng loạt (Batch processing)
2. Thành phần nào của hệ điều hành chịu trách nhiệm quản lý và cấp phát tài nguyên phần cứng cho các chương trình ứng dụng?
A. Shell
B. Kernel
C. Trình biên dịch (Compiler)
D. Thư viện liên kết động (DLL)
3. Trong quản lý bộ nhớ, kỹ thuật phân trang (paging) giúp giải quyết vấn đề gì?
A. Phân mảnh ngoại vi (External fragmentation)
B. Phân mảnh nội vi (Internal fragmentation)
C. Cạn kiệt bộ nhớ vật lý
D. Tranh chấp bộ nhớ cache
4. Khi một tiến trình (process) chuyển từ trạng thái "Chờ" (Waiting) sang trạng thái "Sẵn sàng" (Ready), điều gì đã xảy ra?
A. Tiến trình đã hoàn thành việc thực thi
B. Tiến trình đã được cấp phát CPU
C. Sự kiện mà tiến trình chờ đợi đã xảy ra
D. Tiến trình bị hệ điều hành tạm dừng
5. Trong hệ thống tệp tin, inode được sử dụng để làm gì?
A. Lưu trữ dữ liệu của tệp tin
B. Lưu trữ tên tệp tin và đường dẫn
C. Lưu trữ siêu dữ liệu (metadata) của tệp tin (quyền, kích thước, thời gian truy cập,...)
D. Quản lý bộ nhớ cache của tệp tin
6. Thuật toán lập lịch CPU "Round Robin" thường được sử dụng trong hệ thống nào?
A. Hệ thống xử lý hàng loạt
B. Hệ thống thời gian thực cứng
C. Hệ thống chia sẻ thời gian (time-sharing)
D. Hệ thống nhúng
7. Bộ nhớ ảo (Virtual Memory) mang lại lợi ích chính nào cho người dùng và hệ thống?
A. Tăng tốc độ truy cập bộ nhớ vật lý
B. Cho phép chạy các chương trình lớn hơn bộ nhớ vật lý
C. Giảm thiểu tiêu thụ điện năng của bộ nhớ
D. Đơn giản hóa việc quản lý bộ nhớ cache
8. Điểm khác biệt chính giữa tiến trình (process) và luồng (thread) là gì?
A. Tiến trình có không gian địa chỉ riêng, luồng chia sẻ không gian địa chỉ với tiến trình mẹ
B. Tiến trình nhẹ hơn luồng về tài nguyên hệ thống
C. Luồng có thể chạy trên nhiều CPU, tiến trình chỉ chạy trên một CPU
D. Tiến trình được quản lý bởi người dùng, luồng được quản lý bởi kernel
9. Trong ngữ cảnh đồng bộ hóa tiến trình, semaphore được sử dụng để làm gì?
A. Tăng tốc độ giao tiếp giữa các tiến trình
B. Đảm bảo loại trừ lẫn nhau (mutual exclusion) và đồng bộ hóa truy cập tài nguyên chung
C. Phân trang bộ nhớ ảo
D. Lập lịch CPU cho các tiến trình ưu tiên
10. Nguyên nhân chính gây ra tình trạng "deadlock" (bế tắc) trong hệ thống là gì?
A. Thiếu bộ nhớ vật lý
B. Các tiến trình tranh giành CPU
C. Bốn điều kiện Coffman đồng thời xảy ra: loại trừ lẫn nhau, giữ và chờ, không trưng dụng, chờ đợi vòng tròn
D. Lỗi lập trình trong ứng dụng
11. Hệ thống tập tin nhật ký (Journaling File System) cải thiện tính toàn vẹn dữ liệu như thế nào?
A. Bằng cách mã hóa dữ liệu trước khi ghi xuống đĩa
B. Bằng cách sao lưu dữ liệu thường xuyên sang ổ đĩa khác
C. Bằng cách ghi nhật ký các thay đổi trước khi thực hiện chúng lên hệ thống tệp tin
D. Bằng cách nén dữ liệu để giảm dung lượng lưu trữ
12. Trong bảo mật hệ điều hành, cơ chế "Access Control List" (ACL) được sử dụng để làm gì?
A. Ngăn chặn virus và phần mềm độc hại
B. Kiểm soát quyền truy cập của người dùng và tiến trình đến các tài nguyên hệ thống
C. Mã hóa dữ liệu để bảo vệ thông tin
D. Xác thực người dùng trước khi cấp quyền truy cập
13. Kiểu hệ điều hành nào phù hợp nhất cho các thiết bị nhúng (embedded systems) như máy giặt thông minh hay hệ thống điều khiển công nghiệp?
A. Hệ điều hành thời gian thực (Real-time Operating System - RTOS)
B. Hệ điều hành đa người dùng (Multi-user Operating System)
C. Hệ điều hành phân tán (Distributed Operating System)
D. Hệ điều hành máy tính cá nhân (Personal Computer Operating System)
14. So sánh cơ chế "ngắt" (interrupt) và "hỏi vòng" (polling) trong quản lý thiết bị ngoại vi, phương pháp nào hiệu quả hơn về mặt sử dụng CPU khi thiết bị ngoại vi không hoạt động thường xuyên?
A. Ngắt hiệu quả hơn vì CPU chỉ xử lý khi có yêu cầu từ thiết bị
B. Hỏi vòng hiệu quả hơn vì giảm độ trễ khi thiết bị cần được phục vụ
C. Cả hai phương pháp đều có hiệu quả như nhau
D. Hiệu quả phụ thuộc vào tốc độ xử lý của CPU
15. Trong kiến trúc hệ thống, "system call" (lời gọi hệ thống) đóng vai trò cầu nối giữa thành phần nào?
A. Giữa phần cứng và bộ nhớ
B. Giữa chương trình ứng dụng và kernel của hệ điều hành
C. Giữa hệ điều hành và trình biên dịch
D. Giữa người dùng và giao diện dòng lệnh
16. Hệ điều hành (Operating System - OS) đóng vai trò trung gian giữa người dùng và phần cứng máy tính. Chức năng chính **KHÔNG** thuộc về hệ điều hành là:
A. Quản lý tài nguyên phần cứng (CPU, bộ nhớ, thiết bị ngoại vi).
B. Cung cấp giao diện người dùng để tương tác với máy tính.
C. Thực hiện trực tiếp các phép tính số học phức tạp cho ứng dụng.
D. Điều phối và quản lý các tiến trình (processes) và luồng (threads).
17. Tiến trình (process) và luồng (thread) là hai khái niệm quan trọng trong hệ điều hành đa nhiệm. Phát biểu nào sau đây mô tả đúng mối quan hệ giữa tiến trình và luồng?
A. Mỗi tiến trình luôn chứa duy nhất một luồng.
B. Các luồng trong cùng một tiến trình chia sẻ không gian địa chỉ bộ nhớ.
C. Tiến trình là đơn vị thực thi nhỏ hơn luồng.
D. Luồng là một dạng đặc biệt của tiến trình, có nhiều quyền hạn hơn.
18. Trong quản lý bộ nhớ, kỹ thuật "phân trang" (paging) được sử dụng để giải quyết vấn đề gì?
A. Tăng tốc độ truy cập bộ nhớ bằng cách sử dụng bộ nhớ cache.
B. Cho phép tiến trình vượt quá kích thước bộ nhớ vật lý khả dụng.
C. Bảo vệ bộ nhớ của các tiến trình khác nhau khỏi bị truy cập trái phép.
D. Giảm thiểu phân mảnh bộ nhớ ngoài (external fragmentation).
19. Thuật toán lập lịch CPU "First-Come, First-Served (FCFS)" có nhược điểm chính nào?
A. Ưu tiên các tiến trình có thời gian thực thi ngắn.
B. Có thể gây ra hiệu ứng "convoy effect" làm giảm hiệu suất hệ thống.
C. Đòi hỏi phải biết trước thời gian thực thi của mỗi tiến trình.
D. Khó cài đặt và triển khai trong thực tế.
20. Xét tình huống hai tiến trình P1 và P2 cùng chia sẻ một tài nguyên duy nhất. Để tránh tình trạng "deadlock" (tắc nghẽn), biện pháp nào sau đây là **KHÔNG** hiệu quả?
A. Yêu cầu mỗi tiến trình phải yêu cầu tất cả tài nguyên cần thiết trước khi bắt đầu thực thi.
B. Áp đặt thứ tự ưu tiên cho việc cấp phát tài nguyên.
C. Cho phép tiến trình giữ tài nguyên và yêu cầu thêm tài nguyên khác.
D. Giới hạn thời gian chờ đợi tài nguyên của mỗi tiến trình.
21. Khi bạn mở nhiều tab trình duyệt web hoặc chạy nhiều ứng dụng cùng lúc trên máy tính, hệ điều hành đang thực hiện cơ chế nào để quản lý và chuyển đổi giữa chúng một cách mượt mà?
A. Đa chương trình (Multiprogramming).
B. Đa xử lý (Multiprocessing).
C. Đa luồng (Multithreading).
D. Chia sẻ thời gian (Time-sharing).
22. Trong hệ thống tệp tin, inode (index node) được sử dụng để lưu trữ thông tin gì về tệp tin?
A. Nội dung thực tế của tệp tin.
B. Tên tệp tin và đường dẫn thư mục.
C. Quyền truy cập, kích thước, thời gian tạo và sửa đổi tệp tin.
D. Danh sách các khối dữ liệu chứa nội dung tệp tin trên đĩa.
23. Bộ nhớ ảo (Virtual Memory) mang lại lợi ích chính nào cho người dùng và hệ thống?
A. Tăng tốc độ truy cập bộ nhớ vật lý.
B. Cho phép chạy các chương trình lớn hơn dung lượng bộ nhớ vật lý.
C. Giảm mức tiêu thụ điện năng của hệ thống.
D. Đơn giản hóa việc quản lý bộ nhớ vật lý.
24. So sánh hệ điều hành "nguyên khối" (monolithic kernel) và "vi nhân" (microkernel), điểm khác biệt chính nằm ở đâu?
A. Số lượng tiến trình hệ thống có thể chạy đồng thời.
B. Cách thức các dịch vụ hệ điều hành được tổ chức và thực thi.
C. Khả năng tương thích với các loại phần cứng khác nhau.
D. Hiệu suất xử lý các tác vụ I/O.
25. Trong ngữ cảnh bảo mật hệ điều hành, "quyền truy cập" (access rights) được sử dụng để làm gì?
A. Mã hóa dữ liệu trên ổ cứng.
B. Xác thực danh tính người dùng trước khi cho phép truy cập hệ thống.
C. Kiểm soát những thao tác mà người dùng hoặc tiến trình được phép thực hiện trên tài nguyên hệ thống.
D. Phát hiện và ngăn chặn virus và phần mềm độc hại.
26. Khi một chương trình cần tương tác với phần cứng (ví dụ: đọc dữ liệu từ ổ cứng), nó thường thực hiện thông qua:
A. Gọi trực tiếp các lệnh của CPU.
B. Sử dụng các thư viện lập trình cấp cao.
C. Gọi các lời gọi hệ thống (system calls) của hệ điều hành.
D. Truy cập trực tiếp vào địa chỉ bộ nhớ vật lý của thiết bị.
27. Trong các thuật toán lập lịch đĩa, thuật toán "SCAN" (hay "Elevator") hoạt động dựa trên nguyên tắc nào?
A. Di chuyển đầu đọc đĩa đến xi lanh gần nhất tiếp theo.
B. Di chuyển đầu đọc đĩa theo một hướng nhất định, phục vụ tất cả yêu cầu trên đường đi, sau đó đảo chiều.
C. Phục vụ các yêu cầu theo thứ tự đến.
D. Ưu tiên các yêu cầu đến từ các tiến trình có độ ưu tiên cao.
28. Giả sử bạn có một hệ thống đa xử lý (multiprocessing) với nhiều CPU. Lợi ích chính của việc sử dụng hệ điều hành hỗ trợ đa xử lý là gì?
A. Tăng cường khả năng bảo mật của hệ thống.
B. Nâng cao hiệu suất bằng cách thực hiện song song các phần của chương trình.
C. Tiết kiệm năng lượng tiêu thụ.
D. Giảm độ phức tạp của hệ điều hành.
29. Trong mô hình bảo mật "ma trận truy cập" (access matrix), hàng và cột của ma trận đại diện cho điều gì?
A. Hàng: Người dùng, Cột: Nhóm người dùng.
B. Hàng: Đối tượng (tài nguyên), Cột: Quyền truy cập.
C. Hàng: Người dùng (hoặc tiến trình), Cột: Đối tượng (tài nguyên).
D. Hàng: Quyền truy cập, Cột: Vai trò người dùng.
30. Ứng dụng của "hệ điều hành thời gian thực" (real-time operating system - RTOS) thường thấy nhất trong lĩnh vực nào?
A. Xử lý văn bản và bảng tính.
B. Điều khiển hệ thống nhúng và các ứng dụng yêu cầu phản hồi tức thời.
C. Duyệt web và xem phim trực tuyến.
D. Quản lý cơ sở dữ liệu lớn.
31. Chức năng chính của hệ điều hành là gì?
A. Quản lý tài nguyên hệ thống (CPU, bộ nhớ, thiết bị ngoại vi)
B. Cung cấp giao diện người dùng đồ họa (GUI)
C. Phát triển và biên dịch mã nguồn chương trình
D. Kết nối và quản lý mạng máy tính
32. Tiến trình (Process) trong hệ điều hành được định nghĩa là:
A. Một đoạn mã chương trình được lưu trữ trên ổ cứng
B. Một chương trình đang được thực thi cùng với các tài nguyên được cấp phát
C. Một đơn vị bộ nhớ ảo được sử dụng bởi hệ điều hành
D. Một tập hợp các luồng (threads) chia sẻ cùng không gian địa chỉ
33. Điều gì xảy ra khi một tiến trình chuyển từ trạng thái "Đang chạy" sang trạng thái "Chờ"?
A. Tiến trình đó đã hoàn thành việc thực thi và kết thúc
B. Tiến trình đó đang chờ một sự kiện xảy ra, ví dụ như hoàn thành thao tác I/O
C. Tiến trình đó được hệ điều hành ưu tiên và cấp phát thêm CPU
D. Tiến trình đó bị lỗi và hệ điều hành hủy bỏ
34. Trong quản lý bộ nhớ, kỹ thuật phân trang (paging) giúp giải quyết vấn đề gì?
A. Giảm thiểu tình trạng phân mảnh bộ nhớ ngoài
B. Tăng tốc độ truy cập bộ nhớ chính
C. Cho phép tiến trình có kích thước lớn hơn bộ nhớ vật lý
D. Đơn giản hóa việc quản lý bộ nhớ cache
35. Ví dụ nào sau đây thể hiện rõ nhất vai trò của hệ điều hành trong việc quản lý tài nguyên?
A. Bạn có thể vừa nghe nhạc vừa duyệt web trên máy tính
B. Bạn có thể khởi động lại máy tính khi gặp sự cố
C. Bạn có thể cài đặt nhiều phần mềm khác nhau
D. Bạn có thể kết nối máy tính với mạng Internet
36. Thuật toán lập lịch CPU "First-Come, First-Served (FCFS)" có nhược điểm chính nào?
A. Ưu tiên các tiến trình có thời gian thực thi ngắn
B. Có thể gây ra hiệu ứng "convoy effect" làm giảm hiệu suất hệ thống
C. Khó cài đặt và triển khai trong thực tế
D. Yêu cầu biết trước thời gian thực thi của tiến trình
37. Trong ngữ cảnh hệ điều hành, "deadlock" (bế tắc) xảy ra khi nào?
A. Hai tiến trình cố gắng truy cập vào cùng một vùng nhớ
B. Một tiến trình bị lỗi do truy cập bộ nhớ ngoài phạm vi
C. Hai hoặc nhiều tiến trình chờ đợi lẫn nhau để giải phóng tài nguyên mà chúng đang giữ
D. Một tiến trình chiếm dụng CPU quá lâu và không nhường CPU cho tiến trình khác
38. Mục đích chính của việc sử dụng bộ nhớ cache trong hệ thống máy tính là gì?
A. Tăng dung lượng bộ nhớ chính
B. Giảm giá thành bộ nhớ
C. Tăng tốc độ truy cập dữ liệu bằng cách lưu trữ dữ liệu thường xuyên sử dụng
D. Bảo vệ dữ liệu khỏi bị mất khi mất điện
39. Điểm khác biệt chính giữa hệ điều hành thời gian thực (Real-Time Operating System - RTOS) và hệ điều hành đa nhiệm thông thường là gì?
A. RTOS có giao diện đồ họa thân thiện hơn
B. RTOS được thiết kế để xử lý các tác vụ có ràng buộc thời gian nghiêm ngặt
C. RTOS có khả năng quản lý nhiều người dùng đồng thời tốt hơn
D. RTOS tiêu thụ ít tài nguyên hệ thống hơn
40. Cơ chế "ngắt" (interrupt) trong hệ điều hành được sử dụng để làm gì?
A. Tăng tốc độ xử lý của CPU
B. Cho phép các thiết bị ngoại vi yêu cầu sự phục vụ của CPU
C. Bảo vệ hệ thống khỏi các chương trình độc hại
D. Quản lý bộ nhớ ảo hiệu quả hơn
41. Trong hệ thống tập tin, "inode" (index node) chứa thông tin gì?
A. Nội dung thực tế của tập tin
B. Tên của tập tin
C. Siêu dữ liệu (metadata) của tập tin như quyền truy cập, kích thước, thời gian tạo
D. Đường dẫn tuyệt đối đến tập tin
42. Phương pháp nào sau đây thường được sử dụng để bảo vệ hệ thống khỏi các truy cập trái phép vào hệ điều hành?
A. Chống phân mảnh ổ cứng
B. Sao lưu dữ liệu thường xuyên
C. Cơ chế xác thực người dùng (username/password, sinh trắc học)
D. Tối ưu hóa bộ nhớ ảo
43. So sánh kiến trúc "monolithic kernel" và "microkernel", ưu điểm chính của "microkernel" là gì?
A. Hiệu suất thực thi cao hơn
B. Kích thước mã nguồn nhỏ gọn và dễ bảo trì hơn
C. Quản lý tài nguyên tập trung hơn
D. Hỗ trợ nhiều loại phần cứng hơn
44. "Context switching" (chuyển đổi ngữ cảnh) trong hệ điều hành là quá trình:
A. Khởi động lại hệ thống
B. Chuyển đổi giữa các chế độ người dùng và chế độ kernel
C. Lưu và khôi phục trạng thái của tiến trình để CPU có thể chuyển sang thực thi tiến trình khác
D. Cấp phát bộ nhớ cho một tiến trình mới
45. Ứng dụng nào sau đây KHÔNG phải là chức năng chính của hệ điều hành?
A. Quản lý bộ nhớ
B. Quản lý tiến trình
C. Soạn thảo văn bản
D. Quản lý thiết bị ngoại vi
46. Chức năng chính của hệ điều hành là gì?
A. Quản lý phần cứng và phần mềm, cung cấp giao diện cho người dùng.
B. Biên dịch mã nguồn thành mã máy.
C. Kết nối internet và quản lý mạng.
D. Chạy các ứng dụng văn phòng và giải trí.
47. Trong một hệ thống tương tác, nơi người dùng cần phản hồi nhanh chóng, thuật toán lập lịch CPU nào sau đây thường được ưu tiên sử dụng?
A. First-Come, First-Served (FCFS)
B. Shortest Job First (SJF)
C. Round Robin (RR)
D. Priority Scheduling (Ưu tiên tĩnh)
48. Trên điện thoại thông minh, hệ điều hành đóng vai trò quan trọng trong việc quản lý tài nguyên để tối ưu hóa thời lượng pin. Thành phần nào của hệ điều hành chịu trách nhiệm chính cho việc này?
A. Kernel (Nhân hệ điều hành)
B. Quản lý bộ nhớ (Memory Management)
C. Quản lý tiến trình (Process Management)
D. Quản lý năng lượng (Power Management)
49. So sánh giữa lập lịch preemptive (ưu tiên) và non-preemptive (không ưu tiên), điểm khác biệt chính nằm ở:
A. Thuật toán preemptive luôn sử dụng hàng đợi ưu tiên, còn non-preemptive thì không.
B. Trong lập lịch preemptive, một tiến trình đang chạy có thể bị ngắt để nhường CPU cho tiến trình khác, trong khi non-preemptive thì không.
C. Lập lịch preemptive thường phức tạp hơn và tốn nhiều tài nguyên hơn non-preemptive.
D. Lập lịch non-preemptive chỉ phù hợp với hệ thống thời gian thực, còn preemptive thì không.
50. Bộ nhớ ảo (Virtual Memory) được sử dụng trong hệ điều hành nhằm mục đích chính nào?
A. Tăng tốc độ truy cập dữ liệu từ bộ nhớ chính (RAM).
B. Cho phép hệ thống chạy các chương trình có kích thước lớn hơn dung lượng bộ nhớ vật lý (RAM) hiện có.
C. Bảo vệ bộ nhớ khỏi các truy cập trái phép từ các tiến trình khác.
D. Giảm thiểu tình trạng phân mảnh bộ nhớ trong quá trình hoạt động.