Tải bản đầy đủ - 123 (trang)
Bai09[1] [Compatibility Mode].pdf (p.99-105)

Bai09[1] [Compatibility Mode].pdf (p.99-105)

Tải bản đầy đủ - 123trang

Mô hình Segmentation

gcc

0x1000



0x3000



0x5000



Text seg

r/o



Stack seg

r/w

0x6000









Base&bound?



Real memory

0x2000



0x8000

0x6000



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 ?



2



Chuyển đổi đòa chỉ trong mô hình Segmentation

fault



Virtual addr

3



no

?



128



Seg# offset



Seg table

Prot base



r



len



yes



mem

+



0x1000



seg



128



0x1000 512



3



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

External





fragmentation

Nachos



??



gcc

emacs



4



Mô hình Paging

Real memory

gcc

gcc

emacs











emacs



Internal

frag



Không gian đòa chỉ = {page}

Không gian vật lý = {frame}

Kích thước trang ?

5



Chuyển đổi đòa chỉ trong mô hình Paging

Logical

addr

CPU



Physical

addr



p d



f d

KGVL

f



6



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 ?



7



BÀI 10 : BỘ NHỚ ẢO

OS

test.exe

0x3000



jump 0x5000



jump 0x2000



0x1000





test.exe



0x7000

0x3000

(base)



Cho đến nay : Nạp toàn bộ tiến trình vào bộ nhơ rồi thực hiện

nó...









Chậm, lãng phí bộ nhớ

Nếu kích thước tiến trình lớn hơn dung lương bộ nhớ chính ?

Lưu ý : tại 1 thời điểm chỉ có một chỉ thò được thực hiện



1



Giải pháp

Real memory



Real memory



Page0



Page0

Page1



emacs



t1



emacs



t2

 Nạp từng phần chương trình khi cần thiết

 Demand paging



Page2



Time



2



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Bai09[1] [Compatibility Mode].pdf (p.99-105)

Tải bản đầy đủ ngay(123 tr)

×