Tải bản đầy đủ (.ppt) (13 trang)

BỘ NHỚ ảo (TỔNG QUAN hệ điều HÀNH SLIDE) (chữ biến dạng do slide dùng font VNI times, tải về xem bình thường)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (167.24 KB, 13 trang )

BÀI 7 :

BỘ NHỚ ẢO


BỘ NHỚ ẢO
OS

test.exe
0x3000
jump 0x2000

0x1000


test.exe
jump
0x5000

0x7000
0x3000
(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ện

2


Giải pháp
Real memory

Real memory

Page0

Page0
Page1

emacs

t1

emacs

t2
 Nạp từng phần chương trình khi
cần thieát
 Demand paging

Page2

Time


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 :DISK
Bộ nhớ ảo (Virtual
Memory)
Memory
P

RAM

4


Bộ nhớ ảo = “lời nói dối vó
đại“

# of references

 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
10% RAM
+

90% DISK

Memory address

RAM

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
Frame
17
4183
177
5721

valid/invalid
1
0
1
0

Disk
Mem


 Truy xuất đến một trang chưa được
nạp vào bộ nhớ :
6


Xử lý lỗi trang
3

OS

truy
xuất
1

nạp
M
Bộ
nhớ
ảo

6

tái
kích
hoạt
tiến
trình

xác định vị trí lưu
trang trên đóa

lỗi
2
trang
3
swap out ’
trang
i
nạn
nhân
Bảng
frame
trang
5
trống
cập
nhật
Bộ nhớ
bảng

M

4

mang
trang
cần
truy 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

8


Chiến lược thay thế trang


FIFO: trang “già” nhất









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ứ


add

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


victim

Dự đoán tương lai LRU = MIN ?

victim
AGBDCABCABCGABC
Cur page
victim
AGBDCABCABCGABC
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 đổ !


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 !
11
 Hệ thống ngừng trệ


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ớ,
với
kích
thươc
lớn thrashing
hơn
 nhưng
Chỉ có
thể
kiểm

soát
do
nguyên nhân 3.
3. Quá nhiều tiến trình trong hệ
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 13



×