Tải bản đầy đủ - 123 (trang)
Bai08[1] [Compatibility Mode].pdf (p.94-98)

Bai08[1] [Compatibility Mode].pdf (p.94-98)

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

Mô hình Linker-Loader

OS



test.exe

0x3000



jump 0x5000



jump 0x2000



0x1000









test.exe



0x7000

0x3000

(base)



Tại thời điểm Link, giữ lại các đòa chỉ logic

Vò trí base của tiến trình trong bộ nhớ xác đònh được vào thời

điểm nạp : đòa chỉ physic = đòa chỉ logic + base

2



Mô hình Linker-Loader







Bảo vệ ?







Dời chuyển sau khi nạp ?







Không có vùng nhớ liên tục đủ lớn để chứa toàn bộ

tiến trình ?

3



Mô hình Base & Bound

OS



Test.exe

0x3000



Test.exe

jump 0x2000



jump 0x2000



0x1000













Tại thời điểm Link, giữ lại các đòa chỉ logic

Vò trí base , bound được ghi nhận vào 2 thanh ghi:

Kết buộc đòa chỉ vào thời điểm thi hành => tái đònh vò được :

đòa chỉ physic = đòa chỉ logic + base register

Bảo vệ : đòa chỉ hợp lệ  [base, bound]



Bound

0x7000

Base

0x3000



4



Mô hình Base & Bound





Kết buộc đòa chỉ tại thời điểm thi hành=> hỗ trợ của phần cứng

Physical

addrs



logical addrs

CPU











MMU



memory



Tiến trình tăng trưởng ? Vẫn là vấn đề cấp phát liên tục !

Chia sẻ ?

Phân biệt code và data ?

5



BÀI 9 : PHÂN ĐỌAN VÀ PHÂN TRANG





Cấp phát không liên tục :







Segmentation

Paging



1



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



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

Bai08[1] [Compatibility Mode].pdf (p.94-98)

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

×