You are on page 1of 2

Các Chiến Lược Đổi Trang

1. Đổi trang tối ưu (OPT)


● Hệ điều hành sẽ chọn trang nhớ không được dùng tới trong khoảng thời gian lâu
nhất để đổi
● Nói cách khác, trang bị đổi là trang có lần truy cập tiếp theo cách xa thời điểm
hiện tại nhất
● Chiến lược này cho phép giảm tối thiểu số lần đổi trang
● Tuy nhiên, nó khó có thể thực hiện trong thực tế do cần đoán trước nhu cầu sử
dụng các trang trong tương lai và thứ tự truy cập các trang là không cố định và
không biết trước
1. FIFO
●  Đây là chiến lược đơn giản nhất
● Được tiến hành bằng cách sử dụng hàng đợi FIFO
● Dựa trên giả thiết: trang bị đổi là trang nằm trong bộ nhớ lâu nhất, do nằm trong
bộ nhớ lâu nhất nên có nhiều khả năng không sử dụng tới nữa
● Gây ra tần suất đổi trang lớn nhất so với các chiến lược khác

1. Đổi trang ít sử dụng nhất trong thời gian cuối (LRU) - (Least Recently Used)
● Với chiến lược này, trang bị đổi là trang mà thời gian từ lần truy cập cuối đến
thời điểm hiện tại là lâu nhất.
● Chiến lược dựa trên nguyên tắc cục bộ về thời gian, trang đang được sử dụng
sẽ được sử dụng tiếp, ngược lại trang ít được sử dụng sẽ bị thay thế.
● Chiến lược này ngược với chiến lược OPT, nhưng kết quả thì tốt gần như chiến
lược OPT.
● Mặc dù kết quả tốt nhưng việc triển khai khó khăn do cần sự hỗ trợ của phần
cứng để đảm bảo về tốc độ. (tốc độ chấm hơn FIFO)
● Khó khăn chính ở đây là việc xác định thời điểm cuối cùng sử dụng trang.

Có 2 cách giải quyết:

● Sử dụng biến đếm:


- Mỗi trang sẽ có thêm 1 trường chứa thời gian truy cập lần cuối.
- CPU có thêm 1 thanh ghi chứa 1 số đếm, cứ khi bộ nhớ được truy cập thì số đếm
đó tăng lên 1.
- Mỗi khi trang được truy cập thì giá trị ở thành ghi đó sẽ được ghi vào trường chứa
thời gian truy cập lần cuối của trang.
- Như vậy trang có thời gain truy cập thấp nhất sẽ được chọn để thay đổi
● Sử dụng hàng đợi đặc biệt:
- Đặc biệt ở chỗ nó có thể lấy ra giá trị ở bất kì đâu, không nhất thiết là ở đầu.

- Khi một trang được tải, số thứ tự của nó sẽ được thêm vào cuối hàng đợi

- Khi trang được truy cập, số thứ tự cũng được thêm vào cuối hàng đợi
- Như vậy ở đầu hàng đợi là số thứ tự của trang không được sử dụng lâu nhất( tức là
trang cần trao đổi)

- Mặc dù việc tìm và chuyển đổi các giá trị của hàng đợi sẽ mất thời gian nhưng ta
tránh được việc phải tìm kiếm trong bảng phân trang.

- Phương pháp này thích hợp với việc sử dụng phần mềm.

4. Thuật toán đồng hồ (Clock)


(Thuật toán cơ hội thứ 2)
● Là thuật toán cải tiến của FIFO nhằm tránh thay thế những trang đã
được nạp vào lâu nhưng hiện tại vẫn được sử dụng.
● Mỗi trang có thêm 1 bit gọi là bit sử dụng, kí hiệu U, chứa trong bảng
phân trang.
● Mỗi khi trang được truy cập,
=> Khi trang được đọc vào bộ nhớ, U = 1.
● Các trang được liên kết thành 1 danh sách vòng.
● Danh sách này có 1 con trỏ, để trỏ tới lần lượt các trang. Khi 1 trang bị
đổi, con trỏ sẽ chỉ sang trang tiếp theo
● Khi có nhu cầu đổi trang, hệ điều hành sẽ kiểm tra trang đang bị trỏ.
Nếu U = 1 thì đổi U = 0 và trỏ sang trang tiếp theo, ngược lại nếu U = 0
thì trang đó sẽ được chọn để thay thế và U = 1
● Tốt hơn FIFO nhưng không bằng LRU
● So với LRU, Clock căn cứ trên 2 thông tin để đưa ra quyết định đổi
trang
● Thời gian trang được tải, dựa trên danh sách tương tự như FIFO
● Gần đây trang có được sử dụng hay không, thể hiện qua bit U. Việc
kiểm tra bit tương tự việc cho trang thêm một cơ hội được giữ trong
bộ nhớ và vì vậy nó được gọi là thuật toán cơ hội thứ 2

You might also like