1. Hệ điều hành (Operating System) được định nghĩa chính xác nhất là gì?
A. Một phần mềm ứng dụng giúp người dùng soạn thảo văn bản và bảng tính.
B. Một phần cứng chuyên dụng quản lý các thiết bị ngoại vi của máy tính.
C. Một lớp phần mềm trung gian giữa phần cứng máy tính và người dùng, quản lý tài nguyên và cung cấp giao diện.
D. Một loại ngôn ngữ lập trình cấp cao dùng để phát triển các ứng dụng hệ thống.
2. Khi một tiến trình (process) chuyển từ trạng thái "đang chạy" (running) sang trạng thái "sẵn sàng" (ready), điều gì có khả năng cao nhất đã xảy ra?
A. Tiến trình đã hoàn thành tất cả các tác vụ và kết thúc.
B. Tiến trình đã gặp lỗi nghiêm trọng và bị hệ điều hành hủy bỏ.
C. Bộ lập lịch CPU (CPU scheduler) đã quyết định cấp CPU cho một tiến trình khác.
D. Tiến trình đang chờ một sự kiện nhập/xuất (I/O) hoàn thành.
3. Trong quản lý bộ nhớ, bộ nhớ ảo (virtual memory) được sử dụng để giải quyết vấn đề chính nào?
A. Tăng tốc độ truy cập dữ liệu của CPU.
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ý (RAM).
C. Giảm thiểu tình trạng phân mảnh bộ nhớ ngoài (external fragmentation).
D. Đảm bảo an toàn dữ liệu khi hệ thống gặp sự cố mất điện.
4. Thuật toán lập lịch CPU nào có thể dẫn đến tình trạng "đói tài nguyên" (starvation) cho các tiến trình có thời gian thực thi dài?
A. First-Come, First-Served (FCFS)
B. Round Robin (RR)
C. Shortest Job First (SJF) (phiên bản không ưu tiên)
D. Priority Scheduling (Ưu tiên) (phiên bản không có aging)
5. Nhân hệ điều hành (kernel) đảm nhiệm vai trò cốt lõi nào trong hệ thống?
A. Cung cấp giao diện người dùng đồ họa (GUI) cho người dùng.
B. Quản lý và điều phối tất cả các tài nguyên phần cứng và phần mềm của hệ thống.
C. Chạy trực tiếp các ứng dụng của người dùng cuối.
D. Đảm bảo kết nối mạng ổn định và tốc độ cao.
6. Lời gọi hệ thống (system call) được sử dụng khi nào một chương trình người dùng muốn thực hiện một tác vụ "đặc quyền"?
A. Khi chương trình muốn truy cập trực tiếp vào bộ nhớ của tiến trình khác.
B. Khi chương trình muốn yêu cầu hệ điều hành thực hiện một dịch vụ mà nó không được phép tự thực hiện trực tiếp (ví dụ: truy cập file, tạo tiến trình mới).
C. Khi chương trình muốn thực hiện các phép tính số học phức tạp.
D. Khi chương trình muốn giao tiếp với các thiết bị ngoại vi mà không cần thông qua hệ điều hành.
7. Trong ngữ cảnh quản lý tập tin, "inode" thường được sử dụng để lưu trữ thông tin gì về một 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. Metadata của tập tin như quyền truy cập, thời gian tạo/sửa đổi, kích thước, và vị trí dữ liệu trên đĩa.
D. Mật khẩu bảo vệ tập tin.
8. Sự khác biệt chính giữa phân trang (paging) và phân đoạn (segmentation) trong quản lý bộ nhớ là gì?
A. Phân trang chia bộ nhớ thành các khối có kích thước thay đổi, phân đoạn chia thành khối cố định.
B. Phân trang quản lý bộ nhớ vật lý, phân đoạn quản lý bộ nhớ ảo.
C. Phân trang chia bộ nhớ thành các khối có kích thước cố định (trang), phân đoạn chia thành các khối logic có kích thước thay đổi (đoạn).
D. Phân trang sử dụng bảng đoạn, phân đoạn sử dụng bảng trang.
9. Tình trạng "bế tắc" (deadlock) trong hệ điều hành xảy ra khi nào?
A. Khi một tiến trình bị lỗi và ngừng hoạt động đột ngột.
B. Khi hai hoặc nhiều tiến trình chờ đợi lẫn nhau để giải phóng tài nguyên mà mỗi tiến trình đang giữ.
C. Khi bộ nhớ hệ thống bị đầy và không thể cấp phát thêm.
D. Khi CPU quá tải và không thể xử lý kịp các yêu cầu.
10. Chuyển ngữ cảnh (context switching) là một hoạt động quan trọng trong hệ điều hành đa nhiệm. Mục đích chính của chuyển ngữ cảnh là gì?
A. Tăng tốc độ xử lý của CPU bằng cách tối ưu hóa luồng lệnh.
B. Cho phép nhiều tiến trình chia sẻ CPU một cách tuần tự, tạo ảo giác chạy song song.
C. Bảo vệ hệ thống khỏi các chương trình độc hại bằng cách cách ly bộ nhớ.
D. Giảm tiêu thụ điện năng của hệ thống khi không có tác vụ nào đang chạy.
11. Trình điều khiển thiết bị (device driver) đóng vai trò gì trong việc tương tác giữa hệ điều hành và phần cứng?
A. Trình điều khiển thiết bị là một phần của phần cứng, tự động thực hiện các lệnh mà không cần hệ điều hành can thiệp.
B. Trình điều khiển thiết bị cung cấp một giao diện chuẩn để hệ điều hành có thể giao tiếp và điều khiển các thiết bị phần cứng khác nhau.
C. Trình điều khiển thiết bị chịu trách nhiệm quản lý bộ nhớ cache của CPU để tăng tốc độ truy cập dữ liệu từ phần cứng.
D. Trình điều khiển thiết bị là một ứng dụng người dùng giúp cấu hình và tùy chỉnh các thiết lập phần cứng.
12. Hệ điều hành thời gian thực (Real-time Operating System - RTOS) được thiết kế chủ yếu cho các ứng dụng nào?
A. Các ứng dụng văn phòng và giải trí đa phương tiện.
B. Các hệ thống nhúng và ứng dụng yêu cầu độ trễ thấp và tính quyết định cao (ví dụ: hệ thống điều khiển công nghiệp, robot).
C. Các máy chủ web và cơ sở dữ liệu lớn.
D. Các hệ thống máy tính cá nhân thông thường.
13. Sự khác biệt cơ bản giữa tiến trình (process) và luồng (thread) là gì?
A. Tiến trình là đơn vị thực thi nhỏ hơn luồng.
B. Các luồng trong cùng một tiến trình có không gian địa chỉ bộ nhớ riêng biệt, trong khi các tiến trình thì chia sẻ chung.
C. Tiến trình là đơn vị cấp phát tài nguyên (bộ nhớ, file...), luồng là đơn vị thực thi trong tiến trình và chia sẻ tài nguyên của tiến trình đó.
D. Luồng có thể tồn tại độc lập mà không cần tiến trình chứa, trong khi tiến trình luôn cần có ít nhất một luồng.
14. Lỗi trang (page fault) xảy ra khi nào trong hệ thống bộ nhớ ảo?
A. Khi bộ nhớ vật lý (RAM) bị đầy.
B. Khi CPU gặp lỗi trong quá trình xử lý lệnh.
C. Khi chương trình cố gắng truy cập một trang bộ nhớ ảo hiện chưa được tải vào bộ nhớ vật lý.
D. Khi ổ cứng bị lỗi và không thể truy xuất dữ liệu.
15. Cơ chế bảo vệ bộ nhớ (memory protection) trong hệ điều hành nhằm mục đích chính là gì?
A. Tăng tốc độ truy cập bộ nhớ bằng cách tối ưu hóa việc sử dụng cache.
B. Ngăn chặn một tiến trình truy cập trái phép vào bộ nhớ của tiến trình khác hoặc vào không gian bộ nhớ của hệ điều hành (kernel).
C. Giảm phân mảnh bộ nhớ và tối ưu hóa việc sử dụng không gian bộ nhớ.
D. Bảo vệ dữ liệu trong bộ nhớ khỏi bị mất khi hệ thống gặp sự cố.
16. 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 của máy tính
B. Chạy các ứng dụng người dùng
C. Kết nối máy tính với mạng Internet
D. Bảo vệ máy tính khỏi virus
17. Trong quản lý bộ nhớ, kỹ thuật phân trang (paging) giúp giải quyết vấn đề gì?
A. Tăng tốc độ truy cập bộ nhớ
B. Giảm thiểu phân mảnh bộ nhớ ngoài (external fragmentation)
C. Cho phép tiến trình vượt quá kích thước bộ nhớ vật lý
D. Đơn giản hóa việc cấp phát bộ nhớ
18. Khi một tiến trình cần thực hiện thao tác nhập/xuất (I/O), hệ điều hành thường sử dụng cơ chế nào để quản lý?
A. Ngắt (Interrupt)
B. Đa nhiệm (Multitasking)
C. Bộ nhớ đệm (Cache)
D. Bộ nhớ ảo (Virtual memory)
19. 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 chiếm dụng quá nhiều CPU
B. Khi nhiều tiến trình cạnh tranh truy cập cùng một tài nguyên không chia sẻ và mỗi tiến trình giữ một tài nguyên mà nó cần và đang chờ một tài nguyên khác mà tiến trình khác đang giữ.
C. Khi bộ nhớ vật lý không đủ cho tất cả các tiến trình
D. Khi hệ thống gặp lỗi phần cứng
20. Loại hệ điều hành nào thường được sử dụng trong các hệ thống nhúng (embedded systems) như điện thoại thông minh, máy tính bảng?
A. Hệ điều hành thời gian thực (Real-time OS)
B. Hệ điều hành đa nhiệm (Multitasking OS)
C. Hệ điều hành phân tán (Distributed OS)
D. Hệ điều hành đơn người dùng (Single-user OS)
21. Thuật toán lập lịch CPU nào ưu tiên các tiến trình có thời gian burst CPU ngắn nhất?
A. First-Come, First-Served (FCFS)
B. Shortest-Job-First (SJF)
C. Round Robin (RR)
D. Priority Scheduling
22. Sự khác biệt chính giữa hệ điều hành batch (theo lô) và hệ điều hành tương tác (interactive) là gì?
A. Hệ điều hành batch chỉ xử lý một công việc tại một thời điểm, trong khi hệ điều hành tương tác có thể xử lý nhiều công việc.
B. Hệ điều hành batch không cho phép người dùng tương tác trực tiếp trong quá trình thực thi công việc, trong khi hệ điều hành tương tác cho phép người dùng tương tác.
C. Hệ điều hành batch nhanh hơn hệ điều hành tương tác.
D. Hệ điều hành tương tác an toàn hơn hệ điều hành batch.
23. Mục đích 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 chi phí bộ nhớ
C. Tăng tốc độ truy cập 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
24. Trong hệ thống file, "inode" (index node) thường chứa thông tin gì về file?
A. Nội dung của file
B. Tên file
C. Quyền truy cập, kích thước, vị trí dữ liệu trên đĩa
D. Đường dẫn thư mục chứa file
25. Ứng dụng của hệ điều hành thời gian thực (Real-time OS) thường thấy nhất ở đâu?
A. Máy tính cá nhân
B. Máy chủ web
C. Hệ thống điều khiển công nghiệp, robot, xe tự lái
D. Điện thoại di động
26. Cơ chế "semaphore" được sử dụng trong hệ điều hành để làm gì?
A. Quản lý bộ nhớ
B. Lập lịch tiến trình
C. Đồng bộ hóa và loại trừ lẫn nhau giữa các tiến trình/luồng
D. Quản lý hệ thống file
27. Trong quản lý bộ nhớ ảo, "thrashing" (giật trang) xảy ra khi nào?
A. Khi CPU quá tải
B. Khi bộ nhớ vật lý đầy
C. Khi hệ thống dành quá nhiều thời gian cho việc trao đổi trang (swapping) giữa bộ nhớ chính và bộ nhớ phụ
D. Khi có quá nhiều tiến trình ở trạng thái "sẵn sàng" (ready)
28. Chức năng chính của "kernel" (nhân) trong hệ điều hành là gì?
A. Cung cấp giao diện người dùng đồ họa (GUI)
B. Quản lý phần cứng, tiến trình, bộ nhớ và các tài nguyên hệ thống cốt lõi
C. Chạy các ứng dụng web
D. Bảo vệ hệ thống khỏi tấn công mạng
29. Ưu điểm của việc sử dụng hệ thống file phân cấp (hierarchical file system) so với hệ thống file phẳng (flat file system) là gì?
A. Tốc độ truy cập file nhanh hơn
B. Dễ dàng quản lý và tổ chức lượng lớn file
C. Tiết kiệm dung lượng lưu trữ
D. Bảo mật file tốt hơn
30. Trong bảo mật hệ điều hành, cơ chế "access control list" (ACL) được sử dụng để làm gì?
A. Mã hóa dữ liệu
B. Xác thực người dùng
C. 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
D. Phát hiện và loại bỏ virus
31. Nguyên lý nào sau đây KHÔNG phải là mục tiêu chính của hệ điều hành?
A. Thuận tiện (Convenience)
B. Hiệu quả (Efficiency)
C. Khả năng mở rộng (Scalability)
D. Độ phức tạp (Complexity)
32. Tiến trình (Process) chuyển từ trạng thái "Đang chạy" (Running) sang trạng thái "Chờ" (Waiting) khi nào?
A. Khi tiến trình hoàn thành việc thực thi.
B. Khi tiến trình được cấp phát CPU.
C. Khi tiến trình yêu cầu một thao tác I/O.
D. Khi tiến trình bị ngắt bởi bộ lập lịch.
33. Thuật toán lập lịch CPU nào sau đây có thể dẫn đến tình trạng "đói tài nguyên" (starvation) cho các tiến trình có thời gian thực thi dài?
A. First-Come, First-Served (FCFS)
B. Shortest-Job-First (SJF)
C. Round Robin (RR)
D. Priority Scheduling
34. 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. Đánh tráo (Swapping) chậm
D. Chia sẻ bộ nhớ giữa các tiến trình
35. Cơ chế "bộ nhớ ảo" (virtual memory) hoạt động dựa trên nguyên tắc chính nào?
A. Tăng tốc độ truy cập bộ nhớ vật lý.
B. Sử dụng bộ nhớ cache để lưu trữ dữ liệu thường xuyên truy cập.
C. Chỉ tải vào bộ nhớ vật lý những trang cần thiết cho việc thực thi.
D. Cấp phát bộ nhớ vật lý liên tục cho mỗi tiến trình.
36. Trong ngữ cảnh hệ điều hành, "ngõ cụt" (deadlock) xảy ra khi nào?
A. Khi một tiến trình bị lỗi và dừng hoạt động.
B. Khi hai hay nhiều tiến trình chờ đợi nhau vô thời hạn để giải phóng tài nguyên mà tiến trình kia đang giữ.
C. Khi hệ thống thiếu bộ nhớ để cấp phát cho tiến trình.
D. Khi một tiến trình chiếm dụng CPU quá lâu.
37. Hệ thống tệp tin (file system) có vai trò chính gì trong hệ điều hành?
A. Quản lý bộ nhớ chính (RAM).
B. Quản lý các thiết bị ngoại vi.
C. Tổ chức và quản lý dữ liệu trên bộ nhớ thứ cấp (ổ cứng).
D. Lập lịch các tiến trình.
38. Trong bảo mật hệ thống, cơ chế "kiểm soát truy cập" (access control) nhằm mục đích gì?
A. Ngăn chặn virus và phần mềm độc hại.
B. Xác thực người dùng trước khi cấp quyền truy cập.
C. Giám sát hoạt động của người dùng trên hệ thống.
D. Hạn chế quyền truy cập vào tài nguyên hệ thống dựa trên danh tính và vai trò của người dùng.
39. Ứng dụng nào sau đây KHÔNG phải là một chức năng cơ bản của hệ điều hành?
A. Quản lý tệp tin (File management).
B. Trình duyệt web (Web browser).
C. Quản lý bộ nhớ (Memory management).
D. Quản lý tiến trình (Process management).
40. Điểm khác biệt chính giữa hệ điều hành "nhân đơn khối" (monolithic kernel) và "vi nhân" (microkernel) là gì?
A. Tốc độ thực thi.
B. Tính bảo mật.
C. Số lượng dịch vụ hệ thống được tích hợp trong nhân.
D. Khả năng tương thích phần cứng.
41. Trong ngữ cảnh lập trình đồng thời, "semaphore" được sử dụng để giải quyết vấn đề gì?
A. Phân trang bộ nhớ.
B. Lập lịch CPU.
C. Đồng bộ hóa và kiểm soát truy cập vào tài nguyên dùng chung.
D. Quản lý bộ nhớ ảo.
42. Khi một chương trình thực hiện "gọi hệ thống" (system call), điều gì xảy ra?
A. Chương trình chuyển sang trạng thái "chờ".
B. Quyền điều khiển chuyển từ không gian người dùng sang không gian nhân.
C. Bộ nhớ ảo được cấp phát thêm.
D. Chương trình được ưu tiên cao hơn trong lập lịch CPU.
43. Trong quản lý bộ nhớ, kỹ thuật "thay thế trang" (page replacement) được sử dụng khi nào?
A. Khi có một trang lỗi (page fault) xảy ra và bộ nhớ vật lý đã đầy.
B. Khi tiến trình bắt đầu thực thi.
C. Khi bộ nhớ vật lý còn trống.
D. Khi tiến trình kết thúc.
44. Chức năng chính của "trình điều khiển thiết bị" (device driver) là gì?
A. Quản lý bộ nhớ cache.
B. Cung cấp giao diện để hệ điều hành giao tiếp với phần cứng.
C. Lập lịch các yêu cầu I/O.
D. Mã hóa dữ liệu trước khi gửi đến thiết bị.
45. Xét về hiệu suất, thuật toán lập lịch "Round Robin" (RR) hoạt động tốt nhất trong trường hợp nào?
A. Các tiến trình có thời gian thực thi rất ngắn.
B. Các tiến trình có thời gian thực thi rất dài.
C. Các tiến trình có thời gian thực thi tương đương nhau.
D. Các tiến trình ưu tiên cao.
46. Đâu là vai trò **chính yếu** của hệ điều hành trong một hệ thống máy tính?
A. Cung cấp giao diện người dùng để tương tác với máy tính.
B. Quản lý và phân phối tài nguyên phần cứng và phần mềm của hệ thống.
C. Phát triển và biên dịch mã nguồn chương trình ứng dụng.
D. Sản xuất và kiểm tra chất lượng các linh kiện phần cứng.
47. Trong một hệ thống đa nhiệm, khi một tiến trình đang chờ dữ liệu từ ổ cứng, hệ điều hành sẽ thực hiện hành động nào sau đây để tối ưu hiệu suất?
A. Ngừng hoạt động của CPU cho đến khi dữ liệu được đọc xong.
B. Chuyển CPU sang tiến trình khác đang ở trạng thái sẵn sàng.
C. Tăng tốc độ đọc dữ liệu từ ổ cứng để tiến trình chờ nhanh hơn.
D. Giải phóng bộ nhớ đã cấp phát cho tiến trình đang chờ.
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, mạng xã hội), cơ chế nào của hệ điều hành cho phép bạn chuyển đổi mượt mà giữa các ứng dụng này mà không bị gián đoạn?
A. Bộ nhớ cache của CPU
B. Bộ nhớ ảo (Virtual Memory)
C. Bộ nhớ chỉ đọc (ROM)
D. Bộ nhớ flash (Flash Memory)
49. Điểm khác biệt **chính** giữa tiến trình (process) và luồng (thread) trong hệ điều hành là gì?
A. Tiến trình chia sẻ không gian bộ nhớ, luồng có không gian bộ nhớ riêng.
B. Tiến trình có không gian bộ nhớ riêng, luồng chia sẻ không gian bộ nhớ với các luồng khác cùng tiến trình.
C. Tiến trình nhẹ hơn và nhanh hơn luồng trong việc chuyển đổi ngữ cảnh.
D. Tiến trình chỉ có thể thực thi tuần tự, luồng có thể thực thi song song.
50. Trong hệ thống quản lý bộ nhớ, cơ chế phân trang (paging) được sử dụng để giải quyết vấn đề chính nào?
A. Giảm thiểu hiện tượng phân mảnh bộ nhớ ngoài.
B. Tăng tốc độ truy cập dữ liệu từ ổ cứng.
C. Đảm bảo tính toàn vẹn dữ liệu trong bộ nhớ.
D. Cung cấp khả năng bảo mật dữ liệu tốt hơn.