BÀI 7 : BỘ NHỚ ẢO - Pdf 11

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

RAM
DISK
#

o
f

r
e
f
e
r
e
n
c
e
s
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ớ :

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

Công bằng ?

Không xét đến tính sủ dụng !

TỐI ƯU : trang lâu sử dụng

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.
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
12


Nhờ tải bản gốc
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status