Tôi cố gắng trả lời câu hỏi của bạn:
(1) Nói Về cơ bản, suy nghĩ của bạn là chính xác. Nhưng việc triển khai bộ nhớ cache trang phức tạp trong nhân Linux. Hạt nhân Linux sử dụng thuật toán LRU (ít được sử dụng gần đây nhất) để quản lý danh sách bộ nhớ cache trang. Có thể có các vùng bộ nhớ khác nhau trong một hệ thống Linux, mỗi khu vực duy trì một số danh sách LRU, chẳng hạn như LRU_INACTIVE_ANON, LRU_ACTIVE_ANON (hai danh sách này dành cho bộ đệm ẩn danh), LRU_INACTIVE_FILE, LRU_ACTIVE_FILE (hai danh sách này dành cho bộ đệm trang tệp), LRU_UNEVICTABLE. Các danh sách này được duy trì bằng thuật toán LRU (thêm vào đuôi, loại bỏ khỏi đầu). Và các trang được chuyển giữa danh sách hoạt động và danh sách không hoạt động theo tần suất truy cập. Các trang được thêm vào đuôi danh sách hiện hoạt chỉ khi trang được truy cập và nó nằm trong danh sách không hoạt động. Và nếu danh sách hoạt động trở nên quá lớn, các trang ở đầu danh sách hiện hoạt sẽ được chuyển đến đuôi danh sách không hoạt động. Việc xác nhận lại trang xảy ra trên danh sách không hoạt động, bắt đầu từ đầu danh sách không hoạt động.
(2) Các tệp thông thường đọc/ghi, chặn truy cập tệp deivce và tệp ánh xạ bộ nhớ có thể kích hoạt nhân Linux để tạo bộ đệm trang, hoạt động hoặc không hoạt động. Ngoài ra, malloc được sử dụng trong quá trình không gian người dùng và ngăn xếp không gian người dùng có thể kích hoạt nhân Linux để tạo bộ đệm trang.
(3) Có lẽ tôi hiểu lầm câu hỏi của bạn, tôi đoán bạn có nghĩa là sự khác biệt giữa bộ nhớ cache đệm và bộ đệm trang: Phiên bản cũ hơn sử dụng cả bộ nhớ đệm và bộ đệm trang. Bộ nhớ cache trang dành cho các truy cập tệp (như truy cập tệp thông thường, tệp bản đồ bộ nhớ, truy cập tệp thiết bị khối) và bộ nhớ cache đệm dành cho truy cập khối vật lý (thường là kích thước của khối đĩa vật lý ít hơn một trang, vì vậy một số khối đĩa vật lý có thể điền vào một trang). Mặc dù hạt nhân phiên bản mới vẫn đang sử dụng khái niệm bộ nhớ cache đệm, hạt nhân mới thực hiện bộ đệm đệm dựa trên bộ đệm trang. Hoặc bạn có nghĩa là sự khác biệt giữa bộ nhớ đệm và bộ đệm cpu, nếu vậy, bộ nhớ đệm là để tăng tốc độ truy cập đĩa/ngoại vi, và bộ nhớ cache cpu là để tăng tốc độ truy cập bộ nhớ.
Nguồn
2013-03-20 08:37:34
Ý của bạn là gì? "Ngoài ra, malloc được sử dụng trong quá trình không gian người dùng và ngăn xếp không gian người dùng có thể kích hoạt nhân Linux để tạo bộ đệm trang." –