Khác biệt giữa bản sửa đổi của “Quản lý bộ nhớ”

Nội dung được xóa Nội dung được thêm vào
HPMinh (thảo luận | đóng góp)
Dòng 10:
Một vài vấn đề có thể làm phức tạp quá trình thực thi, ví dụ như [[:en:Fragmentation_(computing)#External_fragmentation|phân mảnh ngoại]], xảy ra khi có những khoảng trống nhỏ giữa những ô nhớ đã được cấp phát, điều này sẽ làm những ô nhớ này không khả dụng cho một yêu cầu cấp phát. [[Siêu dữ liệu]] của bộ cấp phát cũng có thể thổi phồng kích thước (riêng biệt) của những cấp phát nhỏ. Việc này thường được xử lý bằng quá trình [[:en:Chunking_(computing)|chunking]].Hệ thống quản lý bộ nhớ phải theo dõi những cấp phát quá hạn để đảm bảo không xảy ra tràn bộ nhớ.
 
'''==== Hiệu năng''' ====
 
Thuật toán cấp phát bộ nhớ động đặc biệt có ảnh hưởng lớn đến hiệu năng của hệ thống. Một nghiên cứu được Tập đoàn Digital Equipment thực hiện vào năm 1994 đã cho thấy những chi phí vận hành cho một loạt các bộ cấp phát. Độ dài instruction trung bình ngắn nhất để cấp phát một ô nhớ đơn là 52.
 
'''==== Thực hiện''' ====
 
Vì không biết được địa điểm chính xác của việc cấp phát, bộ nhớ được truy cập một cách gián tiếp, thường là thông qua con trỏ tham số. Thuật toán đặc biệt mà được dùng để tổ chức vùng nhớ, cấp phát và giải phóng chunks thì được liên kết với nhân và có thể sử dụng một số phương pháp sau.
 
'''===== Cấp phát ô nhớ kích thước cố định''' =====
 
Cấp phát ô nhớ kích thước cố định, còn được gọi là cấp phát nguồn nhớ, dùng 1 danh sách tự do gồm các ô nhớ có kích thước cố định (thường có cùng kích thước). Cách này hoạt động rất tốt đối với những hệ thống nhúng đơn giản khi không xảy ra việc cấp phát những vật có kích thước quá lớn, nhưng lại thiệt hại vì sự phân mảng, đặc biệt là với những địa chỉ dài. Tuy nhiên do chi phí giảm đáng kể nên phương pháp này có thể tăng cao hiệu suất của 1 số chương trình thường xuyên cần cấp phát và thu hồi bộ nhớ và thường được sử dụng trong Game
 
'''===== Ô nhớ bạn''' =====
 
Trong hệ thống này, ô nhớ được cấp phát vào nhiếu nguồn nhớ chứ không phải 1, mỗi nguồn nhớ đại diện cho 1 ô nhớ có kích thước thường là cấp số nhân của 2. Tất cả ô nhớ được giữ trong 1 danh sách liên kết hay cây dữ liệu và các ô nhớ mới được cấp phát được thêm tuần tự vào các nguồn nhớ để sử dụng sau đó. Nếu kích thước yêu cầu quá nhỏ, ô nhớ nhỏ nhất được chọn và chia đôi, 1 trong 2 mảng chia đôi đó được chọn để tiếp tục cho đến khi nào đạt được kích thước yêu cầu. Khi 1 ô nhớ được cấp phát, bộ cấp phát sẽ bắt đầu với những ô nhớ lớn vừa đủ để tránh tách ô nhớ không cần thiết. Khi 1 ô nhớ được giải phóng, nó được so sánh với ô nhớ bạn. Nếu cả hai đều được giải phóng, chúng được gộp lại và đặt trong danh sách ô nhớ lớn kế tiếp
 
== Hệ thống với bộ nhớ ảo ==
Bộ nhớ ảo là một phương pháp tách việc quản lý bộ nhớ khỏi phần cứng vật lý. Các ứng dụng xử lý bộ nhớ thông qua các địa chỉ ảo. Mỗi lần thử truy xuất dữ liệu lưu trữ, các địa chỉ ảo được dịch sang địa chỉ vật lý. Bằng cách này, việc có thêm bộ nhớ ảo giúp người dùng có được quyền hành chi tiết hơn đối với hệ thống bộ nhớ và các phương thức truy cập