BÀI : PHÂN ĐỌAN VÀ PHÂN TRANG Cấp phát không liên tục : Segmentation Paging CuuDuongThanCong.com https://fb.com/tailieudientucntt Mô hình Segmentation 0x1000 0x3000 gcc Base&bound? Real memory 0x2000 Text seg r/o 0x8000 0x5000 Stack seg 0x6000 0x6000 r/w Tiến trình gồm nhiều segment, áp dụng base bound cho segment Phân chia không gian địa thành segment ? CuuDuongThanCong.com https://fb.com/tailieudientucntt Chuyển đổi địa mô hình Segmentation Virtual addr no ? 128 Seg# offset Seg table Prot base r CuuDuongThanCong.com len fault yes + mem 0x1000 seg 128 0x1000 512 https://fb.com/tailieudientucntt Mô hình Segmentation Cấp phát không liên tục => tận dụng nhớ hiệu Chia sẻ mức module Chuyển đổi địa phức tạp Vấn đề “Cấp phát động” : lựa chọn vùng nhớ liên tục cho segment ? Phân mảnh ngoại vi External fragmentation gcc ?? Nachos emacs CuuDuongThanCong.com https://fb.com/tailieudientucntt Mô hình Paging Real memory gcc gcc emacs emacs Không gian địa = {page} Không gian vật lý = {frame} Kích thước trang ? CuuDuongThanCong.com https://fb.com/tailieudientucntt Internal frag Chuyển đổi địa mô hình Paging Logical addr CPU Physical addr p d f d KGVL f CuuDuongThanCong.com https://fb.com/tailieudientucntt Moâ hình Paging Cấp phát nhớ đơn giản Không phân mảnh ngoại vi Không chia sẻ mức module Phân mảnh nội vi Lưu trữ bảng trang ? CuuDuongThanCong.com https://fb.com/tailieudientucntt