Thông minh Read-Ahead Người quản lý bộ nhớ cache sử dụng các nguyên tắc của địa phương không gian để thực hiện thông minh đọc trước bởi predict- ing những dữ liệu quá trình gọi là có khả năng đọc tiếp theo dựa trên các dữ liệu mà nó được đọc hiện nay. Bởi vì bộ nhớ cache hệ thống được dựa trên các địa chỉ ảo, đó là tiếp giáp với một tập tin cụ thể, nó không quan trọng cho dù họ đang đặt cạnh nhau trong bộ nhớ vật lý. Tập đọc trước cho cach- khối logic ing là phức tạp hơn và đòi hỏi sự hợp tác chặt chẽ giữa các trình điều khiển hệ thống tập tin và bộ nhớ cache block vì rằng hệ thống bộ nhớ cache được dựa trên các vị trí tương đối của các dữ liệu truy cập trên đĩa, và, tất nhiên, các file aren 't nhất thiết phải được lưu trữ liên tục kế nhau trên đĩa. Bạn có thể kiểm tra hoạt động đọc trước bằng cách sử dụng Cache: Đọc Aheads / giây đếm hiệu suất hoặc biến hệ thống CcReadAheadIos. Đọc các khối tiếp theo của một tập tin đang được truy cập liên tục cung cấp một sự cải tiến mance quả thực hiện rõ ràng, với những bất lợi mà nó sẽ gây ra đầu tìm kiếm. Để mở rộng đọc trước efits ích với các trường hợp strided truy cập dữ liệu (cả phía trước và phía sau thông qua một tập tin), người quản lý bộ nhớ cache duy trì một lịch sử của hai yêu cầu đọc cuối cùng trong bản đồ bộ nhớ cache riêng cho các tập tin xử lý được truy cập, một phương pháp được gọi là không đồng bộ đọc trước với lịch sử. Nếu một mô hình có thể được xác định từ những năm dường như ngẫu nhiên lần đọc gọi, người quản lý bộ nhớ cache ngoại suy nó. Ví dụ, nếu người gọi lần đọc trang 4000 và sau đó trang 3000, người quản lý bộ nhớ cache giả định rằng các trang tiếp theo sẽ yêu cầu người gọi là trang năm 2000 và prereads nó. Lưu ý Mặc dù một người gọi phải ra tối thiểu là ba hoạt động đọc để thiết lập một tiền . chuỗi dictable, chỉ có hai được lưu trữ trong bản đồ bộ nhớ cache riêng Để làm cho đọc trước thậm chí còn hiệu quả hơn, chức năng Win32 CreateFile cung cấp một lá cờ chỉ truy cập tập tin phía trước tuần tự: FILE_FLAG_SEQUENTIAL_SCAN. Nếu cờ này được thiết lập, quản lý bộ nhớ cache không giữ một lịch sử đọc cho người gọi để dự đoán mà thay vào đó thực hiện tuần tự đọc trước. Tuy nhiên, như các tập tin được đọc vào thiết lập làm việc của bộ nhớ cache, quan điểm của người quản lý bộ nhớ cache unmaps của tập tin mà không còn hoạt động, và nếu họ chưa sửa đổi, chỉ đạo quản lý bộ nhớ để đặt các trang thuộc quan điểm unmapped ở phía trước danh sách chờ để họ sẽ nhanh chóng tái sử dụng. Nó cũng đọc trước hai lần như nhiều dữ liệu (2 MB thay vì 1 MB, ví dụ). Khi người gọi tiếp tục đọc, khối prereads quản lý thêm bộ nhớ cache dữ liệu, luôn luôn ở khoảng một đọc (kích thước của các chi hiện hành) trước của người gọi. Người quản lý bộ nhớ cache của đọc trước là không đồng bộ bởi vì nó được thực hiện trong một chủ đề riêng biệt từ chủ đề của người gọi và tiến hành đồng thời với việc thực hiện của người gọi. Khi được gọi để lấy dữ liệu được lưu trữ, quản lý bộ nhớ cache đầu tiên truy cập trang ảo yêu cầu để đáp ứng các yêu cầu và sau đó hàng đợi một yêu cầu I / O thêm để lấy dữ liệu bổ sung cho một sợi nhân viên hệ thống. Sau đó các sợi nhân thực hiện ở chế độ nền, đọc dữ liệu bổ sung trong dự đoán của các yêu cầu đọc tiếp theo của người gọi. Các trang preread được đổ lỗi vào bộ nhớ trong khi chương trình vẫn tiếp tục ing execut- để khi người gọi yêu cầu các dữ liệu mà nó đã có trong bộ nhớ. Đối với các ứng dụng mà không có mô hình đọc dự đoán, cờ FILE_FLAG_RANDOM_ACCESS có thể được xác định khi hàm CreateFile được gọi. Lá cờ này chỉ thị cho người quản lý bộ nhớ cache không
đang được dịch, vui lòng đợi..