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 (4.55 MB, 91 trang )
Các thu ật toán x ấp x ỉ LRU
Tham chiếu bit (Reference bit) :
◦ Gắn một bit vào mỗi trang, ban đầu = 0
◦ Khi trang được tham chiếu, bit đó được thiết lập = 1
◦ Thay trang co bit tham chiếu = 0,nếu trang con tồn t ại
Tuy nhiên chúng ta không biết thứ tự
Cơ hội thứ hai (Second chance) :
◦ Cần có bit tham chiếu
◦ Thay thế vòng tròn
◦ Nếu trang tham chiếu (trong thứ tự vòng tròn) có bit tham
chiếu = 1 thì :
Thiết lập bit = 0
Chuyển trang vào trong bộ nhớ
Thay thế trang tiếp theo (trong thứ tự vòng tròn) với quy luật
thay thế tương tự.
Thu ật toán thay th ế trang cơ h ội th ứ hai
Thuật toán đếm (Counting Algorithms)
Dành ra một bộ đếm số tham chiếu đến mỗi trang
Thuật toán LFU (Least Frequently Used): thay
trang đếm đượ ít nhất ( có tần số truy xuất nhỏ
nhất )
Thuật toán MFU (Most Frequently Used) : thay
trang đếm được nhiều nhất ( có tần số truy xuất
cao nhất), dựa trên lý luận rằng trang đếm được ít
nhất là có thể vừa đưa vào bộ nhớ và chưa kịp
được sử dụng.
Phân ph ối các khung
Mỗi tiến trình cần số lượng khung tối thiểu
để thực hiện
Ví dụ : IBM 370 – cần 6 trang để thực hiện
lệnh SS MOVE.
◦ Lệnh có độ dài 6 byte, có thể chứa trong 2 trang
◦ 2 trang để thực hiện from
◦ 2 trang để thực hiện to
Hai cách phân phối chính
◦ Phân phối cố đinh (fixed allocation)
◦ Phân phối có ưu tiên (priority allocation)
Phân ph ối c ố đ ịnh
Phân phối công bằng – ví dụ, nếu có 100 khung
và 5 tiến trình, cho mỗi tiến trình 20 trang
Cấp phát theo tỷ lệ - Phân phối theo kích thước
của tiến trình
si = size of process pi
S = ∑ si
m = total number of frames
s
ai = allocation for pi = i × m
S
m = 64
si = 10
s2 = 127
10
× 64 ≈ 5
137
127
a2 =
× 64 ≈ 59
137
a1 =
Phân ph ối có ưu tiên
Lượng khung trang cấp cho tiến trình phụ
thuộc vào độ ưu tiên của tiến trình hơn là
phụ thuộc kích thước tiến trình.
Nếu tiến trình Pi phát sinh lỗi trang
◦ Chọn một trong các khung trang của nó để thay thế
◦ Chọn một khung trang của quá trình khác với độ ưu
tiên thấp hơn để thay thế.
Thay th ế trang toàn c ục hay
c ục b ộ
Thay thế toàn cục (Global replacement): tiến trình
được chọn một khung thay thế từ tập tất cả các
khung, một tiến trình có thể lấy một khung từ tiến
trình khác.
Thay thế cục bộ (Local replacement) : mỗi tiến
trình chỉ chọn một khung thay thế từ chính tập các
khung đã phân phối cho nó.
S ự trì tr ệ (Thrashing)
Nếu một tiến trình không có đủ trang, thì ỷ
lệ trang lỗi là rất cao. Điều này dẫn đến :
◦ 1) Hệ điều hành giám sát việc sử dụng CPU
◦ 2) Nếu hiệu suất sử dụng CPU quá thấp, hệ điều
hành sẽ nâng mức độ đa chương bằng cách đưa
thêm một quá trình mới vào hệ thống.
◦ 3) Hệ thống có thể sử dụng giải thuật thay thế
toàn cục để chọn các trang nạn nhân thuộc một
tiến trình bất kỳ để có chỗ nạp quá trình mới, có
thể sẽ thay thế cả các trang của tiến trình đang xử
lý hiện hành.
S ự trì tr ệ (cont.)
◦ 4) Khi có nhiều quá trình trong hệ thống hơn, thì một
quá trình sẽ được cấp ít khung trang hơn và do đó
phát sinh nhiều lỗi trang hơn.
◦ 5) Khi các quá trình phát sinh nhiều lỗi trang, chúng
phải trải qua nhiều thời gian chờ các thao tác thay thế
trang hoàn tất, lúc đó hiệu suất sử dụng CPU ại giảm.
◦ 6) Hệ điều hành lại quay trở lại bước 1
Hệ thống sẽ lâm vào tình trạng luẩn quẩn của việc giải
phóng các trang để cấp phát thêm khung trang cho
một tiến trình, và các tiến trình khác lại thiếu khung
trang.. và các tiến trình không thể tiếp tục xử lý
Trì trệ toàn bộ hệ thống
S ự trì tr ệ - Thrashing(cont.)