Câu hỏi về kỹ thuật phân trang trong hệ điều hành

Em đang làm bài tập về kỹ thuật phân trang (paging) trong hệ điều hành và còn bối rối với việc tìm số bit của page number và số bít của page offset@@ Mọi người có thể chỉ em được không ạ, cụ thể là bài tập bên dưới.

Dạng này thì học thuộc lũy thừa của 2 thôi :slight_smile:
mỗi bậc K, M, G, T cộng 10 (vì 2^10 = 1024), hay 1 TiB = 240 bytes

  • Page offset là ô (byte) thứ mấy trong trang nên độ lớn sẽ là?
  • Virtual Address = Page number || Page offset
5 Likes

Theo em làm thì số bit của page number là 5 (2^12/2^7), bit của page offset là 7(2^7=128) phải không ạ?

Chính xác.

Mô hình trên để đơn giản nên chỉ có 1 cấp. Với không gian địa chỉ lớn hơn (32/48/52) người ta sẽ dùng ít nhất 2 cấp để tăng hiệu quả sử dụng bộ nhớ.

5 Likes

Cho em hỏi thêm là số bit để biểu diễn địa chỉ ảo là 12 bit, tức là ta chỉ có thể chuyển đổi địa chỉ ảo có giá trị nhỏ hơn hoặc bằng 4095(1111 1111 1111) phải không ạ?

Đúng vậy. Địa chỉ bất hợp lệ là văng fault.

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?