Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Hệ điều hành] Tính kích thước bảng trang

    Tính kích thước bảng trang (theo byte) cho một tiến trình.

    Cho:

    • logical_bits: số bit của không gian địa chỉ logic (không gian = 2^logical_bits byte).
    • page_size: kích thước một trang (byte), là luỹ thừa của 2.
    • entry_size: kích thước một mục bảng trang (byte).

    Công thức:

    • Số trang num_pages = 2^logical_bits / page_size.
    • Kích thước bảng trang = num_pages * entry_size (byte).

    Thuật toán: tính 2^logical_bits (dùng dịch bit), chia cho page_size, nhân entry_size. In kết quả.

    Ví dụ: logical_bits=32, page_size=4096 (4KB), entry_size=4. num_pages = 2^32 / 4096 = 2^20 = 1048576. Kích thước = 1048576 * 4 = 4194304 byte.

    • Định dạng đầu vào:

      Ba số nguyên: logical_bits, page_size, entry_size (trên một hoặc nhiều dòng).

    • Ràng buộc đầu vào:

      1 ≤ logical_bits ≤ 60; page_size là luỹ thừa của 2, 1 ≤ page_size ≤ 2^logical_bits; 1 ≤ entry_size ≤ 64.

    • Định dạng đầu ra:

      Một số nguyên: kích thước bảng trang tính bằng byte.

    Ví dụ:

    Đầu vào:

    32 4096 4
    

    Đầu ra:

    4194304

    Giải thích:

    2^32 = 4294967296 byte không gian logic. num_pages = 4294967296 / 4096 = 1048576 = 2^20. Kích thước bảng trang = 1048576 * 4 = 4194304 byte.

    Đang tải editor...