Tổ chức vùng nhớ chính 24 Mục tiêu của việc quản lý vùng nhớ: Cấp phát vùng nhớ cho các tt có yêu cầu Thu hồi vùng nhớ khi tt th/h xong Quản lý vùng nhớ rỗi, vùng nhớ bận Tại một
Trang 1Chương 4:
QUẢN LÝ VÙNG NHỚ CHÍNH
1
Trang 2Nội dung
2
Trang 34.1 Tổ chức vùng nhớ chính
L0: regist (~ trăm KB; ps ->ns)L1,L2: SRAM (MB; 0->15ns)L3: DRAM (GB; 60->100ns)L4: đĩa từ (~ trăm GB; ms)L5: băng từ (lớn; 100ms)
Trang 44.1 Tổ chức vùng nhớ chính (2)
4
Mục tiêu của việc quản lý vùng nhớ:
Cấp phát vùng nhớ cho các tt có yêu cầu
Thu hồi vùng nhớ khi tt th/h xong
Quản lý vùng nhớ rỗi, vùng nhớ bận
Tại một thời điểm có thể lưu giữ nhiều tt đồng thời
Chuyển đổi giữa đ/c logic và đ/c vật lý
Chia sẻ thông tin trong BN (giữa các tt)
Ngăn chặn các tt xâm phạm đến vùng nhớ đã được cấp phát
Trang 5Ax0000 Bx000
Trang 74.2 Phân chia bộ nhớ và nạp tiến trình vào bộ nhớ
Phân mảnh nội vi
TT nạp tt: First Fit
Best Fit Worst Fit
Trang 84.2 Phân chia bộ nhớ và nạp tiến trình vào bộ nhớ
nhau Khi nạp tt vào vùng nhớ phân chia => ko nhất thiết phải liền kề nhau
• First Fit: Tìm vùng nhớ trống đầu tiên trong ds đủ để nạp tt
• Best Fit: Tìm vùng nhớ trống trong toàn bộ ds, vừa vặn nhất, hợp lí nhất để nạp tt
• Worst Fit: Tìm vùng nhớ trống lớn nhất trong ds để nạp tt
8
Trang 94.3 Phân trang trong quản lý vùng nhớ (Paging)
Nguyên tắc:
TT được chia thành các trang có độ dài bằng nhau, có thể là 512B, 1K, 2K, 4K,…và được đánh số
Vùng nhớ cũng được phân chia thành những phần bằng nhau, gọi là khung trang (frame) và được đánh số
Khi nạp trang tt vào frame thì ko nhất thiết phải liền kề nhau
9
Trang 104.3 Phân trang trong quản lý vùng nhớ (2)
10
A0A1A2B0B1C0C1
A2B1C0A0
C1A1
B0
Trang 114.3 Phân trang trong quản lý vùng nhớ (3)
Trang 124.3 Phân trang trong quản lý vùng nhớ (4)
Đ/c logic và đ/c vật lý trong phân trang:
Trang 134.3 Phân trang trong quản lý vùng nhớ (5)
Quy tắc tính đ/c vật lý:
Từ phần 2n trong đ/c logic (chỉ số trang) truy nhập vào bảng trang để tìm số khung
Lấy số khung ghép với độ lệch ta sẽ được đ/c vật lý Hay cách khác: đ/c vật lý = số khung x độ dài trang + độ lệch
13
Trang 144.4 Phân đoạn trong quản lý vùng nhớ
Nguyên tắc:
TT được chia thành các đoạn có độ dài ko bằng nhau và được đánh số
Vùng nhớ cũng được phân chia thành các đoạn có độ dài ko bằng nhau và cũng được đánh số
Khi nạp đoạn tt vào vùng nhớ thì ko nhất thiết phải liền kề nhau
14
Trang 154.4 Phân đoạn trong quản lý vùng nhớ (2)
012345
15
Đoạn 1
Đoạn 0
Đoạn 2Vùng nhớ
Trang 164.4 Phân đoạn trong quản lý vùng nhớ (3)
Trang 174.4 Phân đoạn trong quản lý vùng nhớ (4)
Đ/c logic và đ/c vật lý trong phân đoạn:
Đ/c logic: <s,d> (s: số đoạn; d: độ lệch)
Đ/c vật lý:
l: độ dài đoạnđ: đ/c đầu đoạn
l 2n
Trang 184.4 Phân đoạn trong quản lý vùng nhớ (5)
Quy tắc:
Từ phần 2n trong đ/c logic (chỉ số đoạn) truy nhập vào bảng đoạn để tìm độ dài đoạn và đ/c đầu đoạn
Lấy độ dài đoạn so sánh với độ lệch Nếu độ dài đoạn nhỏ hơn độ lệch thì ko nạp được, sai số Ngược lại thì:
đ/c vật lý = đ/c đầu đoạn + độ lệch
18
Trang 194.4 Phân đoạn trong quản lý vùng nhớ (6)
Cho bảng đoạn: => Vùng nhớ vật lý:
Tính đ/c vật lý của Các đ/c logic sau:
<3,400>: l=500, d=400; l>d => đ/c vật lý=1300+400=1700
<4,112>: l=50, d=112; l<d =>
Ko nạp được (sai số)
<1,10>: l=14, d=10; l>d => đ/c vật lý=3300+10=3310
Trang 204.5 Vùng nhớ ảo
20
Trang 214.5 Vùng nhớ ảo (2)
– ra giữa BNC & BNP để cho phép xl 1 tt mà ko cần nạp toàn bộ vào BN vật lý
Ưu điểm: ctr có thể lớn hơn bộ nhớ vật lý
Nhược điểm: ko dễ cài đặt, có thể giảm năng lực nếu thiếu thận trọng
nhiên giải thuật thay thế đoạn thường phức tạp hơn thay thế trang do các đoạn có kích thước thay đổi
21
Trang 22Phân trang theo y/c
22
Chuyển bộ nhớ được phân trang tới không gian đĩa liên tục
Trang 234.5 Vùng nhớ ảo (3)
• 1 tt được chia thành các trang thường trú trên BNP, 1 trang chỉ được nạp vào BNC khi có y/c.
• Vùng không gian đĩa dùng để lưu trữ tạm thời các trang gọi là không gian swapping
• Mỗi phần tử trong bảng trang gồm 2 trường: 1 trường chứa số hiệu khung trang, trường kia chứa bít “kiểm tra” – bít V (valid)
o Nếu bít này là 1 (valid): trang đang ở BNC
o Nếu là 0 (invalid): trang đang được lưu trên BNP hoặc ko thuộc tt
23
Trang 246 C 7
8
9 F 10
F
Bảng trang với 1 số trang trên BNP
Trang 25Các bước quản lý lỗi trang
Trang 26 Chuyển 1 trang ra BNP & nạp 1 trang khác vào BNC
Có thể giảm bớt số lần chuyển trang bằng cách sử dụng thêm 1 bít “cập nhật” (dirty bit), được phần cứng đặt là 1 nếu ND trang có bị sửa Khi cần thay thế 1 trang, nếu bit này là 1 thì trang này cần được lưu lại trên đĩa, nếu là 0 nghĩa là trang ko bị thay đổi =>ko cần lưu trữ trang trở lại đĩa
26
Trang 27+Nếu không có khung trống, dùng một giải thuật
thay thế trang để chọn khung “nạn nhân”
+Viết trang “nạn nhân” tới đĩa; thay đổi bảng trang
và khung trang tương ứng.
- Đọc trang mong muốn vào khung trang trống; thay đổi
bảng trang và khung trang.
- Khởi động lại quá trình.
Trang 284.5 Vùng nhớ ảo (6)
Các thuật toán thay thế trang:
2 3 2 1 5 2 4 5 3 2 5 2 Tính lỗi trang với 3 khung trang
Trang 294.5 Vùng nhớ ảo (7)
Các thuật toán thay thế trang:
2 3 2 1 5 2 4 5 3 2 5 2 Tính lỗi trang với 3 khung trang
Trang 304.5 Vùng nhớ ảo (8)
Các thuật toán thay thế trang:
2 3 2 1 5 2 4 5 3 2 5 2 Tính lỗi trang với 3 khung trang