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
PTIT, 2012
Địa chỉ vật lý và địa chỉ luận lý
Địa chỉ luận lý (hay địa chỉ ảo) là địa chỉ
mà CPU “nhìn thấy”.
=> Không gian địa chỉ ảo là tập hợp tất cả
các địa chỉ mà CPU “nhìn thấy”.
Địa chỉ vật lý là địa chỉ thật mà đơn vị
quản lý bộ nhớ quản lý.
=> Không gian địa chỉ vật lý là khoảng địa chỉ
mà đơn vị quản lý bộ nhớ “nhìn thấy”.
Operating systems
5
PTIT, 2012
Địa chỉ luận lý và địa chỉ vật lý
Bộ nhớ
vật lý
Đơn vị quản lý
bộ nhớ
Không gian
luận lý
Không gian
vật lý
Operating systems
6
PTIT, 2012
Đơn vị quản lý bộ nhớ (MMU)
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
phần tiến trình chưa sử dụng ra bộ nhớ
ngòai (đĩa cứng), khi nào cần sẽ nạp vào
lại.
Operating systems
9
PTIT, 2012
Swap
Operating systems
10
PTIT, 2012
Các cơ chế cấp phát bộ nhớ
Cấp phát liên tục (contigous allocation)
Cấp phát không liên tục:
Phân đọan (segmentation)
Phân trang (paging)
Operating systems
11
PTIT, 2012
Cấp phát liên tục
Mô hình 1 (linker-loader): quản lý địa chỉ
bắt đầu và kích thước tiến trình
Operating systems
12
PTIT, 2012
Cấp phát liên tục
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
16
PTIT, 2012
Các chiến lược cấp phát động
First-fit: Chọn vùng nhớ trống đầu tiên
tìm thấy đủ rộng để chứa tiến trình.
Best-fit: Chọn vùng nhớ trống nhỏ nhất
đủ sức chứa tiến trình.
Worst-fit: Chọn vùng nhớ trống lớn nhất
để chứa tiến trình.
Chiến lược nào tốt nhất???
Operating systems
17
PTIT, 2012
Phân đọan
Đối với người sử
dụng, một chương
trình được chia
thành nhiều phần
khác nhau:
Operating systems
18
PTIT, 2012
Phân đọan
Mỗi phần
đượ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
20
PTIT, 2012
Chuyển đổi địa chỉ trong cơ chế phân
đọan
Operating systems
21
PTIT, 2012
Một hệ thống phân đọan
Operating systems
22
PTIT, 2012
Dùng chung các phân đọan
Operating systems
23
PTIT, 2012
Phân trang (paging)
Không gian bộ nhớ vật lý được chia thành
các đọan có kích thước bằng nhau gọi là
khung (frame)
Không gian địa chỉ ảo cũng được chia
thành nhiều đọan có kích thước bằng
nhau và bằng với khung trang, gọi là các
trang địa chỉ (page)
Operating systems
24
PTIT, 2012
Trang và khung
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