-> MMU dò bảng trang, trang ứng với khung trang 0, truy cập nhớ đ/c 712 khung trang #0 b P2 truy cập đòa 13000:
MMU dò bảng trang P2 :
> MMU truy cập nhớ đòa chỉ: khung trang #400, offset 712
c P1 truy cập đ/c 16383 : MMU dò bảng trang P1 :
> MMU truy cập nhớ đòa chỉ: khung trang #0, offset 4095
d P3 truy cập đ/c 4096: MMU dò bảng trang, trang không hợp lệ, lỗi trang HĐH: Tìm trang trống: không còn, phải chọn trang nạn nhân Các trang: (P1.0 #300 P1.2#301 P2.0#300 P1.2#302) bò neo Chỉ trang #0 #400 Theo chiến lược LRU, HDH chọn khung trang #400 chu kỳ gần sủ dụng #0 Cấp cho trang P3 khung trang #400, nạp trang cập nhật bảng trang Frame Valid bit Frame Valid bit Frame Valid bit #300 V #300 V I I I #400 V #301 V #302 V I #0 V I Baûng trang P1 Bảng trang P2 Bảng trang P3 MMU dò bảng trang P1
-> MMU truy cập nhớ đ/c cua khung trang #400 g Đó chế chia sẻ nhớ Trang P1 trang P2 ánh xạ vào #300 Nếu P1 sửa trang 0, trang P2 bò sửa đổi ngược lại Câu 2: Một hệ thống máy tính giả lập sử dụng nhớ ảo áp dụng chế cấp phát trang toàn cục (nghĩa chọn trang nạn nhân, hệ thống chọn trang tiến trình khác) Hệ thống có khung trang, kích thước trang 200 byte Trong hệ thống có tiến trình vừa nạp vào (nghĩa hệ thống chưa cấp phát khung trang cho tiến trình) Quá trình truy xuất nhớ tiến trình P1.200, P1.399, P2.400, P1.2000, P2.199, P1.350, P2.499, P1.2000, P2.0 a Tính chuỗi truy xuất trang b Mơ tả trình cấp phát trang hệ thống biết chiến lược sử dụng chiến lược tối ưu (sử dụng thông tin tương lai) Cho biết số lỗi trang c Diễn giải chi tiết cách thức hệ điều hành & MMU thực hiên truy cập nhớ đến trường hợp truy xuất cuối P1.2000, P2.0 câu b, biết bảng trang P1 có 10 phần tử, bảng trang P2 có 11 phần tử Giải: a) Chuỗi truy xuất trang Chia cho địa cho 200 200 P1.1 b) #0 #1 #2 #3 399 P1.1 400 P2.2 2000 P1.10 199 P2.0 350 P1.1 499 P2.2 2000 P1.10 P2.0 Chiến lược tối ưu: trang lâu dùng tương lai * P1.1 P1.1 P1.1 P1.1 * P2.2 P2.2 * P1.10 P1.10 * P2.0 P2.0 P1.1 P1.1 P2.2 P2.2 P1.10 P1.10 P2.0 P2.0 *: lỗi trang Ỵ lỗi c) *) Trường hợp P 1.2000 kế cuối MMU đổi P1.2000 Ỵ P1 < p =10, d = > MMU dò bảng trang p = P1.10 ứng với f = #2 MNU truy cập địa 〈f = #2, d= 0〉 *) Trường hợp P2.0 cuối MMU đổi P2.0 Ỵ P1
MMU dò bảng trang P = P1 ứng với f = #3 MMU truy cập địa Coi sai: ghi lỗi trang trang không thuộc tiến trình dừng Câu 3: Cho chương trình sau: Double A[10] = { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29 }; double x = 10; void main() { int l = 0, r = 9; while (l a[mid]) l = mid+1; else if (x < a[mid]) r = mid-1; else break; } } thi hành máy tỉnh giả lập sử dụng nhớ ảo có kích thước trang 24 byte Các biến l, r, mid sử dụng biến ghi (không chiếm nhớ) Biến x cấp phát địa 216, A cấp phát địa 240 Yêu cầu xác định chuỗi truy xuất trang tiến trình (không xét trang chứa mã thi hành) Ghi chú: sizeof(double) = ... 4096, d = 13000 MOD 4096 ====> p =3, d= 712 Như P1 truy xuất trang MMU dò bảng trang, trang invalid -> phát sinh lỗi trang HĐH cấp cho tiến trình P1 khung trang #0 để lưu trang 3, nạp trang, cập nhật... I #301 V #302 V I #0 V #400 V Bảng trang P1 Bảng trang P2 Bảng trang cuûa P3
-> MMU dò bảng trang, trang ứng với khung trang 0, truy cập nhớ đ/c 712 khung... V #302 V I #0 V I Bảng trang P1 Bảng trang P2 Bảng trang P3 MMU dò bảng trang P1
-> MMU truy cập nhớ đ/c cua khung trang #400 g Đó chế chia sẻ nhớ Trang P1 trang