CHƢƠNG 7 QUẢN Lí BỘNHỚ
7.2.5 Thuật toỏn thay thế trang
Cú nhiều thuật toỏn thay thế trang khỏc nhau và mỗi HĐH lựa chọn một phương phỏp thay thế cụ thể với tỷ lệ lỗi trang ớt nhất. Để đỏnh giỏ hiệu suất, cần thực hiện thuật toỏn trờn một dóy tham chiếu bộ nhớ cụ thể và tớnh toỏn số lỗi trang. Cú thể sinh ngẫu nhiờn dóy tham chiếu giả (thụng qua mốt bộ tạo số ngẫu nhiờn), hoặc theo dừi một hệ thống đang vận hành và ghi lai địa chỉ mỗi tham chiếu bộ nhớ. Cỏch sau tạo ra nhiều dữ liệu (khoảng 1 triệu địa chỉ/s). Để giảm lượng dữ liệu nhận được, cần chỳ ý hai điểm:
1. Với kớch thước trang xỏc định (trang thường cú kớch thước cổ định được quy định bởi phần cứng hoặc hệ thống), chỉ quan tõm đến địa chỉ trang chứ khụng quan tõm đến địa chỉ ụ nhớ. 2. Nếu tồn tại một tham chiếu tới trang p, thỡ cỏc tham chiếu liền kề tới trang p khụng gõy lồi trang, vỡ p đó nằm trong bộ nhớ sau tham chiếu đầu tiờn.
7.2.5.1 Thuật toỏn FIFO
FIFO là thuật toỏn thay thế trang đơn giản nhất. Thuật toỏn ghi lại thời điểm trang nhớ được đưa vào bộ nhớ và trang "cũ nhất" sẽ bị thay thế. Hỡnh 58 minh họa thuật toỏn FIFO với chuỗi tham chiếu R = 012301401234. Ta thấy xuất hiện 9 lỗi trang (cỏc trang cú gạch dưới).
Hỡnh 56 Bài toỏn FIFO
Mặc dự dễ hiểu, dễ lập trỡnh, nhưng hiệu suất FIFO khụng cao. Vớ dụ,
nờu trang bị thay thế là những trang chứa mó khởi tạo chương trỡnh được sử
dụng từ rất lõu và hiện nay khụng cũn cần nữa. Mặt khỏc, những trang này cú thể chứa những biến được sử dụng nhiều lần và khởi tạo ngay từ đầu
chương trỡnh. Dự trang đang được sử dụng bị thay thế, thỡ hệ thống vẫn hoạt động bỡnh thường. Sau khi bị đưa ra, lỗi trang sẽ xuất hiện gần như tức thời và HĐH phải tải lại trang đú vào bộ nhớ. Một trang nào đú lại bị đưa ra để đưa trang kia trở lại bộ nhớ. Thay thế sai làm tăng tỷ lệ lỗi trang và làm chậm tiến trỡnh.
7.2.5.2 Thuật toỏn tối ƣu (Optimal
Algorithm)
Thay thế trang tối ưu là thuật toỏn cú tỷ lệ lỗi trang thấp nhất. Thuật toỏn này được gọi là OPT hay MIN, và khụng cú dị thường Belady. Thuật toỏn tối ưu thay thế trang khụng được sử dụng trong thời gian dài nhất. Vớ dụ, trong chuỗi tham chiếu mẫu R = 2031203120316457, thuật toỏn thay thế trang tối ưu sinh ra 10 rỗi trang (Hỡnh 59). Thuật toỏn OPT khú cài đặt, vỡ cần phải biết trước về chuỗi tham chiếu, do đú thuật toỏn này sử dụng chủ yếu trong nghiờn cứu so sỏnh.
Hớnh 57 Thuật toỏn tối ƣu và LRU
7.2.5.3 Thuật toỏn ỡt đƣợc sử dụng
gần đõy nhất (LRU)
Cài đặt thuật toỏn tối ưu khụng khả thi, tuy nhiờn vẫn cú thể cài đặt thuật toỏn "tựa" thuật toỏn tối ưu. Khỏc với FIFO sử dụng thời điểm trang được đưa -vào bộ nhợ, LRU (Least Recently Used) sử dụng thời điểm trang được sử dụng và thay thể trang khụng được sử dụng trong khoảng thời gian dài nhất (Hỡnh 10.6b). Thuật toỏn LRU ghi lại thời điểm cuối cũng trang
được sử dụng. Khi thay thế, LRU chọn trang khụng được sử dụng trong khoỏng thời gian dài nhất. Phương phỏp này chớnh là thuật toỏn tối ưu,
nhưng nhỡn vào quỏ khứ, chứ khụng phải nhỡn vào tương lai (Nếu là nghịch đảo của chuồi tham chiếu S, thỡ tỷ lệ lỗi trang đối với thuật toỏn OPT ỏp dụng trờn S là tỷ lệ lồi trang của thuật toỏn LRU ỏp dụng trờn ). Thuật toỏn LRU cần nhiều sự trợ giỳp từ phần cứng. Cú hai cỏch để sắp xếp thứ tự cỏc frame theo thời điểm truy cập cuối cựng:
1. Bộ đếm (Counter): Bảng phõn trang cú trường thời gian sử dụng ghi lại thời điểm cuối cựng trang được tham chiếu. Hệ thống thay thế trang cú giỏ trị thời gian nhỏ nhất. Phương phỏp này đũi hũi tỡm kiếm trờn bảng phõn trang khi thay thế và cập nhật trường thời gian sử dụng trong mồi lần truy nhập bộ nhớ.
2. Ngăn xếp (Stack): Cú thể sử dụng ngăn xếp lưu trữ địa chỉ trang. Trang bị tham chiếu được chuyển lờn đỉnh ngăn xếp. Đỉnh ngăn xếp luụn là trang được sử dụng gần đõy nhất và đỏy ngăn xếp là trang ớt được sử dụng nhất. Vỡ cỏc trang cú thể được lấy ra từ giữa ngăn xếp, nờn cỏch cài đặt đơn giản nhất là sử dụng danh sỏch liờn kết kộp (với một con trỏ đầu và một con trỏ đuụi). Việc loại bỏ một trang và đưa lờn đỉnh ngăn xếp cần thay đổi ớt nhất 6 con trỏ. Tất nhiờn, mỗi lần cập nhật làm tăng chi phớ, nhưng bự lại khụng cần phải tỡm kiếm khi thay thế, trang nằm ở đỏy ngăn xếp là trang LRU. Chỳ ý, khụng thể cài đặt LRU nếu khụng cú phần cứng hỗ trợ. Phải thực hiện cập nhật đồng hồ hay ngăn xếp với mọi tham chiếu bộ nhớ. Nếu sử dụng ngắt để phần mềm thực hiện cập nhật trờn những cấu trỳc dữ liệu như vậy khi cú tham chiếu xảy ra, thi tốc độ truy xuất bộ nhớ giảm và kộo theo hiệu suất hệ thống giảm.