JavaScript is required

Một hệ thống sử dụng kỹ thuật phân trang, với Page table được lưu trữ trong bộ nhớ chính. Thời gian cho một lần truy xuất bộ nhớ chính là 200 nanoseconds. Hỏi mất bao nhiêu thời gian cho một thao tác truy xuất bộ nhớ trong hệ thống này, nếu xảy ra lỗi trang (page fault)?

A.

200 ns.

B.

400 ns.

C.

600 ns.

D.

800 ns.

Trả lời:

Đáp án đúng: C


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:

  1. Tìm trang trên đĩa cứng.
  2. Đọc trang từ đĩa vào bộ nhớ chính.
  3. Cập nhật bảng trang (page table).
  4. 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:

  1. Truy xuất Page table để biết trang không hợp lệ (lỗi trang).
  2. 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âu hỏi liên quan