1. Trong hệ điều hành, ‘driver’ (trình điều khiển) có vai trò gì?
A. Quản lý bộ nhớ.
B. Cung cấp một giao diện để hệ điều hành giao tiếp với các thiết bị phần cứng.
C. Lập lịch CPU.
D. Xử lý ngắt.
2. Trong hệ điều hành, ‘paging’ (phân trang) được sử dụng để làm gì?
A. Quản lý bộ nhớ ảo.
B. Lập lịch CPU.
C. Quản lý các tệp tin.
D. Xử lý ngắt.
3. Trong hệ thống tệp tin, khái niệm ‘inode’ (index node) dùng để làm gì?
A. Lưu trữ dữ liệu của tệp tin.
B. Lưu trữ siêu dữ liệu (metadata) về tệp tin, chẳng hạn như quyền truy cập, kích thước, thời gian sửa đổi.
C. Lưu trữ tên tệp tin.
D. Quản lý không gian trống trên đĩa.
4. Hệ điều hành ‘RTOS’ (Real-time Operating System) được thiết kế cho mục đích gì?
A. Quản lý các hệ thống lớn.
B. Đảm bảo đáp ứng các yêu cầu về thời gian thực, ví dụ trong các hệ thống nhúng.
C. Chạy các ứng dụng đồ họa.
D. Lưu trữ dữ liệu lớn.
5. Trong hệ thống Unix/Linux, lệnh ‘chmod’ được dùng để làm gì?
A. Thay đổi tên tệp tin.
B. Thay đổi quyền truy cập của tệp tin.
C. Xóa tệp tin.
D. Tạo thư mục mới.
6. Quyền truy cập tệp tin ‘rwx’ trong hệ thống Unix/Linux có ý nghĩa gì?
A. Đọc, ghi và thực thi.
B. Chỉ đọc.
C. Chỉ ghi.
D. Thực thi và ghi.
7. Trong lập trình, ‘thread safety’ (tính an toàn luồng) có ý nghĩa gì?
A. Chương trình có thể chạy trên nhiều lõi CPU.
B. Mã được thiết kế để có thể được thực thi an toàn bởi nhiều luồng cùng một lúc mà không gây ra xung đột dữ liệu.
C. Chương trình không sử dụng bộ nhớ dùng chung.
D. Chương trình chỉ có một luồng thực thi.
8. Khái niệm ‘quyền hạn’ (authorization) trong bảo mật hệ thống liên quan đến điều gì?
A. Xác định danh tính của người dùng.
B. Xác định những tài nguyên mà người dùng được phép truy cập sau khi đã được chứng thực.
C. Mã hóa dữ liệu.
D. Ngăn chặn tấn công mạng.
9. Trong hệ điều hành, ‘bộ nhớ ảo’ (virtual memory) có mục đích chính là gì?
A. Tăng dung lượng bộ nhớ vật lý.
B. Cung cấp cho các tiến trình không gian địa chỉ lớn hơn so với bộ nhớ vật lý có sẵn.
C. Tăng tốc độ truy cập bộ nhớ.
D. Quản lý bộ nhớ cache.
10. Trong hệ điều hành, ‘shell’ (vỏ) có chức năng gì?
A. Quản lý bộ nhớ.
B. Cung cấp giao diện người dùng để tương tác với hệ điều hành.
C. Lập lịch CPU.
D. Xử lý ngắt.
11. ‘Segmentation’ (phân đoạn) trong quản lý bộ nhớ khác với ‘paging’ (phân trang) như thế nào?
A. Phân đoạn chia bộ nhớ thành các trang có kích thước cố định, trong khi phân trang chia bộ nhớ thành các đoạn có kích thước thay đổi.
B. Phân đoạn chia bộ nhớ thành các đoạn có kích thước thay đổi, phản ánh cấu trúc logic của chương trình, trong khi phân trang chia bộ nhớ thành các trang có kích thước cố định.
C. Phân đoạn chỉ được sử dụng trong hệ thống Unix/Linux.
D. Phân trang không cần sự hỗ trợ của phần cứng.
12. ‘System call’ (lời gọi hệ thống) là gì?
A. Một lệnh được thực thi bởi CPU.
B. Một yêu cầu từ một chương trình đến kernel để thực hiện một tác vụ đặc quyền.
C. Một hàm trong thư viện chuẩn.
D. Một lỗi phần mềm.
13. Trong kiến trúc hệ thống, ‘DMA’ (Direct Memory Access) có chức năng gì?
A. Xử lý các ngắt.
B. Cho phép các thiết bị ngoại vi truy cập trực tiếp vào bộ nhớ mà không cần sự can thiệp của CPU.
C. Quản lý bộ nhớ ảo.
D. Lập lịch CPU.
14. Sự khác biệt chính giữa liên kết cứng (hard link) và liên kết mềm (symbolic link) trong hệ thống tệp tin là gì?
A. Liên kết cứng trỏ đến inode, còn liên kết mềm trỏ đến tên tệp tin.
B. Liên kết cứng có thể vượt qua các hệ thống tệp tin, còn liên kết mềm thì không.
C. Liên kết cứng là một bản sao của tệp tin, còn liên kết mềm chỉ là một con trỏ.
D. Liên kết cứng chiếm ít không gian lưu trữ hơn liên kết mềm.
15. ‘Firewall’ (tường lửa) trong hệ thống có chức năng gì?
A. Mã hóa dữ liệu.
B. Ngăn chặn truy cập trái phép vào hệ thống bằng cách kiểm soát lưu lượng mạng.
C. Quản lý bộ nhớ.
D. Lập lịch CPU.
16. Để ngăn chặn nghẽn cổ chai, một trong những điều kiện cần thiết là gì?
A. Cho phép vòng lặp chờ đợi.
B. Không cho phép chiếm giữ và chờ đợi tài nguyên.
C. Tăng số lượng tiến trình.
D. Giảm thời gian thực thi của các tiến trình.
17. Semaphore là một công cụ đồng bộ hóa được sử dụng để làm gì?
A. Quản lý bộ nhớ.
B. Kiểm soát truy cập vào tài nguyên dùng chung.
C. Lập lịch CPU.
D. Xử lý ngắt.
18. Khái niệm ‘kernel’ (nhân hệ điều hành) là gì?
A. Giao diện người dùng của hệ điều hành.
B. Phần lõi của hệ điều hành, chịu trách nhiệm quản lý các tài nguyên phần cứng và cung cấp các dịch vụ cho các ứng dụng.
C. Các ứng dụng người dùng.
D. Một loại bộ nhớ.
19. Mục đích của ‘bộ nhớ cache’ (cache memory) trong hệ thống là gì?
A. Lưu trữ dữ liệu vĩnh viễn.
B. Tăng tốc độ truy cập dữ liệu bằng cách lưu trữ các dữ liệu được truy cập thường xuyên gần CPU hơn.
C. Quản lý bộ nhớ ảo.
D. Lập lịch CPU.
20. Sự khác biệt chính giữa tiến trình và luồng (thread) là gì?
A. Tiến trình chia sẻ bộ nhớ, luồng thì không.
B. Luồng chia sẻ tài nguyên với các luồng khác trong cùng một tiến trình, trong khi tiến trình có các tài nguyên riêng biệt.
C. Tiến trình nhẹ hơn luồng.
D. Luồng có thể thực thi song song trên nhiều CPU, tiến trình thì không.
21. Trong ngữ cảnh của hệ điều hành, ‘lập lịch CPU’ (CPU scheduling) có mục đích chính là gì?
A. Phân bổ bộ nhớ cho các tiến trình.
B. Quản lý các tiến trình trên đĩa cứng.
C. Xác định thứ tự thực thi của các tiến trình trên CPU.
D. Kiểm soát truy cập vào các thiết bị ngoại vi.
22. Thuật toán lập lịch nào sau đây được coi là không ưu tiên (non-preemptive)?
A. Round Robin.
B. Shortest Job First (SJF).
C. Priority Scheduling.
D. Multilevel Feedback Queue.
23. ‘Đồng bộ hóa’ (synchronization) trong hệ điều hành có ý nghĩa gì?
A. Chia sẻ dữ liệu giữa các tiến trình.
B. Đảm bảo các tiến trình được thực thi theo thứ tự ngẫu nhiên.
C. Đảm bảo các tiến trình truy cập vào tài nguyên dùng chung một cách an toàn và có kiểm soát.
D. Tăng tốc độ thực thi của các tiến trình.
24. Trong hệ điều hành, khái niệm ‘tiến trình’ (process) được định nghĩa chính xác nhất là gì?
A. Một đơn vị cơ bản của bộ nhớ, chứa mã lệnh và dữ liệu.
B. Một chương trình đang được thực thi, bao gồm mã lệnh, dữ liệu, bộ nhớ và các tài nguyên hệ thống liên quan.
C. Một tập hợp các lệnh được lưu trữ trên đĩa cứng.
D. Một luồng thực thi độc lập trong một chương trình.
25. Trong hệ điều hành, ‘ngắt’ (interrupt) là gì?
A. Một tín hiệu được gửi đến CPU để thông báo về một sự kiện cần được xử lý.
B. Một tiến trình đang chạy.
C. Một lỗi phần cứng.
D. Một tệp tin bị hỏng.
26. Mục đích 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ớ vật lý.
B. Lưu trữ và tổ chức dữ liệu trên các thiết bị lưu trữ.
C. Lập lịch CPU.
D. Quản lý các tiến trình đang chạy.
27. Hiện tượng ‘trang lỗi’ (page fault) xảy ra khi nào?
A. Khi một trang bộ nhớ không có sẵn trong bộ nhớ vật lý.
B. Khi CPU bị quá tải.
C. Khi một tiến trình kết thúc.
D. Khi có quá nhiều tiến trình đang sử dụng bộ nhớ.
28. Hiện tượng ‘nghẽn cổ chai’ (deadlock) trong hệ điều hành xảy ra khi nào?
A. Khi một tiến trình chiếm giữ tài nguyên và chờ đợi tài nguyên khác mà tiến trình khác đang giữ, tạo thành một vòng lặp.
B. Khi có quá nhiều tiến trình đang chạy cùng một lúc.
C. Khi bộ nhớ bị đầy.
D. Khi CPU không đủ mạnh.
29. Trong ngữ cảnh của bảo mật hệ thống, ‘chứng thực’ (authentication) có nghĩa là gì?
A. Xác định danh tính của người dùng hoặc thiết bị.
B. Cho phép truy cập vào tài nguyên.
C. Mã hóa dữ liệu.
D. Ngăn chặn truy cập trái phép.
30. Thuật toán thay thế trang (page replacement algorithm) nào sau đây được coi là tối ưu?
A. FIFO (First-In, First-Out).
B. LRU (Least Recently Used).
C. Optimal (OPT).
D. Clock.
31. Hệ thống I/O (Input/Output) trong hệ điều hành có vai trò gì?
A. Quản lý các tiến trình đang chạy.
B. Cho phép hệ điều hành tương tác với các thiết bị ngoại vi.
C. Quản lý bộ nhớ vật lý.
D. Lập lịch CPU.
32. Sự 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ó bộ nhớ riêng, luồng thì không.
B. Luồng có bộ nhớ riêng, tiến trình thì không.
C. Tiến trình chia sẻ tài nguyên với các tiến trình khác, luồng thì không.
D. Luồng nhẹ hơn và chia sẻ tài nguyên với các luồng khác trong cùng một tiến trình.
33. Hai phương pháp chính để giao tiếp với thiết bị trong hệ thống I/O là gì?
A. Phân trang và phân đoạn.
B. Lập lịch và đồng bộ hóa.
C. Lập trình I/O (Programmed I/O) và DMA (Direct Memory Access).
D. Bộ nhớ ảo và bộ nhớ cache.
34. Mục tiêu chính của hệ thống tệp (file system) là gì?
A. Quản lý các tiến trình đang chạy.
B. Cung cấp một phương pháp để lưu trữ và truy cập dữ liệu trên các thiết bị lưu trữ.
C. Quản lý bộ nhớ vật lý.
D. Lập lịch CPU.
35. Trong hệ thống I/O, ‘ngắt’ (interrupt) được sử dụng để làm gì?
A. Để tăng tốc độ truy cập vào bộ nhớ.
B. Để thông báo cho CPU về các sự kiện từ các thiết bị ngoại vi.
C. Để quản lý bộ nhớ ảo.
D. Để thực hiện các lệnh của người dùng.
36. Trong phân trang (paging), bộ nhớ được chia thành các đơn vị có kích thước cố định gọi là gì?
A. Đoạn (segments).
B. Khung (frames).
C. Trang (pages).
D. Vùng (regions).
37. ‘Bộ điều khiển thiết bị’ (device controller) có chức năng gì trong hệ thống I/O?
A. Quản lý bộ nhớ chính.
B. Điều khiển hoạt động của các thiết bị ngoại vi.
C. Lập lịch CPU.
D. Quản lý các tiến trình.
38. Trong hệ điều hành, ‘kernel’ (nhân hệ điều hành) có vai trò gì?
A. Quản lý giao diện người dùng.
B. Cung cấp các dịch vụ cốt lõi cho hệ thống, chẳng hạn như quản lý bộ nhớ, lập lịch CPU, và quản lý I/O.
C. Lưu trữ dữ liệu của người dùng.
D. Chạy các ứng dụng người dùng.
39. Trong hệ thống tệp, ‘đường dẫn’ (path) được sử dụng để làm gì?
A. Lưu trữ dữ liệu của các tệp.
B. Xác định vị trí của một tệp trong hệ thống tệp.
C. Quản lý bộ nhớ.
D. Thực hiện các lệnh hệ thống.
40. Mục đích của bộ nhớ ảo (virtual memory) là gì?
A. Để tăng tốc độ truy cập bộ nhớ.
B. Để cho phép các tiến trình sử dụng nhiều bộ nhớ hơn bộ nhớ vật lý có sẵn.
C. Để giảm thiểu việc sử dụng bộ nhớ.
D. Để bảo vệ dữ liệu khỏi bị truy cập trái phép.
41. Trong lập trình đa luồng, ‘khóa’ (lock) được sử dụng để làm gì?
A. Để tăng tốc độ thực thi của các luồng.
B. Để ngăn chặn các luồng truy cập đồng thời vào một tài nguyên dùng chung, tránh xung đột dữ liệu.
C. Để giảm thiểu việc sử dụng bộ nhớ trong các luồng.
D. Để cho phép các luồng giao tiếp với nhau.
42. Trong hệ điều hành, ‘shell’ là gì?
A. Phần cứng của máy tính.
B. Một chương trình cung cấp giao diện người dùng để tương tác với kernel.
C. Kernel của hệ điều hành.
D. Bộ nhớ chính.
43. Một trong những điều kiện cần thiết để xảy ra deadlock là gì?
A. Sự chia sẻ tài nguyên.
B. Sự độc quyền tài nguyên (mutual exclusion).
C. Sự đồng bộ hóa giữa các tiến trình.
D. Sự phân phối công bằng tài nguyên.
44. Mục đích chính của việc sử dụng các luồng (threads) trong một tiến trình (process) là gì?
A. Để tăng cường bảo mật bằng cách cách ly các phần của chương trình.
B. Để cho phép một tiến trình thực hiện nhiều tác vụ đồng thời (tính đa luồng).
C. Để giảm thiểu việc sử dụng bộ nhớ.
D. Để tăng tốc độ truy cập vào bộ nhớ ngoài.
45. Trong kiến trúc hệ điều hành, ‘giao diện dòng lệnh’ (command-line interface – CLI) là gì?
A. Một giao diện đồ họa sử dụng chuột và biểu tượng.
B. Một giao diện cho phép người dùng nhập các lệnh bằng văn bản.
C. Một trình duyệt web.
D. Một hệ thống tệp.
46. Thuật toán thay thế trang (page replacement algorithm) nào sau đây là thuật toán ‘tối ưu’ (optimal)?
A. FIFO (First-In, First-Out – Vào trước, ra trước).
B. LRU (Least Recently Used – Ít sử dụng gần đây nhất).
C. Optimal (Tối ưu).
D. Random (Ngẫu nhiên).
47. Đâu là một ví dụ về một hệ điều hành đa nhiệm (multitasking)?
A. MS-DOS.
B. Windows XP.
C. Một hệ thống nhúng đơn giản.
D. Hệ thống thời gian thực.
48. Trong ngữ cảnh hệ điều hành, ‘ngăn xếp’ (stack) được sử dụng để làm gì?
A. Lưu trữ dữ liệu lớn.
B. Quản lý các tiến trình đang hoạt động.
C. Lưu trữ các giá trị trả về, tham số, và địa chỉ trả về của các hàm.
D. Lưu trữ các tập tin tạm thời.
49. Trong ngữ cảnh hệ điều hành, ‘lập lịch CPU’ (CPU scheduling) là gì?
A. Quá trình cấp phát bộ nhớ cho các tiến trình.
B. Quá trình quản lý và phân bổ thời gian CPU cho các tiến trình.
C. Quá trình quản lý các thiết bị ngoại vi.
D. Quá trình lưu trữ và truy xuất dữ liệu.
50. Thuật toán lập lịch nào sau đây là thuật toán ‘tiên tiến’ (preemptive)?
A. FCFS (First-Come, First-Served – Đến trước, phục vụ trước).
B. SJF (Shortest Job First – Ưu tiên công việc ngắn nhất).
C. Round Robin (Vòng xoay).
D. Non-preemptive priority scheduling (Lập lịch ưu tiên không tiên tiến).
51. Hiện tượng ‘deadlock’ (tắc nghẽn) trong hệ điều hành xảy ra khi nào?
A. Khi một tiến trình bị treo vì lỗi bộ nhớ.
B. Khi hai hoặc nhiều tiến trình bị chặn vĩnh viễn vì chúng chờ đợi các tài nguyên mà các tiến trình khác đang giữ.
C. Khi hệ thống hết bộ nhớ.
D. Khi có quá nhiều luồng đang chạy đồng thời.
52. DMA (Direct Memory Access) có ưu điểm gì so với lập trình I/O?
A. DMA sử dụng CPU nhiều hơn.
B. DMA cho phép truyền dữ liệu nhanh hơn vì CPU không cần tham gia vào quá trình truyền dữ liệu.
C. DMA không hỗ trợ truyền dữ liệu lớn.
D. DMA tốn nhiều bộ nhớ hơn.
53. Trong hệ thống tệp, ‘siêu dữ liệu’ (metadata) là gì?
A. Dữ liệu thực tế được lưu trữ trong tệp.
B. Thông tin về tệp, chẳng hạn như tên, kích thước, ngày tạo, và quyền truy cập.
C. Các tập tin tạm thời được hệ thống sử dụng.
D. Mã thực thi của một chương trình.
54. Hệ điều hành sử dụng cơ chế nào để quản lý bộ nhớ?
A. Chỉ sử dụng phân trang (paging).
B. Chỉ sử dụng phân đoạn (segmentation).
C. Chỉ sử dụng phân vùng cố định (fixed partitioning).
D. Kết hợp phân trang, phân đoạn và các kỹ thuật khác.
55. Vai trò của thư mục (directory) trong hệ thống tệp là gì?
A. Lưu trữ dữ liệu thực tế của các tệp.
B. Tổ chức và quản lý các tệp bằng cách nhóm chúng lại với nhau.
C. Quản lý bộ nhớ.
D. Thực hiện các lệnh từ người dùng.
56. Trong hệ điều hành, khái niệm ‘tiến trình’ (process) được định nghĩa là gì?
A. Một chương trình đang hoạt động, bao gồm mã lệnh, dữ liệu và các tài nguyên hệ thống.
B. Một đơn vị cơ bản của việc thực thi, đại diện cho một tác vụ đang được thực hiện.
C. Một tập hợp các lệnh được lưu trữ trên đĩa cứng.
D. Một công cụ quản lý bộ nhớ.
57. ‘System call’ (lời gọi hệ thống) được sử dụng để làm gì?
A. Để tăng tốc độ thực thi của chương trình.
B. Để cho phép các chương trình người dùng yêu cầu các dịch vụ từ kernel.
C. Để quản lý bộ nhớ ảo.
D. Để giao tiếp với các thiết bị ngoại vi.
58. Trong ngữ cảnh hệ thống tệp, ‘quyền truy cập’ (access permissions) dùng để làm gì?
A. Để tăng tốc độ đọc và ghi tệp.
B. Để xác định người dùng nào có thể đọc, ghi hoặc thực thi một tệp.
C. Để quản lý kích thước của tệp.
D. Để lưu trữ dữ liệu của tệp.
59. Giao diện đồ họa người dùng (GUI) khác với giao diện dòng lệnh (CLI) ở điểm nào?
A. GUI sử dụng các lệnh văn bản, còn CLI sử dụng các biểu tượng.
B. GUI sử dụng các biểu tượng, menu, và chuột để tương tác, còn CLI sử dụng các lệnh văn bản.
C. GUI nhanh hơn CLI.
D. CLI tốn nhiều bộ nhớ hơn GUI.
60. Trong hệ thống bộ nhớ ảo, khi một trang không có trong bộ nhớ chính, sự kiện gì xảy ra?
A. Một lỗi phân đoạn (segmentation fault).
B. Một lỗi trang (page fault).
C. Một lỗi tràn bộ nhớ (buffer overflow).
D. Tiến trình bị dừng lại.
61. Hiện tượng ‘race condition’ (tình trạng tranh chấp) xảy ra khi nào?
A. Khi một tiến trình bị deadlock.
B. Khi nhiều tiến trình hoặc luồng truy cập và sửa đổi dữ liệu dùng chung đồng thời, và kết quả phụ thuộc vào thứ tự thực thi.
C. Khi bộ nhớ bị tràn.
D. Khi hệ thống bị treo.
62. Giải pháp nào sau đây không phải là một phương pháp để ngăn chặn hoặc giải quyết deadlock?
A. Ngăn chặn một trong các điều kiện cần thiết cho deadlock xảy ra.
B. Sử dụng thuật toán phát hiện và khôi phục deadlock.
C. Cho phép tất cả các tiến trình truy cập vào mọi tài nguyên cùng một lúc.
D. Sử dụng các giao thức để đảm bảo thứ tự yêu cầu tài nguyên.
63. Thuật toán ‘Round Robin’ trong lập lịch hoạt động như thế nào?
A. Ưu tiên các tiến trình ngắn nhất.
B. Mỗi tiến trình được cấp một khoảng thời gian CPU (quantum) cố định, sau đó CPU chuyển sang tiến trình khác.
C. Thực hiện các tiến trình theo thứ tự đến.
D. Ưu tiên các tiến trình có thời gian chờ đợi lâu nhất.
64. Hệ thống tệp tin (file system) trong hệ điều hành có vai trò gì?
A. Để quản lý bộ nhớ.
B. Để quản lý các tiến trình.
C. Để tổ chức và lưu trữ các tệp tin trên bộ nhớ thứ cấp.
D. Để lập lịch các tác vụ.
65. ‘Ngắt’ (interrupt) trong hệ điều hành có vai trò gì?
A. Để dừng hoạt động của CPU.
B. Để thông báo cho CPU về một sự kiện cần được xử lý.
C. Để xóa dữ liệu trong bộ nhớ.
D. Để khởi động lại hệ thống.
66. Mục đích của việc sử dụng các thiết bị I/O trong hệ điều hành là gì?
A. Để lưu trữ dữ liệu.
B. Để giao tiếp với người dùng và các thiết bị bên ngoài.
C. Để lập lịch các tiến trình.
D. Để quản lý bộ nhớ.
67. Mục đích chính của việc sử dụng các luồng trong một tiến trình là gì?
A. Để tăng cường bảo mật của hệ thống.
B. Để giảm thiểu việc sử dụng bộ nhớ.
C. Để cho phép một tiến trình thực hiện nhiều tác vụ đồng thời.
D. Để thay thế hoàn toàn các tiến trình khác.
68. Trong hệ điều hành, khái niệm ‘tiến trình’ (process) được định nghĩa là gì?
A. Một đơn vị cơ bản của bộ nhớ, chứa mã lệnh và dữ liệu.
B. Một chương trình đang được thực thi, bao gồm mã lệnh, dữ liệu, và trạng thái thực thi.
C. Một tập hợp các lệnh được lưu trữ trên đĩa cứng.
D. Một luồng thực thi độc lập trong một chương trình.
69. Vai trò của inode trong hệ thống tệp tin là gì?
A. Để lưu trữ nội dung của tệp tin.
B. Để lưu trữ siêu dữ liệu (metadata) về tệp tin.
C. Để quản lý việc truy cập vào các thiết bị ngoại vi.
D. Để lập lịch các tiến trình.
70. Cấu trúc thư mục (directory structure) trong hệ thống tệp tin dùng để làm gì?
A. Để lưu trữ dữ liệu của các tệp tin.
B. Để tổ chức các tệp tin và thư mục khác.
C. Để quản lý việc truy cập vào các thiết bị ngoại vi.
D. Để lập lịch các tiến trình.
71. Điểm khác biệt chính giữa lập lịch ‘tiên nghiệm’ (preemptive) và ‘không tiên nghiệm’ (non-preemptive) là gì?
A. Tiên nghiệm cho phép tiến trình đang chạy bị ngắt và nhường CPU, không tiên nghiệm thì không.
B. Tiên nghiệm luôn ưu tiên các tiến trình ngắn nhất, không tiên nghiệm thì không.
C. Tiên nghiệm luôn sử dụng Round Robin, không tiên nghiệm thì không.
D. Tiên nghiệm chỉ dành cho các hệ thống đa nhân, không tiên nghiệm thì không.
72. Thuật toán thay thế trang ‘FIFO’ (First-In, First-Out) hoạt động như thế nào?
A. Thay thế trang được sử dụng lâu nhất trong bộ nhớ.
B. Thay thế trang có tần suất sử dụng ít nhất.
C. Thay thế trang được truy cập gần đây nhất.
D. Thay thế trang đầu tiên được đưa vào bộ nhớ.
73. Sự khác biệt chính giữa tiến trình và luồng (thread) là gì?
A. Tiến trình chia sẻ bộ nhớ, luồng không.
B. Luồng chia sẻ tài nguyên với tiến trình cha, tiến trình thì không.
C. Tiến trình có không gian địa chỉ riêng, luồng chia sẻ không gian địa chỉ.
D. Luồng không thể thực thi song song, tiến trình thì có thể.
74. Nguyên nhân chính dẫn đến tình trạng ‘chết deadlock’ (deadlock) trong hệ điều hành là gì?
A. Sự xung đột giữa các luồng.
B. Các tiến trình cạnh tranh tài nguyên và chờ đợi lẫn nhau một cách vòng tròn.
C. Lỗi trong việc quản lý bộ nhớ.
D. Sự cố phần cứng.
75. Thuật toán thay thế trang ‘LRU’ (Least Recently Used) hoạt động như thế nào?
A. Thay thế trang được sử dụng lâu nhất trong bộ nhớ.
B. Thay thế trang có tần suất sử dụng ít nhất.
C. Thay thế trang được truy cập gần đây nhất.
D. Thay thế trang đầu tiên được đưa vào bộ nhớ.
76. Kỹ thuật ‘paging’ trong bộ nhớ ảo hoạt động như thế nào?
A. Chia bộ nhớ thành các phân đoạn có kích thước khác nhau.
B. Chia bộ nhớ thành các trang (page) có kích thước cố định.
C. Chia bộ nhớ thành các phần có kích thước thay đổi theo yêu cầu của tiến trình.
D. Sử dụng các thanh ghi để quản lý bộ nhớ.
77. Mục đích của thuật toán ‘thay thế trang’ (page replacement) là gì?
A. Để tăng tốc độ truy cập bộ nhớ.
B. Để chọn trang nào sẽ bị loại bỏ khỏi bộ nhớ khi cần thiết.
C. Để giảm thiểu số lượng lỗi trang.
D. Để quản lý các tiến trình.
78. 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 cho tất cả các tiến trình.
B. Giảm thiểu thời gian chờ trung bình của các tiến trình.
C. Dễ dàng triển khai.
D. Không có overhead.
79. Vai trò của bộ nhớ ảo (virtual memory) trong hệ điều hành là gì?
A. Để tăng tốc độ truy cập bộ nhớ.
B. Để cung cấp cho các tiến trình một không gian địa chỉ lớn hơn bộ nhớ vật lý.
C. Để lưu trữ các tệp tin hệ thống.
D. Để bảo vệ CPU khỏi các lỗi.
80. Quyền truy cập tệp tin ‘rwx’ trong hệ điều hành Unix/Linux có ý nghĩa gì?
A. Đọc, ghi và thực thi.
B. Chỉ đọc.
C. Chỉ ghi.
D. Chỉ thực thi.
81. Trong phương thức I/O sử dụng ‘polling’, CPU làm gì?
A. CPU chờ đợi thiết bị thông báo khi có dữ liệu.
B. CPU liên tục kiểm tra trạng thái của thiết bị để xem dữ liệu đã sẵn sàng chưa.
C. CPU gửi ngắt đến thiết bị.
D. CPU chuyển dữ liệu trực tiếp vào bộ nhớ.
82. Các phương thức truy cập I/O cơ bản trong hệ điều hành là gì?
A. Polling và interrupt-driven I/O.
B. Paging và segmentation.
C. FCFS và SJF.
D. Mutex và semaphore.
83. Ưu điểm của phương thức I/O sử dụng ‘interrupt-driven’ là gì?
A. Tiết kiệm thời gian xử lý của CPU.
B. Đơn giản hơn để triển khai.
C. Không cần thiết bị đặc biệt.
D. Tăng cường bảo mật.
84. Thuật toán lập lịch ‘FCFS’ (First-Come, First-Served) hoạt động như thế nào?
A. Luôn ưu tiên các tiến trình ngắn nhất.
B. Phân bổ thời gian CPU theo vòng tròn cho mỗi tiến trình.
C. Thực hiện các tiến trình theo thứ tự chúng đến.
D. Ưu tiên các tiến trình có thời gian chờ đợi lâu nhất.
85. Mutex và semaphore là các cơ chế đồng bộ hóa. Điểm khác biệt chính giữa chúng là gì?
A. Mutex chỉ có thể được sử dụng bởi một luồng tại một thời điểm, trong khi semaphore có thể cho phép nhiều luồng truy cập.
B. Semaphore chỉ có thể được sử dụng bởi một luồng tại một thời điểm, trong khi mutex có thể cho phép nhiều luồng truy cập.
C. Mutex được sử dụng để đồng bộ hóa các luồng, semaphore được sử dụng để đồng bộ hóa các tiến trình.
D. Mutex và semaphore giống nhau về chức năng.
86. ‘Page fault’ (lỗi trang) xảy ra khi nào?
A. Khi CPU bị lỗi.
B. Khi một tiến trình cố gắng truy cập vào một trang không có trong bộ nhớ vật lý.
C. Khi bộ nhớ bị đầy.
D. Khi có lỗi trong chương trình.
87. Trong lập lịch, ‘thời gian chờ’ (waiting time) của một tiến trình được định nghĩa là gì?
A. Thời gian CPU dành để thực thi tiến trình.
B. Thời gian tiến trình ở trong hàng đợi sẵn sàng và chờ đợi CPU.
C. Tổng thời gian từ khi tiến trình được tạo đến khi hoàn thành.
D. Thời gian tiến trình bị chặn bởi các thao tác I/O.
88. ‘DMA’ (Direct Memory Access) trong hệ điều hành có chức năng gì?
A. Quản lý các ngắt.
B. Cho phép thiết bị I/O truy cập trực tiếp vào bộ nhớ mà không cần sự can thiệp của CPU.
C. Lập lịch các tiến trình.
D. Quản lý các tệp tin.
89. Trong ngữ cảnh của hệ điều hành, ‘đồng bộ hóa’ (synchronization) dùng để làm gì?
A. Đồng bộ hóa thời gian giữa các tiến trình.
B. Đảm bảo sự an toàn và tính nhất quán của dữ liệu khi nhiều tiến trình truy cập vào tài nguyên dùng chung.
C. Tăng tốc độ xử lý của các tiến trình.
D. Quản lý việc phân bổ bộ nhớ.
90. Bộ lập lịch (scheduler) trong hệ điều hành có chức năng gì?
A. Quản lý bộ nhớ.
B. Phân bổ thời gian CPU cho các tiến trình.
C. Kiểm soát truy cập vào các thiết bị ngoại vi.
D. Xử lý các ngắt.
91. Trong ngữ cảnh của quản lý bộ nhớ, `segmentation` (phân đoạn) khác với `paging` (phân trang) như thế nào?
A. Phân đoạn chia bộ nhớ thành các trang có kích thước cố định, trong khi phân trang chia thành các đoạn có kích thước thay đổi.
B. Phân đoạn chia bộ nhớ thành các đoạn có ý nghĩa logic (ví dụ: mã, dữ liệu, stack), trong khi phân trang chia thành các trang có kích thước cố định.
C. Phân đoạn chỉ được sử dụng trong bộ nhớ ảo, trong khi phân trang được sử dụng trong bộ nhớ vật lý.
D. Phân đoạn và phân trang là cùng một kỹ thuật.
92. Trong hệ điều hành, khái niệm ‘tiến trình’ (process) được định nghĩa như thế nào?
A. Một đơn vị lưu trữ dữ liệu trên đĩa cứng.
B. Một chương trình đang được thực thi, bao gồm mã lệnh, dữ liệu, và các tài nguyên hệ thống.
C. Một luồng thực thi độc lập trong một chương trình.
D. Một thành phần phần cứng của máy tính.
93. Trong ngữ cảnh của lập trình hệ thống, ‘spinlock’ (vòng lặp đợi) được sử dụng để làm gì?
A. Để ngăn chặn các tiến trình truy cập vào vùng tới hạn.
B. Để làm cho các tiến trình chờ đợi vô thời hạn.
C. Để đồng bộ hóa các luồng bằng cách liên tục kiểm tra một biến cho đến khi điều kiện cho phép được đáp ứng.
D. Để giảm thiểu việc sử dụng bộ nhớ.
94. Đâu là vai trò của `paging` (phân trang) trong quản lý bộ nhớ ảo?
A. Để quản lý các tệp trên đĩa cứng.
B. Để chia bộ nhớ ảo và bộ nhớ vật lý thành các đơn vị nhỏ hơn (trang) để quản lý dễ dàng hơn.
C. Để đồng bộ hóa các tiến trình.
D. Để tăng tốc độ CPU.
95. `DMA` (Direct Memory Access – Truy cập bộ nhớ trực tiếp) được sử dụng để làm gì?
A. Để tăng tốc độ CPU.
B. Để cho phép các thiết bị ngoại vi truy cập trực tiếp vào bộ nhớ chính mà không cần sự can thiệp của CPU.
C. Để quản lý các ngắt.
D. Để đồng bộ hóa các tiến trình.
96. Trong ngữ cảnh của lập trình đa luồng, khái niệm ‘critical section’ (vùng tới hạn) được dùng để chỉ điều gì?
A. Một phần mã chỉ được thực thi bởi một luồng tại một thời điểm.
B. Một phần mã không cần truy cập tài nguyên chia sẻ.
C. Một phần mã luôn chạy song song với các luồng khác.
D. Một phần mã dành riêng cho việc xử lý lỗi.
97. Sự khác biệt chính giữa tiến trình và luồng (thread) là gì?
A. Tiến trình có thể chia sẻ bộ nhớ, trong khi luồng thì không.
B. Luồng là một tiến trình nhẹ, chia sẻ tài nguyên với các luồng khác trong cùng một tiến trình.
C. Tiến trình thực hiện các tác vụ song song, trong khi luồng thực hiện tuần tự.
D. Luồng có thể chứa nhiều tiến trình.
98. Trong các cơ chế đồng bộ hóa, `semaphore` (cờ hiệu) khác `mutex` (độc quyền) như thế nào?
A. Semaphore chỉ có thể được sử dụng trong lập trình đa luồng.
B. Mutex chỉ có thể được sử dụng để đồng bộ hóa các tài nguyên duy nhất, trong khi semaphore có thể quản lý nhiều tài nguyên.
C. Mutex không thể sử dụng bộ đếm, trong khi semaphore có thể.
D. Semaphore thường được sử dụng để bảo vệ các vùng tới hạn, trong khi mutex thì không.
99. Mục đích của việc sử dụng ‘spooling’ trong hệ điều hành là gì?
A. Để tăng tốc độ xử lý của CPU.
B. Để cho phép nhiều tiến trình sử dụng cùng một thiết bị ngoại vi tại một thời điểm.
C. Để giảm thiểu việc sử dụng bộ nhớ.
D. Để bảo vệ dữ liệu trên đĩa cứng.
100. Mục đích chính của việc sử dụng các trạng thái tiến trình (new, ready, running, waiting, terminated) là gì?
A. Để quản lý bộ nhớ hiệu quả hơn.
B. Để cho phép người dùng tương tác với tiến trình.
C. Để theo dõi và quản lý sự thực thi của các tiến trình trong hệ thống.
D. Để tăng tốc độ xử lý của CPU.
101. `Thrashing` (lộn xộn) trong hệ điều hành xảy ra khi nào?
A. Khi CPU bị quá tải.
B. Khi hệ thống dành quá nhiều thời gian để chuyển đổi giữa các trang bộ nhớ ảo thay vì thực hiện công việc hữu ích.
C. Khi bộ nhớ vật lý đầy.
D. Khi một tiến trình bị deadlock.
102. Giải pháp nào sau đây là phương pháp phổ biến để giải quyết vấn đề ‘deadlock’ (tắc nghẽn)?
A. Sử dụng bộ nhớ ảo.
B. Ngăn chặn một trong các điều kiện cần thiết cho deadlock xảy ra, ví dụ: loại bỏ điều kiện “hold and wait”.
C. Tăng tốc độ của CPU.
D. Chia nhỏ các tiến trình thành các luồng.
103. `RAID` (Redundant Array of Independent Disks – Mảng dự phòng của các đĩa độc lập) được sử dụng để làm gì?
A. Để tăng tốc độ CPU.
B. Để tăng dung lượng bộ nhớ.
C. Để cải thiện hiệu suất và độ tin cậy của việc lưu trữ dữ liệu.
D. Để quản lý các ngắt.
104. Trong hệ điều hành, vai trò của `kernel` (nhân) là gì?
A. Cung cấp giao diện người dùng đồ họa.
B. Quản lý tài nguyên phần cứng và cung cấp các dịch vụ cho các ứng dụng.
C. Chạy các ứng dụng người dùng.
D. Lưu trữ dữ liệu trên đĩa cứng.
105. Trong hệ điều hành, `real-time system` (hệ thống thời gian thực) được thiết kế để làm gì?
A. Để chạy các ứng dụng đồ họa.
B. Để đáp ứng các yêu cầu trong một khoảng thời gian cụ thể.
C. Để quản lý các tệp và thư mục.
D. Để tăng tốc độ CPU.
106. Trong hệ điều hành, `virtual memory` (bộ nhớ ảo) được sử dụng để làm gì?
A. Để tăng dung lượng bộ nhớ vật lý.
B. Để cho phép nhiều chương trình chạy đồng thời hơn bộ nhớ vật lý có thể chứa.
C. Để lưu trữ dữ liệu trên đĩa cứng.
D. Để tăng tốc độ truy cập bộ nhớ.
107. Trong hệ thống tệp, mục đích của `inode` (nút chỉ mục) là gì?
A. Để lưu trữ tên và nội dung của các tệp.
B. Để lưu trữ siêu dữ liệu (metadata) về một tệp, chẳng hạn như quyền truy cập, kích thước và vị trí trên đĩa.
C. Để lưu trữ dữ liệu thực tế của tệp.
D. Để quản lý bộ nhớ.
108. `Batch processing` (xử lý theo lô) khác với `interactive processing` (xử lý tương tác) như thế nào?
A. Batch processing yêu cầu sự tương tác của người dùng, còn interactive processing thì không.
B. Interactive processing xử lý từng tác vụ ngay lập tức, trong khi batch processing xử lý một nhóm các tác vụ cùng một lúc.
C. Batch processing sử dụng CPU hiệu quả hơn interactive processing.
D. Interactive processing chỉ sử dụng trong các hệ thống thời gian thực.
109. Trong hệ điều hành, ‘interrupt’ (ngắt) là gì?
A. Một lỗi phần mềm.
B. Một tín hiệu từ phần cứng hoặc phần mềm báo hiệu một sự kiện cần xử lý ngay lập tức.
C. Một tiến trình đang chạy trong chế độ người dùng.
D. Một phần của bộ nhớ được sử dụng để lưu trữ dữ liệu tạm thời.
110. Điều gì xảy ra khi một tiến trình thực hiện một lời gọi hệ thống (system call)?
A. Tiến trình tiếp tục chạy trong chế độ người dùng (user mode).
B. CPU chuyển sang chế độ nhân (kernel mode) để thực thi yêu cầu của tiến trình.
C. Tiến trình bị tạm dừng và chờ đợi cho đến khi hệ thống hoàn thành tác vụ.
D. Tiến trình tự động kết thúc.
111. Trong hệ thống tệp, ‘directory’ (thư mục) được sử dụng để làm gì?
A. Lưu trữ dữ liệu của các tệp.
B. Tổ chức và quản lý các tệp và thư mục khác theo cấu trúc phân cấp.
C. Lưu trữ siêu dữ liệu về các tệp.
D. Quản lý bộ nhớ.
112. Trong lập trình hệ thống, mục đích của các cơ chế đồng bộ hóa (synchronization) như mutex và semaphore là gì?
A. Để tăng tốc độ thực thi của các tiến trình.
B. Để đảm bảo tính nhất quán dữ liệu khi nhiều luồng truy cập vào tài nguyên dùng chung.
C. Để giảm thiểu việc sử dụng bộ nhớ.
D. Để tăng tính bảo mật của hệ thống.
113. Sự khác biệt chính giữa hệ thống tệp `FAT32` và `NTFS` là gì?
A. FAT32 chỉ hỗ trợ các tệp có kích thước nhỏ, trong khi NTFS hỗ trợ các tệp lớn hơn và cung cấp các tính năng bảo mật nâng cao.
B. FAT32 là một hệ thống tệp chỉ dành cho hệ điều hành Linux, trong khi NTFS dành cho Windows.
C. FAT32 sử dụng các nút chỉ mục (inodes), trong khi NTFS thì không.
D. NTFS có tốc độ truy cập dữ liệu chậm hơn FAT32.
114. Ưu điểm chính của lập trình đa luồng (multithreading) là gì?
A. Giảm thiểu sự phức tạp của mã.
B. Tăng cường khả năng sử dụng tài nguyên CPU.
C. Giảm thiểu nhu cầu về bộ nhớ.
D. Tăng tính bảo mật của hệ thống.
115. Trong hệ điều hành, `context switching` (chuyển đổi ngữ cảnh) là gì?
A. Quá trình chuyển đổi giữa các trạng thái của một tiến trình.
B. Quá trình lưu và khôi phục trạng thái của CPU để chuyển từ tiến trình này sang tiến trình khác.
C. Quá trình cấp phát bộ nhớ cho một tiến trình.
D. Quá trình xóa bỏ một tiến trình.
116. Thuật toán lập lịch nào sau đây có thể dẫn đến hiện tượng ‘starvation’ (đói)?
A. Round Robin.
B. FCFS (First-Come, First-Served).
C. SJF (Shortest Job First).
D. Priority Scheduling (Lập lịch theo độ ưu tiên).
117. Trong hệ thống tệp, ‘access control list’ (ACL – Danh sách kiểm soát truy cập) được sử dụng để làm gì?
A. Để lưu trữ dữ liệu của các tệp.
B. Để xác định người dùng hoặc nhóm người dùng nào có quyền truy cập vào một tệp hoặc thư mục cụ thể.
C. Để quản lý bộ nhớ.
D. Để tăng tốc độ truy cập tệp.
118. Đâu là vai trò của bộ lập lịch (scheduler) trong hệ điều hành?
A. Quản lý bộ nhớ.
B. Phân bổ tài nguyên CPU cho các tiến trình.
C. Xử lý các ngắt (interrupt).
D. Quản lý các tập tin.
119. Điểm khác biệt chính giữa các thuật toán lập lịch `preemptive` (tiên phát) và `non-preemptive` (không tiên phát) là gì?
A. Thuật toán preemptive cho phép một tiến trình chiếm quyền điều khiển CPU của một tiến trình khác, trong khi non-preemptive thì không.
B. Thuật toán non-preemptive luôn ưu tiên các tiến trình có thời gian thực thi ngắn hơn.
C. Thuật toán preemptive chỉ được sử dụng trong các hệ thống thời gian thực.
D. Thuật toán non-preemptive chỉ có thể lập lịch một tiến trình tại một thời điểm.
120. Trong ngữ cảnh của hệ điều hành, `file system` (hệ thống tệp) là gì?
A. Một phần cứng của máy tính.
B. Một chương trình được sử dụng để chỉnh sửa tệp.
C. Phương pháp hệ điều hành để quản lý và tổ chức các tệp trên bộ nhớ lưu trữ.
D. Một loại bộ nhớ.
121. Trong hệ điều hành, ‘paging’ (phân trang) là gì?
A. Quá trình chuyển đổi giữa các tiến trình.
B. Kỹ thuật chia bộ nhớ thành các khối cố định (trang) để quản lý bộ nhớ ảo.
C. Quá trình tạo và hủy các luồng.
D. Một thuật toán lập lịch CPU.
122. Hiện tượng ‘deadlock’ (tắc nghẽn) trong hệ điều hành xảy ra khi nào?
A. Khi một tiến trình chờ đợi một tài nguyên mà nó không cần.
B. Khi hai hoặc nhiều tiến trình bị chặn vĩnh viễn, mỗi tiến trình đang chờ đợi một tài nguyên mà tiến trình khác đang giữ.
C. Khi hệ thống hết bộ nhớ.
D. Khi một tiến trình bị lỗi và dừng hoạt động.
123. Trong hệ thống tệp, ‘RAID’ (Redundant Array of Independent Disks) được sử dụng để làm gì?
A. Tăng tốc độ truy cập dữ liệu.
B. Cung cấp khả năng chịu lỗi và tăng cường hiệu suất lưu trữ bằng cách sử dụng nhiều đĩa cứng.
C. Quản lý các tiến trình.
D. Lưu trữ dữ liệu một cách an toàn.
124. Trong lập trình đa luồng, ‘race condition’ (tình trạng đua tranh) xảy ra khi nào?
A. Khi một luồng bị chặn.
B. Khi nhiều luồng truy cập và sửa đổi cùng một dữ liệu dùng chung mà không có sự đồng bộ hóa thích hợp.
C. Khi một luồng tạo ra quá nhiều luồng con.
D. Khi một luồng hoàn thành công việc của nó.
125. Nguyên nhân nào sau đây gây ra hiện tượng ‘ngăn xếp’ (stack) trong quản lý bộ nhớ?
A. Sự xung đột giữa các tiến trình khi truy cập vào cùng một vùng bộ nhớ.
B. Việc sử dụng quá nhiều bộ nhớ vật lý.
C. Lỗi lập trình, chẳng hạn như đệ quy vô hạn hoặc tràn bộ đệm.
D. Hệ điều hành cấp phát bộ nhớ không hiệu quả.
126. Thuật toán lập lịch nào sau đây được coi là ‘không công bằng’ (unfair) nhất?
A. Round Robin.
B. Shortest Job First (SJF).
C. Priority Scheduling.
D. First-Come, First-Served (FCFS).
127. Trong hệ điều hành, ‘spooling’ là gì?
A. Quá trình phân bổ bộ nhớ cho các tiến trình.
B. Quá trình đưa dữ liệu vào một bộ đệm để chờ xử lý sau.
C. Quá trình đồng bộ hóa các tiến trình.
D. Quá trình tạo ra các bản sao của dữ liệu.
128. Trong hệ thống đa nhiệm, ‘tiền lệ’ (preemption) có nghĩa là gì?
A. Một tiến trình tự nguyện từ bỏ quyền sử dụng CPU.
B. Hệ điều hành tạm dừng một tiến trình đang chạy và chuyển CPU cho một tiến trình khác.
C. Một tiến trình yêu cầu thêm bộ nhớ.
D. Một tiến trình hoàn thành công việc của nó.
129. Mục đích chính của ‘system calls’ (gọi hệ thống) là gì?
A. Để cho phép các ứng dụng truy cập trực tiếp vào phần cứng.
B. Để cung cấp một giao diện cho các ứng dụng để yêu cầu các dịch vụ từ kernel.
C. Để tăng tốc độ thực thi của các ứng dụng.
D. Để quản lý bộ nhớ.
130. Trong ngữ cảnh của quản lý bộ nhớ, ‘segmentation’ (phân đoạn) là gì?
A. Một kỹ thuật phân chia bộ nhớ thành các khối cố định (trang).
B. Một kỹ thuật chia bộ nhớ thành các phân đoạn logic, mỗi phân đoạn tương ứng với một đơn vị logic của chương trình.
C. Một thuật toán lập lịch CPU.
D. Quá trình chuyển đổi giữa các tiến trình.
131. Trong hệ thống tệp, ‘hard link’ (liên kết cứng) khác với ‘symbolic link’ (liên kết tượng trưng) như thế nào?
A. Hard link có thể liên kết đến các tệp trên các hệ thống tệp khác nhau, trong khi symbolic link thì không.
B. Hard link tạo ra một bản sao của tệp, trong khi symbolic link chỉ là một tham chiếu đến tệp gốc.
C. Hard link chỉ có thể liên kết đến các thư mục, trong khi symbolic link có thể liên kết đến các tệp và thư mục.
D. Hard link và symbolic link khác nhau ở cách chúng trỏ đến dữ liệu của tệp, hard link trỏ trực tiếp đến dữ liệu, còn symbolic link trỏ đến đường dẫn của tệp.
132. Mục đích của việc sử dụng ‘buffer’ (bộ đệm) trong hệ thống là gì?
A. Để tăng tốc độ xử lý của CPU.
B. Để đồng bộ hóa tốc độ giữa các thiết bị khác nhau, giảm thiểu sự chậm trễ và cải thiện hiệu suất.
C. Để lưu trữ dữ liệu vĩnh viễn.
D. Để quản lý các tiến trình.
133. ‘Monitors’ (giám sát) trong ngữ cảnh của đồng bộ hóa là gì?
A. Một loại phần cứng để hiển thị thông tin.
B. Một cấu trúc đồng bộ hóa cho phép các luồng truy cập độc quyền vào các tài nguyên và cung cấp cơ chế chờ và thông báo.
C. Một công cụ để theo dõi hiệu suất của hệ thống.
D. Một loại tiến trình đặc biệt.
134. Giải pháp nào sau đây không phải là một phương pháp để tránh hoặc giải quyết tình trạng ‘deadlock’?
A. Phát hiện và khôi phục deadlock.
B. Ngăn chặn một trong các điều kiện cần thiết để xảy ra deadlock.
C. Tạo ra nhiều tài nguyên hơn.
D. Tránh deadlock bằng cách thiết kế hệ thống cẩn thận.
135. Trong ngữ cảnh của hệ thống tệp, ‘inode’ là gì?
A. Một loại tệp đặc biệt.
B. Một cấu trúc dữ liệu chứa các siêu dữ liệu về một tệp, chẳng hạn như quyền truy cập, kích thước và vị trí trên đĩa.
C. Một chương trình để quản lý các tệp.
D. Một thư mục chứa các tệp.
136. Hệ điều hành sử dụng cơ chế nào để bảo vệ các tiến trình khỏi việc truy cập trái phép vào bộ nhớ của nhau?
A. Sử dụng các thanh ghi CPU.
B. Quản lý bộ nhớ bằng cách sử dụng các bảng trang hoặc phân đoạn.
C. Sử dụng mật khẩu cho mỗi tiến trình.
D. Kiểm tra lỗi bộ nhớ thường xuyên.
137. Mục đích chính của việc sử dụng ‘bộ nhớ ảo’ (virtual memory) là gì?
A. Tăng tốc độ truy cập bộ nhớ.
B. Cung cấp cho các tiến trình không gian địa chỉ lớn hơn bộ nhớ vật lý.
C. Giảm thiểu nhu cầu sử dụng bộ nhớ vật lý.
D. Quản lý bộ nhớ hiệu quả hơn cho các tiến trình nhỏ.
138. Trong hệ thống tệp, ‘directory’ (thư mục) có vai trò gì?
A. Chứa dữ liệu của các tệp.
B. Tổ chức và quản lý các tệp bằng cách nhóm chúng lại và cung cấp thông tin về vị trí của chúng.
C. Lưu trữ thông tin về các thiết bị phần cứng.
D. Thực hiện các hoạt động tính toán.
139. Trong hệ điều hành, ‘interrupt’ (gián đoạn) là gì?
A. Một lỗi phần mềm.
B. Một tín hiệu từ phần cứng hoặc phần mềm thông báo cho CPU về một sự kiện cần xử lý.
C. Một lệnh để dừng chương trình.
D. Một loại bộ nhớ đặc biệt.
140. ‘Thrashing’ (nghẽn bộ nhớ) xảy ra khi nào trong hệ thống bộ nhớ ảo?
A. Khi bộ nhớ vật lý bị đầy và hệ thống phải liên tục trao đổi các trang giữa bộ nhớ và đĩa.
B. Khi có quá nhiều tiến trình đang chạy.
C. Khi CPU bị quá tải.
D. Khi một tiến trình cố gắng truy cập vào bộ nhớ không hợp lệ.
141. Trong hệ điều hành, vai trò của ‘device drivers’ (trình điều khiển thiết bị) là gì?
A. Quản lý việc tạo và hủy các tiến trình.
B. Cung cấp một giao diện để các ứng dụng giao tiếp với các thiết bị phần cứng.
C. Thực hiện các phép tính toán học phức tạp.
D. Quản lý bộ nhớ ảo.
142. Sự khác biệt chính giữa ‘tiến trình’ và ‘luồng’ (thread) là gì?
A. Luồng không chia sẻ tài nguyên với các luồng khác, trong khi tiến trình chia sẻ.
B. Tiến trình nhẹ hơn luồng và dễ tạo ra hơn.
C. Luồng chia sẻ không gian địa chỉ và tài nguyên của tiến trình, trong khi tiến trình là một đơn vị độc lập.
D. Luồng là một tiến trình thu nhỏ.
143. Trong hệ điều hành, khái niệm ‘tiến trình’ (process) được định nghĩa như thế nào?
A. Một đơn vị cơ bản của CPU, thực hiện các lệnh liên tiếp.
B. Một chương trình đang được thực thi, bao gồm mã lệnh, dữ liệu, và tài nguyên.
C. Một tập hợp các lệnh được lưu trữ trên đĩa cứng.
D. Một luồng thực thi độc lập trong một chương trình.
144. Trong ngữ cảnh của lập trình đa luồng, ‘đồng bộ hóa’ (synchronization) được sử dụng để làm gì?
A. Tăng tốc độ thực thi của các luồng.
B. Ngăn chặn xung đột dữ liệu khi nhiều luồng truy cập vào các tài nguyên dùng chung.
C. Cho phép các luồng giao tiếp với nhau.
D. Quản lý việc tạo và hủy các luồng.
145. Trong hệ điều hành, ‘interrupt handler’ (trình xử lý ngắt) là gì?
A. Một chương trình chạy trong user mode.
B. Một đoạn mã được thực thi để phản ứng với một gián đoạn.
C. Một loại bộ nhớ đặc biệt.
D. Một công cụ để quản lý các tiến trình.
146. Trong hệ điều hành, ‘kernel mode’ (chế độ nhân) và ‘user mode’ (chế độ người dùng) khác nhau như thế nào?
A. Kernel mode có quyền truy cập vào tất cả tài nguyên hệ thống, trong khi user mode có các quyền bị giới hạn.
B. User mode có quyền truy cập vào tất cả tài nguyên hệ thống, trong khi kernel mode có các quyền bị giới hạn.
C. Kernel mode chỉ được sử dụng cho các ứng dụng đồ họa.
D. User mode được sử dụng để quản lý phần cứng.
147. Trong hệ điều hành, ‘lập lịch CPU’ (CPU scheduling) là gì?
A. Quá trình cấp phát bộ nhớ cho các tiến trình.
B. Quá trình quản lý và phân phối thời gian CPU cho các tiến trình.
C. Quá trình tạo và hủy các tiến trình.
D. Quá trình đồng bộ hóa các tiến trình.
148. Trong kiến trúc hệ thống, ‘kernel’ (nhân hệ điều hành) là gì?
A. Một phần mềm ứng dụng chạy trên hệ điều hành.
B. Phần lõi của hệ điều hành, chịu trách nhiệm quản lý tài nguyên và giao tiếp với phần cứng.
C. Giao diện người dùng của hệ điều hành.
D. Một trình biên dịch mã nguồn.
149. ‘DMA’ (Direct Memory Access – Truy cập bộ nhớ trực tiếp) được sử dụng để làm gì?
A. Giúp CPU truy cập trực tiếp vào bộ nhớ.
B. Cho phép các thiết bị ngoại vi truy cập bộ nhớ mà không cần sự can thiệp của CPU.
C. Tăng tốc độ truyền dữ liệu giữa CPU và bộ nhớ.
D. Quản lý các tiến trình đang chạy.
150. ‘Context switching’ (chuyển đổi ngữ cảnh) là gì?
A. Quá trình chuyển đổi giữa các chế độ kernel và user.
B. Quá trình lưu trữ trạng thái của một tiến trình và tải trạng thái của một tiến trình khác để CPU có thể thực hiện các tiến trình khác nhau.
C. Quá trình chuyển đổi giữa các luồng trong một tiến trình.
D. Quá trình quản lý bộ nhớ ảo.