Trắc nghiệm Hệ điều hành Bài 25: Bộ nhớ ảo là một trong những đề thi thuộc Chương 3: Quản lý Bộ nhớ trong học phần Hệ điều hành chuyên ngành Công Nghệ Thông Tin cấp độ Đại học. Đây là phần mở đầu quan trọng giúp sinh viên hình thành cái nhìn tổng quan về vai trò, chức năng và tầm quan trọng của hệ điều hành trong một hệ thống máy tính hiện đại.
Trong bài học này, người học cần nắm được các nội dung cốt lõi như: định nghĩa hệ điều hành, chức năng chính của hệ điều hành (quản lý tiến trình, bộ nhớ, thiết bị và hệ thống tệp), phân loại hệ điều hành, cũng như mối quan hệ giữa phần cứng, phần mềm và người dùng thông qua hệ điều hành. Việc hiểu rõ các kiến thức nền tảng này sẽ tạo tiền đề vững chắc cho sinh viên khi tiếp cận các khái niệm chuyên sâu hơn như quản lý tiến trình, xử lý đồng thời, và bảo mật hệ thống.
Hãy cùng Dethitracnghiem.vn tìm hiểu về đề thi này và tham gia làm kiểm tra ngay lập tức!
Trắc nghiệm Hệ điều hành Bài 25: Bộ nhớ ảo
Câu 1.Bộ nhớ ảo (Virtual Memory) là kỹ thuật quản lý bộ nhớ cho phép điều gì?
A. Tăng tốc độ xử lý của CPU.
B. Chỉ chạy một chương trình duy nhất tại một thời điểm.
C. Giảm dung lượng bộ nhớ RAM cần thiết cho hệ thống.
D. Cho phép một tiến trình thực thi ngay cả khi toàn bộ không gian địa chỉ logic của nó không nằm hoàn toàn trong bộ nhớ vật lý.
Câu 2.Ưu điểm chính của Bộ nhớ ảo đối với người lập trình là gì?
A. Họ có thể truy cập trực tiếp vào địa chỉ vật lý.
B. Giảm thiểu việc sử dụng CPU.
C. Đơn giản hóa việc đồng bộ hóa.
D. Họ không cần lo lắng về giới hạn của bộ nhớ vật lý và có thể viết chương trình cho không gian địa chỉ logic lớn hơn RAM.
Câu 3.Bộ nhớ ảo thường được hiện thực chủ yếu bằng kỹ thuật quản lý bộ nhớ nào?
A. Cấp phát liên tục.
B. Phân đoạn (Segmentation).
C. Compaction.
D. Phân trang theo yêu cầu (Demand Paging).
Câu 4.Khái niệm “Demand Paging” (Phân trang theo yêu cầu) có nghĩa là gì?
A. Toàn bộ chương trình được load vào bộ nhớ trước khi chạy.
B. Chỉ phần mã nguồn của chương trình được load.
C. Các trang (pages) của tiến trình chỉ được load vào bộ nhớ vật lý khi chúng thực sự cần thiết (khi truy cập lần đầu).
D. Các trang được load vào bộ nhớ theo thứ tự FCFS.
Câu 5.Khi một tiến trình cố gắng truy cập một trang (page) mà trang đó hiện không có mặt trong bộ nhớ vật lý, sự kiện nào xảy ra?
A. Segmentation Fault.
B. Cache Miss.
C. Interrupt.
D. Page Fault (Lỗi trang).
Câu 6.Khi xảy ra Page Fault, Hệ điều hành sẽ làm gì?
A. Chấm dứt tiến trình ngay lập tức.
B. Bỏ qua yêu cầu truy cập bộ nhớ đó.
C. Thông báo lỗi cho người dùng.
D. Xử lý trap: xác định trang cần thiết, tìm một khung trang trống trong bộ nhớ vật lý, nạp trang từ đĩa vào khung trang đó, cập nhật Page Table, và khởi động lại lệnh gây ra Page Fault.
Câu 7.Thông tin nào trong Page Table entry cho biết một trang có đang nằm trong bộ nhớ vật lý hay không?
A. Dirty bit (Modified bit).
B. Protection bits (Read/Write/Execute).
C. Reference bit (Accessed bit).
D. Valid/Invalid bit (hoặc Present bit).
Câu 8.Khi một trang bị nạp vào bộ nhớ vật lý từ đĩa, bit Valid/Invalid trong Page Table entry của trang đó sẽ được cập nhật thành giá trị nào?
A. Invalid.
B. Valid.
C. Dirty.
D. Reference.
Câu 9.Khái niệm “Swapping” (Hoán đổi) trong Bộ nhớ ảo đề cập đến điều gì?
A. Trao đổi dữ liệu giữa các thanh ghi CPU.
B. Di chuyển toàn bộ tiến trình giữa bộ nhớ và đĩa.
C. Di chuyển các trang (pages) giữa bộ nhớ vật lý (RAM) và không gian swap trên đĩa cứng.
D. Chuyển đổi giữa địa chỉ logic và vật lý.
Câu 10.Vùng nào trên đĩa cứng được sử dụng để lưu trữ các trang (pages) bị đẩy ra khỏi bộ nhớ vật lý trong quá trình swapping?
A. Vùng mã nguồn (Code Area).
B. Vùng dữ liệu (Data Area).
C. Vùng Swap (Swap Space/Swap File).
D. Vùng hệ thống tệp (File System Area).
Câu 11.Khi bộ nhớ vật lý đã đầy và cần nạp một trang mới từ đĩa do Page Fault, Hệ điều hành phải sử dụng thuật toán nào?
A. Thuật toán lập lịch CPU.
B. Thuật toán cấp phát bộ nhớ liên tục.
C. Thuật toán thay thế trang (Page Replacement Algorithm).
D. Thuật toán phát hiện Deadlock.
Câu 12.Mục đích của Thuật toán thay thế trang là gì?
A. Chọn trang cần nạp từ đĩa.
B. Chọn khung trang trống.
C. Cập nhật Bảng trang.
D. Chọn trang (frame) trong bộ nhớ vật lý để loại bỏ (đẩy ra đĩa hoặc hủy) nhằm giải phóng chỗ cho trang mới cần nạp.
Câu 13.Thuật toán thay thế trang nào đơn giản nhất: loại bỏ trang đã được nạp vào bộ nhớ vật lý LÂU NHẤT?
A. FIFO (First-In, First-Out).
B. Optimal.
C. LRU (Least Recently Used).
D. MFU (Most Frequently Used).
Câu 14.Thuật toán thay thế trang nào được coi là tối ưu (cho số lượng Page Fault ít nhất), nhưng không thể hiện thực trong thực tế vì cần biết TƯƠNG LAI?
A. FIFO.
B. Optimal.
C. LRU.
D. Clock.
Câu 15.Thuật toán thay thế trang nào cố gắng xấp xỉ hoạt động của Optimal bằng cách loại bỏ trang đã KHÔNG được sử dụng trong khoảng thời gian DÀI NHẤT trong quá khứ gần đây?
A. FIFO.
B. Optimal.
C. LRU (Least Recently Used).
D. LFU (Least Frequently Used).
Câu 16.Để hiện thực thuật toán LRU, Hệ điều hành cần lưu trữ thông tin gì?
A. Thời điểm mỗi trang được nạp vào bộ nhớ.
B. Số lần mỗi trang được truy cập.
C. Kích thước của mỗi trang.
D. Thời điểm lần cuối cùng mỗi trang được truy cập.
Câu 17.Thuật toán thay thế trang nào có thể gặp phải “Belady’s Anomaly” (số Page Fault tăng khi số lượng khung trang tăng)?
A. FIFO.
B. Optimal.
C. LRU.
D. Clock.
Câu 18.Bit “Dirty bit” (hoặc Modified bit) trong Page Table entry được sử dụng để làm gì?
A. Đánh dấu trang không hợp lệ.
B. Đánh dấu trang được chia sẻ.
C. Đánh dấu trang đã được truy cập.
D. Đánh dấu trang đã bị sửa đổi nội dung trong bộ nhớ; nếu bit này được đặt, trang phải được ghi trở lại đĩa khi bị loại bỏ.
Câu 19.Hiện tượng gì xảy ra khi hệ thống dành phần lớn thời gian để hoán đổi trang (swapping) thay vì thực hiện công việc hữu ích cho các tiến trình?
A. Deadlock.
B. Starvation.
C. Context Switching.
D. Thrashing.
Câu 20.Thrashing xảy ra khi nào?
A. Khi có quá ít tiến trình chạy.
B. Khi bộ nhớ RAM quá lớn.
C. Khi các tiến trình không chia sẻ tài nguyên.
D. Khi số lượng khung trang (frames) cấp phát cho một tập hợp các tiến trình quá ít so với tổng nhu cầu bộ nhớ của chúng, dẫn đến Page Fault liên tục.
Câu 21.Mô hình “Working Set” (Tập làm việc) của một tiến trình là gì?
A. Toàn bộ không gian địa chỉ logic của tiến trình.
B. Tất cả các trang hiện có trong bộ nhớ vật lý.
C. Tập hợp các trang mà tiến trình đã truy cập từ khi bắt đầu.
D. Tập hợp các trang (pages) mà tiến trình đã sử dụng trong một cửa sổ thời gian gần đây (ví dụ: trong T lần truy cập bộ nhớ gần nhất).
Câu 22.Mục đích của việc sử dụng mô hình Working Set để quản lý bộ nhớ là gì?
A. Tăng tốc độ truy cập đĩa.
B. Giảm số lượng tiến trình trong hệ thống.
C. Cố gắng cấp phát đủ khung trang cho Working Set của mỗi tiến trình đang chạy để giảm thiểu Page Fault và tránh Thrashing.
D. Loại bỏ hoàn toàn nhu cầu swapping.
Câu 23.Nếu tổng kích thước Working Set của tất cả các tiến trình đang chạy vượt quá dung lượng bộ nhớ vật lý có sẵn, điều gì có khả năng xảy ra?
A. Hệ thống sẽ tự động tăng kích thước RAM.
B. Các tiến trình sẽ chạy nhanh hơn.
C. Các tiến trình sẽ chờ đợi lẫn nhau.
D. Thrashing có khả năng xảy ra do hệ thống không thể giữ đủ các trang cần thiết trong bộ nhớ.
Câu 24.Lợi ích của Bộ nhớ ảo trong việc chia sẻ thư viện (shared libraries) hoặc các vùng mã/dữ liệu dùng chung là gì?
A. Mỗi tiến trình nhận một bản sao riêng của mã/dữ liệu chia sẻ.
B. Chỉ một tiến trình được phép truy cập mã/dữ liệu chia sẻ tại một thời điểm.
C. Không thể chia sẻ mã/dữ liệu trong Bộ nhớ ảo.
D. Cho phép nhiều tiến trình cùng ánh xạ (map) cùng một bản sao vật lý của mã/dữ liệu chia sẻ vào không gian địa chỉ logic riêng của mỗi tiến trình.
Câu 25.Kỹ thuật “Copy-on-Write” (Sao chép khi ghi) thường được sử dụng khi nào trong Bộ nhớ ảo (ví dụ: khi `fork()` một tiến trình)?
A. Khi cần đọc dữ liệu từ một trang.
B. Khi trang bị loại bỏ khỏi bộ nhớ.
C. Khi trang được nạp từ đĩa.
D. Khi hai tiến trình chia sẻ cùng một trang (ví dụ: sau `fork`), trang đó chỉ được sao chép tạo bản sao riêng cho một tiến trình khi tiến trình đó cố gắng GHI (sửa đổi) nội dung của trang đó.