Slide Hệ điều Hành Chương 10 Bộ Nhớ ảo - 123doc

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?. Xử lý lỗi trangBộ nhớ vật lý M Bộ nhớ ảo nạp M OS Bảng trang truy xuất 1 2 lỗi tr

Trang 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 ?

0x1000

test.exe

0x3000

0x3000

test.exe

0x7000 OS

(base)

Trang 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

Trang 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)

Trang 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

Memory address

10% RAM

+ 90% DISK

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

17 1

4183 0

177 1

5721 0

Disk Mem Frame valid/invalid

Trang 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

Trang 7

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

Trang 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 ABCGABC

victim

Cur page AGBDCAB C ABCGABC victim

Cur page

Trang 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

init pages = ?

Trang 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

 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 !

Trang 11

Nguyên nhân Thrashing

 Chỉ có thể kiểm soát thrashing do nguyên nhân 3

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ớn hơn

3 Quá nhiều tiến trình trong hệ thống

Trang 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

Từ khóa » Bộ Nhớ ảo Slide