Quản lý bộ nhớ Linux ("MM") dường như hơi phức tạp và khó theo dõi.
Tài liệu Linux làm cho đề cập nhiều đến LRU (Least Recent used), trong bối cảnh quản lý bộ nhớ. Tôi đã không nhận thấy bất kỳ điều khoản khác đang được đề cập.
Tôi tìm thấy một giới thiệu thú vị (bốn đoạn đầu tiên) trong bài viết này trên LWN.net không thể so sánh được. Nó giải thích làm thế nào LRU cơ bản có thể được thực hiện trong thực tế cho bộ nhớ ảo. Đọc nó.
Sự thay thế True LFU (Ít sử dụng thường xuyên nhất) không được coi là thiết thực cho bộ nhớ ảo. Hạt nhân không thể đếm từng lần đọc của một trang, khi mmap()
được sử dụng để truy cập các trang bộ đệm của tệp - ví dụ: đây là cách hầu hết các chương trình được tải trong bộ nhớ. Chi phí hoạt động sẽ quá cao.
Để vượt ra ngoài khái niệm đơn giản đó, có một phác thảo thiết kế xung quanh phiên bản Linux 2.6.28-32 tại đây:
http://linux-mm.org/PageReplocationDesign
Nó cho thấy Clock-PRO được sử dụng cho các trang tập tin. Có một bài báo gốc có sẵn trên đó. Có một mô tả cũ về Clock-PRO trên LWN.net, một lần nữa bao gồm một số chi tiết triển khai thực tế. Rõ ràng Clock-PRO "cố gắng vượt ra ngoài phương pháp LRU", một biến thể của "được sử dụng trong hầu hết các hệ thống". Nó dường như đặt trọng lượng nhiều hơn về tần số.
Linux-mm có một tài liệu thiết kế khác để triển khai Clock-PRO trong Linux. Điều này không nói về nó được sáp nhập; nó đã được viết một vài tháng trước khi bài báo của LWN về nó. http://linux-mm.org/ClockProAppro xấp xỉ
Các mô tả gần đây hơn là Linux chỉ "sử dụng một số ý tưởng" từ Clock-PRO và thực sự là "sự kết hợp của một số thuật toán khác nhau với một số sửa đổi để nắm bắt các trường hợp góc và tối ưu hóa khác nhau" .
Các trích dẫn ở trên đã được trả lời một câu hỏi của Adrian McMenamin . McMenamin đã tiếp tục hoàn thành một dự án MSc vào năm 2011, thử nghiệm sửa đổi để thay thế trang Linux dựa trên "mô hình tập làm việc". Nó bao gồm một mô tả ngắn gọn về thay thế trang Linux. "Biến thể của LRU" được đặt tên là "cách tiếp cận 2Q [hai hàng đợi] để quản lý cơ sở dữ liệu", một số tài liệu tham khảo được cung cấp và có một sơ đồ minh họa chuyển động giữa hai hàng đợi và các chuyển trạng thái khác. Ông cũng mô tả Linux là sử dụng một phần triển khai CLOCK-PRO.
Tôi hy vọng khái niệm LRU, trái ngược với các khả năng khác mà bạn đề cập, đã được thiết lập ngay từ đầu. Và thay đổi đáng kể nhất là việc giới thiệu các tính năng dựa trên Clock-PRO, tức là tăng thêm tần suất.
Trong năm 2013, Linux đã đạt được "kích thước bộ đệm bộ đệm dựa trên phát hiện". Điều này có lẽ cũng liên quan đến câu hỏi.