1
BÀI 9 : PHÂNĐỌANVÀPHÂN TRANG
Cấp phát không liên tục :
Segmentation
Paging
2
Mô hình Segmentation
Tiến trình gồm nhiều segment, áp dụng base
bound cho từng segment
Phân chia không gian đòa chỉ thành các
segment ?
gcc
Text seg
r/o
Stack seg
r/w
0x1000
0x3000
0x5000
0x6000
Real memory
0x2000
0x8000
0x6000
Base&bound?
3
Chuyeån ñoåi ñòa chæ trong moâ hình Segmentation
Virtual addr
Seg# offset
3 128
Seg table
Prot base len
r 0x1000 512
mem
seg
128
+
0x1000
?
yes
no
fault
4
Mô hình Segmentation
Cấp phát không liên tục => tận dụng bộ nhớ hiệu quả
Chia sẻ được ở mức module
Chuyển đổi đòa chỉ phức tạp
Vấn đề “Cấp phát động” : lựa chọn vùng nhớ liên tục cho 1
segment ?
Phân mảnh ngoại vi
gcc
emacs
??
External
fragmentation
Nachos
5
Moâ hình Paging
Khoâng gian ñòa chæ = {page}
Khoâng gian vaät lyù = {frame}
Kích thöôùc trang ?
Internal
frag
Real memory
gcc
emacs
emacs
gcc
6
Chuyeån ñoåi ñòa chæ trong moâ hình Paging
CPU
KGVL
Physical
addr
Logical
addr
p d
f d
f
7
Mô hình Paging
Cấp phát bộ nhớ đơn giản
Không còn 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 ?
. 1
BÀI 9 : PHÂN ĐỌAN VÀ PHÂN TRANG
Cấp phát không liên tục :
Segmentation
Paging
2
Mô. phát bộ nhớ đơn giản
Không còn 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 ?