Khi hệ điều hành dùng kỹ thuật phân trang bộ nhớ, không gian địa chỉ vật lý của một tiến trình thường có dạng nào?
Đáp án đúng: B
Câu hỏi liên quan
* Phân mảnh ngoại (External Fragmentation): Xảy ra khi có đủ không gian bộ nhớ trống để đáp ứng yêu cầu của một tiến trình, nhưng không gian này không liên tục. Phân trang giúp giảm thiểu phân mảnh ngoại vì các trang có thể được lưu trữ không liên tục trong bộ nhớ vật lý.
* Phân mảnh nội (Internal Fragmentation): Xảy ra khi một tiến trình được cấp phát một lượng bộ nhớ lớn hơn mức nó thực sự cần. Phân trang có thể gây ra phân mảnh nội vì một tiến trình có thể không sử dụng hết trang cuối cùng mà nó được cấp phát.
* Kích thước bộ nhớ ảo: Phân trang là một phần quan trọng của việc triển khai bộ nhớ ảo. Nó cho phép các tiến trình có không gian địa chỉ lớn hơn bộ nhớ vật lý thực tế.
* Giảm kích thước bộ nhớ cho tiến trình: Phân trang không làm giảm kích thước bộ nhớ mà một tiến trình có thể sử dụng. Nó chỉ quản lý cách bộ nhớ đó được cấp phát và sử dụng.
Như vậy, đáp án đúng là A. Tránh được phân mảnh ngoại.
Trong hệ thống phân trang, khi xảy ra lỗi trang (page fault), hệ điều hành cần thực hiện các bước sau:
- Tìm trang trên đĩa cứng.
- Đọc trang từ đĩa vào bộ nhớ chính.
- Cập nhật bảng trang (page table).
- Tiếp tục thực hiện lệnh bị ngắt trước đó.
Tuy nhiên, câu hỏi chỉ tập trung vào thời gian truy xuất bộ nhớ khi page table được lưu trữ trong bộ nhớ chính và xảy ra lỗi trang. Do đó, ta cần xét đến các thao tác truy xuất bộ nhớ chính sau:
- Truy xuất Page table để biết trang không hợp lệ (lỗi trang).
- Sau khi trang được đưa vào bộ nhớ chính, cần truy xuất Page table để cập nhật thông tin.
Như vậy, có ít nhất hai lần truy xuất bộ nhớ chính (để đọc page table và sau đó cập nhật page table). Mỗi lần truy xuất mất 200ns, vậy tổng thời gian tối thiểu là 2 * 200ns = 400ns. Tuy nhiên, quá trình xử lý lỗi trang còn bao gồm việc đọc dữ liệu từ ổ cứng (thường rất chậm so với RAM) và các thao tác khác của hệ điều hành. Các thao tác này tốn rất nhiều thời gian, lớn hơn rất nhiều so với 400ns. Đề bài hỏi thời gian truy xuất bộ nhớ *trong hệ thống*, do đó ta cần tính đến thời gian đọc trang từ đĩa vào. Vì thời gian này không được đề cập cụ thể, ta chỉ có thể ước lượng thời gian tối thiểu dựa trên các truy xuất bộ nhớ chính.
Các đáp án khác (200ns, 600ns, 800ns) không phù hợp vì không phản ánh đúng số lần truy xuất bộ nhớ tối thiểu cần thiết khi có lỗi trang.
Các lựa chọn khác không phù hợp vì:
- Phương pháp Ngăn chặn (Preventing) tìm cách ngăn chặn các điều kiện cần thiết cho deadlock xảy ra ngay từ đầu.
- Phương pháp Phòng tránh (Avoiding) sử dụng các thuật toán như thuật toán của Banker để đảm bảo rằng hệ thống luôn ở trạng thái an toàn.
- Phương pháp Bỏ qua Deadlock (Ignoring) đơn giản là bỏ qua vấn đề và hy vọng rằng deadlock sẽ không xảy ra hoặc sẽ tự giải quyết (thường không phải là một giải pháp tốt).
Câu hỏi này kiểm tra kiến thức về cách hệ điều hành quản lý bộ nhớ ảo và bộ nhớ vật lý. Việc ánh xạ địa chỉ giữa bộ nhớ ảo và bộ nhớ vật lý trong quá trình thực thi chương trình là một chức năng quan trọng của bộ quản lý bộ nhớ (Memory Management Unit - MMU).
- A. Trình biên dịch: Trình biên dịch dịch mã nguồn thành mã máy, nhưng không tham gia vào việc ánh xạ địa chỉ trong thời gian chạy.
- B. Bộ nạp (Loader): Bộ nạp chịu trách nhiệm tải chương trình vào bộ nhớ khi chương trình bắt đầu thực thi, nhưng không thực hiện việc ánh xạ địa chỉ liên tục trong quá trình chạy.
- C. Bộ quản lý bộ nhớ MMU: MMU là phần cứng chuyên dụng thực hiện việc ánh xạ địa chỉ ảo sang địa chỉ vật lý. Nó sử dụng các bảng trang (page tables) để theo dõi sự ánh xạ này và đảm bảo rằng các tiến trình có thể truy cập bộ nhớ một cách an toàn và hiệu quả.
- D. Trình soạn thảo liên kết: Trình soạn thảo liên kết kết hợp các module đối tượng (object modules) thành một chương trình thực thi, nhưng không liên quan đến việc ánh xạ địa chỉ trong thời gian chạy.
Do đó, đáp án đúng là C. Bộ quản lý bộ nhớ MMU.
* Static linking (Liên kết tĩnh): Là quá trình kết hợp tất cả các thư viện cần thiết vào chương trình tại thời điểm biên dịch, không liên quan đến việc di chuyển tiến trình giữa bộ nhớ chính và ổ cứng.
* Dynamic linking (Liên kết động): Là quá trình liên kết các thư viện vào chương trình trong thời gian chạy, cũng không liên quan đến việc di chuyển tiến trình giữa bộ nhớ chính và ổ cứng.
* Overlay: Là một kỹ thuật quản lý bộ nhớ cũ, trong đó chỉ một phần của chương trình được giữ trong bộ nhớ tại một thời điểm. Tuy nhiên, nó không liên quan đến việc hệ điều hành tự động di chuyển các phần của tiến trình giữa bộ nhớ và ổ cứng để tối ưu hóa việc sử dụng bộ nhớ như Swapping.
* Swapping: Đúng như mô tả trong câu hỏi, đây là kỹ thuật mà hệ điều hành di chuyển các tiến trình hoặc các phần của tiến trình giữa bộ nhớ chính (RAM) và ổ cứng để giải phóng bộ nhớ cho các tiến trình khác. Khi một tiến trình bị "swap out", nó được lưu trữ trên ổ cứng, và khi cần thiết, nó được "swap in" trở lại bộ nhớ chính.
Do đó, đáp án chính xác là D. Swapping.

Bộ Đồ Án Tốt Nghiệp Ngành Trí Tuệ Nhân Tạo Và Học Máy

Bộ 120+ Đồ Án Tốt Nghiệp Ngành Hệ Thống Thông Tin

Bộ Đồ Án Tốt Nghiệp Ngành Mạng Máy Tính Và Truyền Thông

Bộ Luận Văn Tốt Nghiệp Ngành Kiểm Toán

Bộ 370+ Luận Văn Tốt Nghiệp Ngành Kế Toán Doanh Nghiệp

Bộ Luận Văn Tốt Nghiệp Ngành Quản Trị Thương Hiệu
ĐĂNG KÝ GÓI THI VIP
- Truy cập hơn 100K đề thi thử và chính thức các năm
- 2M câu hỏi theo các mức độ: Nhận biết – Thông hiểu – Vận dụng
- Học nhanh với 10K Flashcard Tiếng Anh theo bộ sách và chủ đề
- Đầy đủ: Mầm non – Phổ thông (K12) – Đại học – Người đi làm
- Tải toàn bộ tài liệu trên TaiLieu.VN
- Loại bỏ quảng cáo để tăng khả năng tập trung ôn luyện
- Tặng 15 ngày khi đăng ký gói 3 tháng, 30 ngày với gói 6 tháng và 60 ngày với gói 12 tháng.