Bài giảng Hệ điều hành nâng cao: Bài 7 - Trần Hạnh Nhi
Số trang: 12
Loại file: ppt
Dung lượng: 319.00 KB
Lượt xem: 23
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng Hệ điều hành nâng cao: Bài 7 - Bộ nhớ ảo. Chương này gồm có những nội dung chính sau: Cơ chế, bộ nhớ ảo = “lời nói dối vĩ đại“, thực hiện bộ nhớ ảo, xử lý lỗi trang, chiến lược thay thế trang, chiến lược nạp, nguyên nhân thrashing, giải quyết thrasing với mô hình working set.
Nội dung trích xuất từ tài liệu:
Bài giảng Hệ điều hành nâng cao: Bài 7 - Trần Hạnh Nhi BÀI 7 : BỘ NHỚ ẢO OS test.exe 0x3000 0x7000 test.exe jump 0x5000 jump 0x2000 0x3000 0x1000 (base) 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ệ 1n Giải pháp Real memory Real memory Page0 Page0 Page1 emacs emacs Page2 t1 t2 Time Nạp từng phần chương trình khi cần thiết Demand paging 2 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ớDISK ảo (Virtual Memory) Virtual Memory P RAM 3 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 # of references 10% RAM + 90% DISK Memory address DISK RAM 4 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 Frame valid/invalid 17 1 Disk 4183 0 177 1 5721 0 Mem Truy xuất đến một trang chưa được nạp vào bộ nhớ : 5 Xử lý lỗi trang 3 xác định vị trí lưu trang OS trên đĩa lỗi trang 2 3’ truy xuất M swap out 1 trang nạn nạp i nhân 6 M tái kích Bảng trang frame trống hoạt tiến 5 mang trang Bộ nhớ trình 4 cập nhật cần truy ảo xuất vào bảng trang Bộ nhớ vật lý bộ nhớ6 Các câu hỏi 1. Chọn trang nạn nhân ? => Chiến lược thay thế trang 2. Chọn trang nào để nạp ? => Chiến lược nạp 7 Chiến lược thay thế trang victim add FIFO: trang “già” nhất Công bằng ? Không xét đến tính sủ dụng ! victim TỐI ƯU : trang lâu sử dụng đến nhất trong tương lai AGBDCABCABCGABC Tần suất lỗi trang thấp nhất Cur page Không khả thi ! victim LRU :trang lâu nhất chưa sử AGBDCABCABCGABC dụng đến trong quá khứ Dự đoán tương lai LRU = MIN Cur page 8 ? 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 = ? 9 Thrashing = ảo tưởng sụp đổ ! 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 ! P1 P2 P3 Real mem 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ệ 10 Nguyên nhân Thrashing 1. Tiến trình không tái sử dụng bộ nhớ (quá khứ != tương lai) 2. Tiến trình tái sử dụng bộ nhớ, nhưng với kích thươc l Ch ớể ỉ có th n h kiơn ểm soát thrashing do nguyên nhân 3. 3. Quá nhiều tiến trình trong hệ thống 11 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 12 ...
Nội dung trích xuất từ tài liệu:
Bài giảng Hệ điều hành nâng cao: Bài 7 - Trần Hạnh Nhi BÀI 7 : BỘ NHỚ ẢO OS test.exe 0x3000 0x7000 test.exe jump 0x5000 jump 0x2000 0x3000 0x1000 (base) 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ệ 1n Giải pháp Real memory Real memory Page0 Page0 Page1 emacs emacs Page2 t1 t2 Time Nạp từng phần chương trình khi cần thiết Demand paging 2 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ớDISK ảo (Virtual Memory) Virtual Memory P RAM 3 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 # of references 10% RAM + 90% DISK Memory address DISK RAM 4 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 Frame valid/invalid 17 1 Disk 4183 0 177 1 5721 0 Mem Truy xuất đến một trang chưa được nạp vào bộ nhớ : 5 Xử lý lỗi trang 3 xác định vị trí lưu trang OS trên đĩa lỗi trang 2 3’ truy xuất M swap out 1 trang nạn nạp i nhân 6 M tái kích Bảng trang frame trống hoạt tiến 5 mang trang Bộ nhớ trình 4 cập nhật cần truy ảo xuất vào bảng trang Bộ nhớ vật lý bộ nhớ6 Các câu hỏi 1. Chọn trang nạn nhân ? => Chiến lược thay thế trang 2. Chọn trang nào để nạp ? => Chiến lược nạp 7 Chiến lược thay thế trang victim add FIFO: trang “già” nhất Công bằng ? Không xét đến tính sủ dụng ! victim TỐI ƯU : trang lâu sử dụng đến nhất trong tương lai AGBDCABCABCGABC Tần suất lỗi trang thấp nhất Cur page Không khả thi ! victim LRU :trang lâu nhất chưa sử AGBDCABCABCGABC dụng đến trong quá khứ Dự đoán tương lai LRU = MIN Cur page 8 ? 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 = ? 9 Thrashing = ảo tưởng sụp đổ ! 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 ! P1 P2 P3 Real mem 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ệ 10 Nguyên nhân Thrashing 1. Tiến trình không tái sử dụng bộ nhớ (quá khứ != tương lai) 2. Tiến trình tái sử dụng bộ nhớ, nhưng với kích thươc l Ch ớể ỉ có th n h kiơn ểm soát thrashing do nguyên nhân 3. 3. Quá nhiều tiến trình trong hệ thống 11 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 12 ...
Tìm kiếm theo từ khóa liên quan:
Hệ điều hành nâng cao Hệ điều hành Bài giảng Hệ điều hành Bộ nhớ ảo Thực hiện bộ nhớ ảo Xử lý lỗi trangGợi ý tài liệu liên quan:
-
Giáo trình Lý thuyết hệ điều hành: Phần 1 - Nguyễn Kim Tuấn
110 trang 450 0 0 -
Lecture Operating systems: Lesson 24 - Dr. Syed Mansoor Sarwar
29 trang 380 0 0 -
Lecture Operating systems: Lesson 21 - Dr. Syed Mansoor Sarwar
22 trang 327 0 0 -
173 trang 272 2 0
-
175 trang 270 0 0
-
Giáo trình Nguyên lý các hệ điều hành: Phần 2
88 trang 269 0 0 -
Lecture Operating systems: Lesson 13 - Dr. Syed Mansoor Sarwar
31 trang 268 0 0 -
Giáo trình Nguyên lý hệ điều hành (In lần thứ ba): Phần 1 - PGS.TS. Hà Quang Thụy
98 trang 244 0 0 -
Đề tài nguyên lý hệ điều hành: Nghiên cứu tìm hiểu về bộ nhớ ngoài trong hệ điều hành Linux
19 trang 242 0 0 -
Bài thảo luận nhóm: Tìm hiểu và phân tích kiến trúc, chức năng và hoạt động của hệ điều hành Android
39 trang 226 0 0