os 5 - memory management
Post on 22-Apr-2015
581 Views
Preview:
DESCRIPTION
TRANSCRIPT
Quản lý bộ nhớ
Operating systems 2PTIT, 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 3PTIT, 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 4PTIT, 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 5PTIT, 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 g
ian
luận
lý
Khô
ng g
ian
vật
lý
Operating systems 6PTIT, 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 7PTIT, 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 8PTIT, 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 9PTIT, 2012
Swap
Operating systems 10PTIT, 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 11PTIT, 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 12PTIT, 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 13PTIT, 2012
Bảo vệ bộ nhớ trong cơ chế base&limit
Operating systems 14PTIT, 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 15PTIT, 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 16PTIT, 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 17PTIT, 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 18PTIT, 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 19PTIT, 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 20PTIT, 2012
Chuyển đổi địa chỉ trong cơ chế phân đọan
Operating systems 21PTIT, 2012
Một hệ thống phân đọan
Operating systems 22PTIT, 2012
Dùng chung các phân đọan
Operating systems 23PTIT, 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 24PTIT, 2012
Trang và khung
Operating systems 25PTIT, 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
Operating systems 26PTIT, 2012
Chuyển đổi địa chỉ ảo thành địa chỉ vật lý
Operating systems 27PTIT, 2012
Truy xuất bộ nhớ với cơ chế phân trang Liên kết giữa trang và khung được chứa
trong bảng trang (page table) Mỗi thao tác truy xuất bộ nhớ gồm 2 công
đọan: Đọc bảng trang để tìm khung => tạo ra địa
chỉ vật lý Đọc dữ liệu từ địa chỉ vật lý
Operating systems 28PTIT, 2012
Tăng tốc độ truy xuất bộ nhớ trong cơ chế phân trang
Sử dụng bộ nhớ kết hợp TLB (Translation look aside buffer)
Operating systems 29PTIT, 2012
Bảng trang nhiều cấp
p1 p2 d
Cấu trúc địa chỉ trong bảng trang hai cấp
Operating systems 30PTIT, 2012
Bài tập 1 Giả sử bộ nhớ chính được phân thành các đọan
có kích thước là 600K, 500K, 200K, 300K ( theo thứ tự ). Hãy cho biết các tiến trình có kích thước 212K, 417K, 112K và 426K ( theo thứ tự ) sẽ được cấp phát bộ nhớ như thế nào, nếu sử dụng :
a) Chiến lược First fitb) Chiến lược Best fitc) Chiến lược Worst fit
Operating systems 31PTIT, 2012
Bài tập 2
Tại sao kích thước trang luôn là lũy thừa của 2?
Xét một không gian địa chỉ có 8 trang, mỗi trang có kích thước 1K. Ánh xạ vào bộ nhớ vật lý có 32 khung.
a) Địa chỉ luận lý gồm bao nhiêu bit ?
b) Địa chỉ vật lý gồm bao nhiêu bit ?
Operating systems 32PTIT, 2012
Bài tập 3 Xét một hệ thống sử dụng kỹ thuật phân trang,
với bảng trang được lưu trữ trong bộ nhớ chính. a) Nếu thời gian cho một lần truy xuất bộ nhớ bình
thường là 200 ns, thì mất bao nhiêu thời gian cho một thao tác truy xuất bộ nhớ trong hệ thống này ?
b) Nếu sử dụng TLBs với hit-ratio ( tỉ lệ tìm thấy) là 75%, thời gian để tìm trong TLBs xem như bằng 0, tính thời gian truy xuất bộ nhớ trong hệ thống ( effective memory reference time)
Operating systems 33PTIT, 2012
Bài tập 4
a. 0,430
b. 1,10
c. 2,500
d. 3,400
e. 4,112
Cho bảng phân đọan như hình dưới. Xác định địa chỉ vật lý ứng với các địa chỉ sau đây:
top related