Professional Documents
Culture Documents
Chuong 3 - Memory
Chuong 3 - Memory
NỘI DUNG
I. Các khái niệm
II. Các kiểu địa chỉ nhớ
III.Chuyển đổi địa chỉ nhớ
IV.Cấp phát bộ nhớ liên tục
V. Cấp phát bộ nhớ không liên tục
MOV AX, 10
➢Nạp chương trình
MOV BX, 20 ADD AX, AX,
vào bộ nhớ => đặt các
chỉ thị và dữ liệu vào BX
Operating
Silberschatz, Galvin and Gagne ©2018
System Concepts – 10th Edition 1.14
Operating
Silberschatz, Galvin and Gagne ©2018
System Concepts – 10th Edition 1.16
paging, segmentation
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.17
CHUYỂN ĐỔI VÀO THỜI ĐIỂM THỰC THI if
(địa chỉ logic) < (giá trị thanh ghi giới hạn) then
(địa chỉ vật lý) = (giá trị thanh ghi nền) + (địa chỉ logic)
else báo lỗi
➢Mô hình Base andBound:
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.18
DYNAMIC LINKING
Ưu điểm:
➢Module ngoài là một thư viện, thủ tục cung cấp các tiện ích của
OS. Các chương trình thực thi có thể dùng các phiên bản khác
nhau của module ngoài mà không cần sửa đổi, biên dịch lại.
➢Chia sẻ: một module ngoài chỉ cần nạp vào bộ nhớ một lần. Các
process cần dùng module ngoài này thì cùng chia sẻ đoạn mã của
module ngoài đó.
➢Phương pháp dynamic linking cần có sự hổ trợ của OS trong việc
kiểm tra xem thủ tục nào có thể chia sẻ giữa các
process hay một phần mã của riêng process.
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.23
DYNAMIC LOADING
➢Cơ chế: chỉ khi nào được gọi đến thì một thủ tục mới được nạp
vào bộ nhớ chính => tăng độ hiệu dụng của bộ nhớ (memory
utilization) bởi vì các thủ tục ít dùng sẽ không chiếm chỗ trong bộ
nhớ.
➢Rất hiệu quả trong trường hợp tồn tại khối lượng lớn mã
chương trình có tần xuất sử dụng thấp, không sử dụng thường
xuyên.
➢Không cần sự hỗ trợ từ OS.
▪ User có trách nhiệm thiết kế và thực hiện các chương trình có
dynamic loading.
▪ OS cung cấp các thư viện hỗ trợ, tạo điều kiện cho các programmer.
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.24
OS sẽ cấp phát
hẳn
khối18,464 bytes
cho process
⇒ dư ra 2 bytes không dùng!
FIXED PARTITION
➢Chia bộ nhớ thành nhiều partition có kích thước
bằng
nhau hoặc khác nhau.
➢Process nào có kích thước nhỏ hơn hoặc bằng kích
thước của partition thì được nạp vào partition đó.
➢Nếu chương trình có kích thước lớn hơn partition thì
phải dùng cơ chế overlay.
➢Nhận xét: dễ bị phân mảnh nội => không hiệu quả
CHIẾN LƯỢC
PLACEMENT
1/17/2018 37
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.37
ĐỀ RA CHIẾN LƯỢC CẤP PHÁT HỢP LÝ➢Dùng
để quyết định cấp phát khối bộ nhớ nào còn trống cho process.
➢Chiến lược placement:
▪ Best-fit: chọn khối nhớ
trống nhỏ nhất vừa đủ để
cấp phát. ▪ First-fit: chọn
khối nhớ trống phù hợp
đầu tiên kể từ đầu bộ nhớ
▪ Next-fit: chọn khối nhớ
trống phù hợp đầu tiên
kể từ vị trí cấp phát cuối cùng
▪ Worst-fit: chọn khối nhớ trống lớn nhất
BÀI TẬP
Giả sử bộ nhớ chính được cấp phát các phân vùng có kích thước
là 600K, 500K, 200K, 300K (theo thứ tự), sau khi thực thi xong,
các tiến trình có kích thước 212K, 417K, 112K, 426K (theo thứ
tự) sẽ được cấp phát bộ nhớ như thế nào, nếu sử dụng: Thuật toán
First fit, Best fit, Next fit, Worst fit? Thuật toán nào cho phép sử
dụng bộ nhớ hiệu quả nhất trong trường hợp trên
Operating
Silberschatz, Galvin and Gagne ©2018
System Concepts – 10th Edition 1.51
MÔ HÌNH CHUYỂN ĐỔI ĐỊA CHỈ ➢Địa
chỉ được tạo ra bởi CPU gồm có hai phần:
▪ Số hiệu trang (Page number)(p)–được dùng như là một chỉ số
của một bảng trang chứa địa chỉ cơ sở của mỗi trang trong bộ
nhớ vật lý.
▪ Địa chỉ tương đối trong trang (Page offset)(d)–kết hợp với địa chỉ
cơ sở để định ra không gian địa chỉ vật lý được gởi đến bộ nhớ.
m
➢Nếu kích thước của không gian địa chỉ ảo là 2 , và kích thước của
n
trang là 2 (đơn vị là byte hay word tùy theo kiến trúc máy) thì:
Bảng trang sẽ có tổng
cộng 2m/2n = 2m - n
mục (entry)
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.52
Operating System
Silberschatz, Galvin and Gagne ©2018
Concepts – 10th Edition 1.55
TRANG 2 CẤP
như sau:
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.64
Operating System
Silberschatz, Galvin and Gagne ©2018
Concepts – 10th Edition 1.69
CHIA SẺ
▪ Ở cấp độ trang
▪ Đứng ở khía cạnh người dùng, khá bất tiện
• Vd:Đoạn mã nằm trên nhiều trang => phải chia sẻ tất cả các
trang đó với nhau.
▪ Đoạn mã phải nằm ở một vị trí giống nhau trong tất cả các
không gian địa chỉ của của tiến trình muốn chia sẻ
Operating
Silberschatz, Galvin and Gagne ©2018
System Concepts – 10th Edition 1.71
PHÂN ĐOẠN
➢Hổ trợ quản lý bộ nhớ theo góc độ người dùng.
➢Một chương trình bao gồm nhiều phân đoạn (segment):
▪ Đoạn mã
▪ Biến toàn cục, dữ liệu
▪ Stack
▪ Heap
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.72
PHÂN ĐOẠN
➢Thông thường, khi một chương trình được biên dịch. Trình
biên dịch sẽ tự động xây dựng các segment.
➢Loader sẽ gán cho mỗi segment một số định danh riêng.
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.73
PHÂN ĐOẠN
Silberschatz,
Operating System Concepts – 10th Edition 1.74
Galvin and Gagne ©2018
PHÂN ĐOẠN
➢Dùng cơ chế phân đoạn trong quản lý bộ nhớ có hổ trợ user view:
▪ Không gian địa chỉ ảo là một tập các đoạn, mỗi đoạn có tên và kích
thước riêng.
▪ Một địa chỉ logic gồm tên đoạn và offset bên trong đoạn đó.
▪ Cho phép không gian địa chỉ vật lý cấp không liên tục cho các
process.
PHÂN ĐOẠN
Operating System
Silberschatz, Galvin and Gagne ©2018
Concepts – 10th Edition 1.76
PHÂN ĐOẠN
➢Địa chỉ logic = <segment-number, offset>
➢Bảng phân đoạn (Segment table): chuyển đổi địa chỉ hai
chiều thành địa chỉ vật lý một chiều. Mỗi ô trong bảng gồm
có:
▪ Thanh ghi nền (base) –chứa địa chỉ vật lý bắt đầu của phân đoạn
trong bộ nhớ chính.
▪ Thanh ghi giới hạn (limit)–chỉ kích thước của phân đoạn.
➢Segment-table base register (STBR)lưu trữ địa chỉ của bảng
phân đoạn trong vùng nhớ.
➢Segment-table length register (STLR)chỉ số segment
được sử dụng bởi 1 chương trình
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.77
PHÂN ĐOẠN
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.78