Quản lý bộ nhớ
Operating systems
2
PTIT, 2012
Bối cảnh
Bộ nhớ của máy thì hữu hạn nhưng nhu
cầu của chương trình thì vô hạn.
Hệ thống thực hiện nhiều tiến trình cùng
lúc, cần làm sao cho tiến trình này không
ảnh hưởng đến tiến trình kia.
Operating systems
3
PTIT, 2012
Liên kết địa chỉ
Khi viết chương trình, lập trình viên chỉ
quan tâm đến địa chỉ tượng trưng (tên
biến, tên hàm, …). Khi thực thi, các địa chỉ
này phải được ánh xạ thành địa chỉ thật.
Có thể thực hiện việc ánh xạ tại các thời
điểm:
Lúc biên dịch chương trình
Lúc nạp chương trình vào bộ nhớ
Lúc thực thi chương trình
Operating systems
4
MMU (Memory Management Unit) là khối
phần cứng thực hiện việc chuyển đổi giữa
địa chỉ luận và địa chỉ vật lý.
Có chức năng tách rời không gian vật lý
với không gian luận lý.
Chương trình chỉ nhìn thấy không gian
luận lý.
Operating systems
7
PTIT, 2012
Đơn vị quản lý bộ nhớ (MMU)
MMU được tích hợp bên trong CPU
Khối CPU
Địa chỉ luận lý
Operating systems
8
PTIT, 2012
Cấp phát động
Chỉ liên kết (link) chương trình khi chương
trình được thực thi.
Chỉ nạp chương trình con vào bộ nhớ khi
nó chính thức được gọi.
Cơ chế hóan đổi (swap): tạm thời chuyển
Mô hình 2 (base&limit) quản lý địa chỉ
bắt đầu và địa chỉ kết thúc.
Operating systems
13
PTIT, 2012
Bảo vệ bộ nhớ trong cơ chế base&limit
Operating systems
14
PTIT, 2012
Hiện tượng phân mảnh bộ nhớ
Các tiến trình có kích thước khác nhau. Sau khi
thực thi xong và ra khỏi bộ nhớ sẽ tạo ra các vùng
trống không đều nằm rải rác trong bộ nhớ => phân
mảnh.
Operating systems
15
PTIT, 2012
Hiện tượng phân mảnh bộ nhớ
Phân mảnh trong (internal fragmentation):
Tiến trình được đưa vào vùng trống lớn
hơn kích thước tiến trình => có một phần
dư không dùng.
Phân mảnh ngòai (external
fragmentation): tổng cộng vùng nhớ trống
còn nhiều nhưng không liên tục nên
không cấp phát được.
Operating systems
được đưa vào
một vùng nhớ
riêng, có kích
thước khác
nhau và liên
hệ luận lý với
nhau gọi là
một đọan
(segment)
1
3
2
4
1
4
2
3
Operating systems
19
PTIT, 2012
Phân đọan
Mỗi đọan bộ nhớ trong không gian địa chỉ
luận lý được nhận diện bằng địa chỉ bắt
đầu của đọan (base) và kích thước của
đọan đó (limit).
Cấu trúc địa chỉ luận lý có dạng <s, d>
trong đó s là số hiệu phân đọan, d là địa
chỉ tương đối trong phân đọan.
Operating systems
25
PTIT, 2012
Địa chỉ luận lý trong chế độ phân trang
Địa chỉ luận lý có dạng <p, d>
P: số hiệu trang
D: địa chỉ tương đối trong trang