1. Hệ điều hành (Operating System - OS) được định nghĩa chính xác nhất là gì?
A. Một tập hợp các chương trình ứng dụng giúp người dùng soạn thảo văn bản và tính toán.
B. Một phần mềm hệ thống quản lý và điều phối tài nguyên phần cứng và phần mềm của máy tính, cung cấp môi trường để chạy các ứng dụng.
C. Phần cứng máy tính trung tâm chịu trách nhiệm xử lý mọi tác vụ.
D. Một loại ngôn ngữ lập trình đặc biệt để viết phần mềm hệ thống.
2. Tiến trình (Process) và luồng (Thread) khác nhau cơ bản ở điểm nào?
A. Tiến trình là đơn vị thực thi nhỏ hơn luồng và chia sẻ không gian bộ nhớ.
B. Luồng là đơn vị thực thi nhỏ hơn tiến trình và chia sẻ không gian bộ nhớ của tiến trình chứa nó.
C. Tiến trình và luồng là hoàn toàn giống nhau, chỉ khác tên gọi.
D. Luồng là chương trình ứng dụng, còn tiến trình là phần mềm hệ thống.
3. Thuật toán lập lịch CPU (CPU Scheduling Algorithm) nào ưu tiên tiến trình có thời gian thực thi ngắn nhất?
A. First-Come, First-Served (FCFS)
B. Round Robin (RR)
C. Shortest Job First (SJF)
D. Priority Scheduling
4. Bộ nhớ ảo (Virtual Memory) giúp giải quyết vấn đề gì trong quản lý bộ nhớ?
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 thiểu nguy cơ mất dữ liệu khi hệ thống gặp sự cố.
D. Đơn giản hóa việc quản lý bộ nhớ cache.
5. Nguyên tắc "locality of reference" (tính cục bộ tham chiếu) được ứng dụng trong cơ chế nào của hệ điều hành?
A. Quản lý tiến trình.
B. Quản lý bộ nhớ cache và bộ nhớ ảo.
C. Quản lý thiết bị ngoại vi.
D. Quản lý hệ thống tập tin.
6. Điều kiện nào sau đây KHÔNG phải là một trong bốn điều kiện cần và đủ để xảy ra deadlock (tắc nghẽn)?
A. Loại trừ lẫn nhau (Mutual Exclusion)
B. Giữ và chờ (Hold and Wait)
C. Không độc quyền (No Preemption)
D. Chu kỳ chờ đợi (Circular Wait)
7. Hệ điều hành thời gian thực (Real-time Operating System - RTOS) thường được sử dụng trong ứng dụng nào?
A. Chơi game trực tuyến.
B. Soạn thảo văn bản và duyệt web.
C. Hệ thống điều khiển máy bay và robot công nghiệp.
D. Quản lý cơ sở dữ liệu lớn.
8. Kiểu nhân (Kernel) nào mà các dịch vụ hệ thống cơ bản (ví dụ: quản lý bộ nhớ, hệ thống tập tin) được thực hiện trong không gian nhân, còn các dịch vụ khác (ví dụ: trình điều khiển thiết bị) có thể được thực hiện trong không gian người dùng?
A. Monolithic Kernel (Nhân đơn khối)
B. Microkernel (Vi nhân)
C. Hybrid Kernel (Nhân lai)
D. Exokernel
9. Cơ chế phân trang (Paging) trong quản lý bộ nhớ ảo chia bộ nhớ logic và bộ nhớ vật lý thành các khối có kích thước cố định gọi là gì?
A. Segments (Đoạn)
B. Frames (Khung trang)
C. Blocks (Khối)
D. Clusters (Cụm)
10. Chức năng chính của hệ thống tập tin (File System) trong hệ điều hành là gì?
A. Quản lý bộ nhớ chính (RAM).
B. Quản lý quá trình thực thi chương trình.
C. Tổ chức, lưu trữ và quản lý dữ liệu trên bộ nhớ thứ cấp (ổ cứng).
D. Điều khiển các thiết bị nhập/xuất.
11. Chế độ người dùng (User Mode) và chế độ hạt nhân (Kernel Mode) khác nhau như thế nào?
A. Chế độ người dùng có quyền truy cập trực tiếp vào phần cứng, còn chế độ hạt nhân thì không.
B. Chế độ hạt nhân có quyền truy cập vào tất cả tài nguyên hệ thống và thực hiện các lệnh đặc quyền, còn chế độ người dùng bị giới hạn quyền.
C. Chế độ người dùng chỉ dành cho người dùng cuối, còn chế độ hạt nhân chỉ dành cho nhà phát triển hệ điều hành.
D. Chế độ người dùng và chế độ hạt nhân là giống nhau, chỉ khác tên gọi.
12. Lời gọi hệ thống (System Call) được sử dụng để làm gì?
A. Để chương trình ứng dụng giao tiếp trực tiếp với phần cứng.
B. Để chương trình ứng dụng yêu cầu dịch vụ từ hệ điều hành.
C. Để hệ điều hành khởi động các chương trình ứng dụng.
D. Để người dùng tương tác trực tiếp với nhân hệ điều hành.
13. Cơ chế "Context Switching" (chuyển đổi ngữ cảnh) cho phép hệ điều hành làm gì?
A. Tăng tốc độ xử lý của CPU.
B. Cho phép đa nhiệm (multitasking) bằng cách chuyển đổi nhanh chóng giữa các tiến trình.
C. Giảm dung lượng bộ nhớ sử dụng.
D. Ngăn chặn lỗi hệ thống do chương trình ứng dụng gây ra.
14. Trong quản lý bộ nhớ, thuật ngữ "thrashing" (giật trang) đề cập đến tình trạng gì?
A. Lỗi truy cập bộ nhớ do chương trình bị lỗi.
B. Việc CPU phải chờ đợi dữ liệu từ bộ nhớ chậm (ví dụ: ổ cứng) quá nhiều do thiếu trang trong bộ nhớ RAM.
C. Tình trạng bộ nhớ vật lý bị đầy, không đủ chỗ cho các tiến trình.
D. Hiện tượng phân mảnh bộ nhớ làm giảm hiệu suất.
15. Ví dụ nào sau đây KHÔNG phải là một chức năng chính của hệ điều hành?
A. Quản lý tệp tin và thư mục.
B. Cung cấp giao diện người dùng (GUI hoặc CLI).
C. Biên dịch mã nguồn chương trình thành mã máy.
D. Quản lý bộ nhớ và tiến trình.
16. Chức năng chính của hệ điều hành là gì?
A. Quản lý tài nguyên phần cứng và phần mềm của hệ thống máy tính.
B. Cung cấp giao diện người dùng để tương tác với máy tính.
C. Phát triển và biên dịch các chương trình ứng dụng.
D. Kết nối máy tính với mạng Internet.
17. Thành phần nào của hệ điều hành chịu trách nhiệm trực tiếp quản lý và điều khiển phần cứng?
A. Shell
B. Kernel
C. Hệ thống tập tin
D. Giao diện người dùng đồ họa (GUI)
18. Trong quản lý tiến trình, thuật toán lập lịch nào đảm bảo mỗi tiến trình nhận được một lượng thời gian CPU công bằng, tránh tình trạng một tiến trình chiếm dụng CPU quá lâu?
A. First-Come, First-Served (FCFS)
B. Shortest Job First (SJF)
C. Round Robin
D. Priority Scheduling
19. Kỹ thuật quản lý bộ nhớ ảo (Virtual Memory) giúp giải quyết vấn đề gì?
A. Tăng tốc độ truy cập bộ nhớ chính (RAM).
B. Cho phép 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ý.
C. Giảm thiểu tình trạng phân mảnh bộ nhớ ngoài.
D. Cải thiện tính bảo mật của hệ thống.
20. Khi một ứng dụng người dùng muốn truy cập vào tài nguyên hệ thống (ví dụ: đọc dữ liệu từ ổ cứng), nó cần sử dụng cơ chế nào?
A. Thực hiện trực tiếp lệnh phần cứng.
B. Gọi hàm thư viện tiêu chuẩn (standard library function).
C. Sử dụng lời gọi hệ thống (system call).
D. Truy cập trực tiếp vào không gian bộ nhớ kernel.
21. Trong ngữ cảnh hệ điều hành, "deadlock" (tắc nghẽn) xảy ra khi nào?
A. Khi một tiến trình kết thúc đột ngột do lỗi.
B. Khi nhiều tiến trình cạnh tranh để truy cập vào cùng một tài nguyên và rơi vào trạng thái chờ đợi lẫn nhau vô thời hạn.
C. Khi hệ thống thiếu bộ nhớ để cấp phát cho tiến trình mới.
D. Khi xảy ra lỗi trong hệ thống tập tin.
22. Hệ điều hành thời gian thực (Real-time Operating System - RTOS) thường được sử dụng trong các ứng dụng nào?
A. Máy tính cá nhân và máy chủ.
B. Điện thoại thông minh và máy tính bảng.
C. Hệ thống điều khiển công nghiệp, thiết bị y tế và hệ thống nhúng.
D. Trò chơi điện tử và phần mềm giải trí.
23. Điểm khác biệt chính giữa hệ điều hành đa nhiệm (multitasking) và hệ điều hành đa người dùng (multi-user) là gì?
A. Hệ điều hành đa nhiệm chỉ chạy được một chương trình tại một thời điểm, còn hệ điều hành đa người dùng chạy được nhiều chương trình.
B. Hệ điều hành đa nhiệm cho phép nhiều người dùng sử dụng máy tính cùng lúc, còn hệ điều hành đa người dùng thì không.
C. Hệ điều hành đa nhiệm cho phép một người dùng chạy nhiều chương trình đồng thời, còn hệ điều hành đa người dùng cho phép nhiều người dùng truy cập và sử dụng hệ thống cùng lúc.
D. Không có sự khác biệt, hai thuật ngữ này có thể sử dụng thay thế cho nhau.
24. Hệ thống tập tin phân cấp (hierarchical file system) tổ chức dữ liệu theo cấu trúc nào?
A. Dạng danh sách tuyến tính.
B. Dạng cây thư mục (directory tree).
C. Dạng mạng lưới phức tạp.
D. Dạng bảng (table).
25. Trong mô hình bảo mật của hệ điều hành, chế độ "kernel mode" (chế độ nhân) có đặc quyền gì so với "user mode" (chế độ người dùng)?
A. Chế độ kernel mode chỉ có thể truy cập bộ nhớ ảo, còn user mode chỉ có thể truy cập bộ nhớ vật lý.
B. Chế độ kernel mode có quyền truy cập trực tiếp và không giới hạn vào phần cứng và bộ nhớ, còn user mode bị hạn chế.
C. Chế độ user mode có tốc độ xử lý nhanh hơn chế độ kernel mode.
D. Chế độ kernel mode chỉ dành cho các ứng dụng hệ thống, còn user mode dành cho ứng dụng người dùng.
26. Ví dụ nào sau đây là ứng dụng của hệ điều hành nhúng (embedded operating system)?
A. Microsoft Windows trên máy tính để bàn.
B. macOS trên máy tính xách tay Apple.
C. Android trên điện thoại thông minh.
D. Hệ điều hành trong máy giặt thông minh hoặc lò vi sóng.
27. Thuật toán lập lịch "Shortest Job First (SJF)" có ưu điểm gì nổi bật?
A. Đảm bảo tính công bằng cho tất cả các tiến trình.
B. Giảm thiểu thời gian chờ đợi trung bình của các tiến trình.
C. Dễ dàng cài đặt và triển khai.
D. Ưu tiên các tiến trình có độ ưu tiên cao.
28. 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 hệ điều hành phản ứng nhanh chóng với các sự kiện từ phần cứng hoặc phần mềm.
C. Quản lý bộ nhớ ảo hiệu quả hơn.
D. Bảo vệ hệ thống khỏi các chương trình độc hại.
29. So sánh hệ điều hành "batch processing" (xử lý theo lô) và "time-sharing" (chia sẻ thời gian), điểm khác biệt chính về tương tác người dùng là gì?
A. Hệ điều hành batch processing tương tác trực tiếp với người dùng, còn time-sharing thì không.
B. Hệ điều hành time-sharing cho phép tương tác trực tiếp với người dùng trong khi chương trình đang chạy, còn batch processing thì không.
C. Cả hai hệ điều hành đều cho phép tương tác trực tiếp với người dùng.
D. Cả hai hệ điều hành đều không cho phép tương tác trực tiếp với người dùng.
30. Trong quản lý bộ nhớ, kỹ thuật "paging" (phân trang) chia bộ nhớ vật lý và bộ nhớ ảo thành các đơn vị có kích thước cố định gọi là gì?
A. Segments
B. Blocks
C. Pages
D. Frames
31. Đâu là vai trò **chính** của hệ điều hành trong một hệ thống máy tính?
A. Quản lý phần cứng và cung cấp giao diện cho người dùng và ứng dụng.
B. Chạy trực tiếp các ứng dụng người dùng.
C. Biên dịch mã nguồn thành mã máy.
D. Sản xuất chip xử lý và bộ nhớ.
32. Trong ngữ cảnh quản lý bộ nhớ, kỹ thuật **phân trang (paging)** giải quyết vấn đề nào sau đây?
A. Tăng tốc độ truy cập bộ nhớ cache.
B. Cho phép một tiến trình sử dụng bộ nhớ vật lý không liên tục.
C. Ngăn chặn tình trạng tràn bộ nhớ stack.
D. Giảm thiểu phân mảnh ngoại vi.
33. Thuật toán lập lịch CPU **Round Robin** hoạt động dựa trên nguyên tắc nào?
A. Ưu tiên tiến trình có thời gian thực thi ngắn nhất.
B. Gán CPU cho tiến trình có độ ưu tiên cao nhất.
C. Chia sẻ CPU một cách công bằng cho tất cả các tiến trình theo vòng tròn.
D. Ưu tiên tiến trình đến trước phục vụ trước.
34. Hiện tượng **deadlock (tắc nghẽn)** xảy ra khi nào?
A. Khi có quá nhiều tiến trình cùng truy cập vào một tài nguyên.
B. Khi hai hay nhiều tiến trình chờ đợi lẫn nhau để giải phóng tài nguyên mà chúng đang giữ.
C. Khi một tiến trình chiếm dụng CPU quá lâu.
D. Khi bộ nhớ ảo không đủ để chứa tất cả các tiến trình.
35. Trong hệ thống file, **inode** chứa thông tin gì về một file?
A. Nội dung của file.
B. Tên của file.
C. Metadata của file như quyền truy cập, kích thước, vị trí dữ liệu trên đĩa.
D. Đường dẫn đầy đủ đến file.
36. Kiểu hệ điều hành nào phù hợp nhất cho các hệ thống **nhúng thời gian thực**, ví dụ như hệ thống điều khiển máy bay hay robot công nghiệp?
A. Hệ điều hành theo lô (Batch Operating System).
B. Hệ điều hành chia sẻ thời gian (Time-Sharing Operating System).
C. Hệ điều hành thời gian thực (Real-Time Operating System).
D. Hệ điều hành phân tán (Distributed Operating System).
37. Điểm khác biệt chính giữa **hệ thống gọi hệ thống (system call)** và **lời gọi hàm (function call)** thông thường là gì?
A. System call được thực hiện bởi người dùng, function call được thực hiện bởi hệ điều hành.
B. System call chuyển từ chế độ người dùng sang chế độ kernel, function call chỉ thực hiện trong chế độ người dùng.
C. System call nhanh hơn function call.
D. Function call có thể truy cập trực tiếp phần cứng, system call thì không.
38. Trong quản lý bộ nhớ ảo, hiện tượng **thrashing** xảy ra khi nào?
A. Khi bộ nhớ vật lý đầy và không thể cấp phát thêm trang.
B. Khi hệ thống liên tục thực hiện việc trao đổi trang (swapping) giữa bộ nhớ chính và bộ nhớ phụ quá mức.
C. Khi một tiến trình cố gắng truy cập vào một trang không hợp lệ.
D. Khi có quá nhiều tiến trình chia sẻ chung một vùng nhớ.
39. Phương pháp **bảo vệ bộ nhớ** nào thường được sử dụng để ngăn chặn một tiến trình ghi đè lên vùng nhớ của tiến trình khác?
A. Mã hóa dữ liệu.
B. Sử dụng mật khẩu.
C. Phân vùng bộ nhớ và kiểm soát truy cập.
D. Sao lưu dữ liệu thường xuyên.
40. Xét về hiệu suất, việc sử dụng nhiều **tiến trình (process)** so với nhiều **luồng (thread)** trong cùng một ứng dụng có thể dẫn đến điều gì?
A. Tiêu thụ tài nguyên hệ thống ít hơn.
B. Chuyển đổi ngữ cảnh (context switching) nhanh hơn.
C. Tốn nhiều chi phí hơn cho việc chuyển đổi ngữ cảnh và giao tiếp giữa các đơn vị thực thi.
D. Tăng cường khả năng bảo mật do tiến trình độc lập hơn.
41. Trong các thuật toán lập lịch CPU, thuật toán nào có thể dẫn đến tình trạng **đói tài nguyên (starvation)** cho một số tiến trình?
A. First-Come, First-Served (FCFS).
B. Shortest-Job-First (SJF).
C. Round Robin.
D. Priority Scheduling (ưu tiên theo độ ưu tiên).
42. 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 được sử dụng gần CPU.
D. Cung cấp bộ nhớ ảo cho các tiến trình.
43. Khi một chương trình thực hiện thao tác **đọc file** từ ổ cứng, hệ điều hành sẽ sử dụng thành phần nào để quản lý và điều khiển quá trình này?
A. Bộ lập lịch CPU (CPU scheduler).
B. Trình quản lý bộ nhớ (Memory manager).
C. Trình quản lý file (File system manager).
D. Trình quản lý thiết bị I/O (I/O manager).
44. Trong mô hình **client-server**, hệ điều hành của máy chủ (server) thường cần có khả năng gì đặc biệt so với hệ điều hành máy trạm (client)?
A. Khả năng chơi game đồ họa cao.
B. Khả năng quản lý nhiều kết nối đồng thời và xử lý tải lớn.
C. Giao diện người dùng đồ họa thân thiện.
D. Khả năng chỉnh sửa video chuyên nghiệp.
45. Để tăng cường tính **bảo mật** cho hệ thống, hệ điều hành có thể thực hiện biện pháp nào sau đây khi người dùng cố gắng truy cập vào một file?
A. Tăng tốc độ CPU.
B. Kiểm tra quyền truy cập của người dùng đối với file đó.
C. Xóa file nếu truy cập không thành công.
D. Tự động sao lưu file.
46. Chức năng cốt lõi của hệ điều hành là gì?
A. Cung cấp giao diện người dùng đồ họa đẹp mắt.
B. Quản lý và phân phối tài nguyên hệ thống (CPU, bộ nhớ, thiết bị ngoại vi) một cách hiệu quả.
C. Phát triển và biên dịch mã nguồn chương trình ứng dụng.
D. Đảm bảo kết nối mạng internet tốc độ cao.
47. Trong một hệ thống đa nhiệm, khi một tiến trình đang chờ đợi dữ liệu từ ổ cứng, hệ điều hành sẽ làm gì để tối ưu hiệu suất CPU?
A. Tiếp tục chờ tiến trình đó hoàn thành thao tác I/O rồi mới chuyển sang tiến trình khác.
B. Chuyển CPU sang tiến trình khác đang ở trạng thái sẵn sàng để sử dụng CPU trong khi tiến trình kia vẫn đang chờ.
C. Tắt hoàn toàn CPU để tiết kiệm năng lượng cho đến khi tiến trình kia hoàn thành I/O.
D. Ưu tiên cấp phát thêm bộ nhớ RAM cho tiến trình đang chờ đợi I/O.
48. Khi bạn mở nhiều ứng dụng trên điện thoại thông minh (ví dụ: trình duyệt web, ứng dụng nghe nhạc, game), nguyên lý hệ điều hành nào giúp bạn có thể chuyển đổi qua lại giữa các ứng dụng một cách mượt mà?
A. Quản lý bộ nhớ ảo.
B. Quản lý tiến trình.
C. Quản lý hệ thống tập tin.
D. Quản lý bảo mật.
49. Điểm khác biệt chính giữa cơ chế lập lịch "ưu tiên độc quyền" (preemptive priority scheduling) và "ưu tiên không độc quyền" (non-preemptive priority scheduling) là gì?
A. Trong "ưu tiên độc quyền", tiến trình có độ ưu tiên cao hơn luôn được cấp CPU trước, còn "ưu tiên không độc quyền" thì ngược lại.
B. Trong "ưu tiên độc quyền", một tiến trình đang chạy có thể bị ngắt ngang bởi tiến trình khác có độ ưu tiên cao hơn, còn "ưu tiên không độc quyền" thì không.
C. "Ưu tiên độc quyền" chỉ phù hợp với hệ thống thời gian thực, còn "ưu tiên không độc quyền" phù hợp với hệ thống batch.
D. "Ưu tiên độc quyền" sử dụng hàng đợi ưu tiên, còn "ưu tiên không độc quyền" sử dụng hàng đợi FIFO.
50. Bộ nhớ ảo (Virtual Memory) được sử dụng chủ yếu để giải quyết vấn đề gì trong quản lý bộ nhớ?
A. Tăng tốc độ truy cập bộ nhớ RAM.
B. Cho phép các chương trình có kích thước lớn hơn dung lượng RAM vật lý có thể chạy được.
C. Bảo vệ dữ liệu trong bộ nhớ khỏi bị truy cập trái phép.
D. Giảm thiểu hiện tượng phân mảnh bộ nhớ ngoài.