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

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)

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ớ : 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

 

ppt 12 trang kimcuc 7680
Bạn đang xem tài liệu "Bài giảng Hệ điều hành nâng cao - Bài 10: 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 10: Bộ nhớ ảo - Trần Hạnh Nhi

Bài giảng Hệ điều hành nâng cao - Bài 10: Bộ nhớ ảo - Trần Hạnh Nhi
1 
BÀI 10 : 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_10_bo_nho_ao_tran_hanh_n.ppt