Bài giảng Hệ điều hành nâng cao - Bài 7: Bộ nhớ ảo - Trần Hạnh Nhi

Cho đến nay : Nạp toàn bộ tiến trình vào bộ nhơ rồi thực hiện nó.

Chậm, lãng phí bộ nhớ

Nếu kích thước tiến trình lớn hơn dung lương bộ nhớ chính ?

Lưu ý : tại 1 thời điểm chỉ có một chỉ thị được thực hiện

Sử dụng bộ nhớ phụ để lưu trữ tạm thời các trang chưa sử dụng

 Ai chịu trách nhiệm chuyển đổi ?

 Lập trình viên : Overlay

 Hệ điều hành : Bộ nhớ ảo (Virtual Memory)

 

ppt 12 trang kimcuc 6700
Bạn đang xem tài liệu "Bài giảng Hệ điều hành nâng cao - Bài 7: Bộ nhớ ảo - Trần Hạnh Nhi", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Hệ điều hành nâng cao - Bài 7: Bộ nhớ ảo - Trần Hạnh Nhi

Bài giảng Hệ điều hành nâng cao - Bài 7: Bộ nhớ ảo - Trần Hạnh Nhi
1 
BÀI 7 : BỘ NHỚ ẢO 
Cho đ ến nay : Nạp toàn bộ tiến trình vào bộ nh ơ rồi thực hiện nó... 
Chậm, lãng phí bộ nhớ 
Nếu kích th ư ớc tiến trình lớn h ơ n dung l ươ ng bộ nhớ chính ? 
L ư u ý : tại 1 thời đ iểm chỉ có một chỉ thị đư ợc thực hiện 
0x1000 
test.exe 
0x3000 
0x3000 
test.exe 
jump 0x2000 
jump 0x5000 
0x7000 
OS 
(base) 
2 
Giải pháp 
 Nạp từng phần ch ươ ng trình khi cần thiết 
 Demand paging 
Real memory 
Real memory 
Page0 
emacs 
Time 
t2 
t1 
Page0 
emacs 
Page1 
Page2 
3 
C ơ chế 
 Sử dụng bộ nhớ phụ đ ể l ư u trữ tạm thời các trang ch ư a sử dụng 
 Ai chịu trách nhiệm chuyển đ ổi ? 
 Lập trình viên : Overlay 
 Hệ đ iều hành : Bộ nhớ ảo ( Virtual Memory ) 
P 
RAM 
DISK 
4 
Bộ nhớ ảo = “lời nói dối vĩ đ ại“ 
 Ng ư ời dùng : sở hữu bộ nhớ “vô hạn”, “riêng biệt” 
 Hệ đ iều hành : “thầm lặng” thực hiện quá trình swapping 
RAM 
DISK 
# of references 
Memory address 
10% RAM 
+ 
90% DISK 
5 
Thực hiện Bộ nhớ ảo 
 Bảng trang : thêm 1 bit valid/invalid đ ể nhận diện trang  đ ã hay ch ư a đư ợc nạp vào RAM 
 Truy xuất đ ến một trang ch ư a đư ợc nạp vào bộ nhớ :  lỗi trang (page fault) 
17 1 
4183 0 
177 1 
5721 0 
Disk 
Mem 
Frame 
valid/invalid 
6 
Xử lý lỗi trang 
Bộ nhớ vật lý 
M 
Bộ nhớ ảo 
nạp M 
OS 
Bảng trang 
truy xuất 
1 
2 
lỗi trang 
3 
xác đ ịnh vị trí l ư u trang trên đ ĩa 
3’ 
swap out trang nạn nhân 
4 
mang trang cần truy xuất vào bộ nhớ 
5 
cập nhật 
bảng trang 
6 
tái kích hoạt tiến trình 
frame trống 
 i 
7 
Các câu hỏi 
Chọn trang nạn nhân ? => Chiến l ư ợc thay thế trang 
Chọn trang nào đ ể nạp ? => Chiến l ư ợc nạp 
8 
Chiến l ư ợc thay thế trang 
FIFO : trang “già” nhất 
Công bằng ? 
Không xét đ ến tính sủ dụng ! 
TỐI Ư U : trang lâu sử dụng đ ến nhất trong t ươ ng lai 
Tần suất lỗi trang thấp nhất 
Không khả thi ! 
LRU :trang lâu nhất ch ư a sử dụng đ ến trong quá khứ 
Dự đ oán t ươ ng lai LRU = MIN ? 
add 
victim 
AGBDCAB C ABC G ABC 
victim 
Cur page 
A GBDCAB C ABCGABC 
victim 
Cur page 
9 
Chiến l ư ợc nạp 
Demand paging : nạp trang đư ợc yêu cầu 
Khi nào ? 
Nạp sau : tần suất lỗi trang cao ? => pure demand paging 
Nạp tr ư ớc : làm sao biết ? => prepaging 
ld init pages 
ld page 
ld page 
ld page 
... 
init pages = ? 
10 
Thrashing = ảo t ư ởng sụp đ ổ ! 
 Tất cả tiến trình đ ầu bận rộn xử lý lỗi trang ! 
 IO hoạt đ ộng 100 %, CPU rảnh ! 
 Hệ thống ngừng trệ 
Real mem 
P1 
P2 
P3 
Các tiến trình trong hệ thống yêu cầu bộ nhớ nhiều h ơ n khả n ă ng cung cấp của hệ thống ! 
11 
Nguyên nhân Thrashing 
 Chỉ có thể kiểm soát thrashing do nguyên nhân 3. 
Tiến trình không tái sử dụng bộ nhớ (quá khứ != t ươ ng lai) 
Tiến trình tái sử dụng bộ nhớ, nh ư ng với kích th ươ c lớn h ơ n 
Quá nhiều tiến trình trong hệ thống 
12 
Giải quyết thrasing với mô hình Working set 
Working set = tập hợp các trang tiến trình đ ang truy xuất tại 1 thời đ iểm. 
Hệ đ iều hành : 
Chỉ nạp một tiến trình khi có đ ủ khung trang tự do cho working set của nó. 
Kiểm soát mức đ ộ đ a ch ươ ng của hệ thống : Nếu tổng số khung trang yêu cầu của các tiến trình trong hệ thống v ư ợt quá các khung trang có thể sử dụng, chọn một tiến trình đ ể tạm dừng, ng ư ợc lại, khi tổng working set bé h ơ n số khung trang tự do, nạp thêm tiến trình. 

File đính kèm:

  • pptbai_giang_he_dieu_hanh_nang_cao_bai_7_bo_nho_ao_tran_hanh_nh.ppt