Skip to main content

Danh sách miễn phí là gì?

Danh sách miễn phí là cấu trúc dữ liệu giữ địa chỉ của các vị trí bộ nhớ máy tính có sẵn để sử dụng bởi một chương trình đang chạy khi sử dụng phân bổ bộ nhớ động. Danh sách trở nên cần thiết khi một chương trình phải phân bổKhông gian từ một khu vực của bộ nhớ miễn phí được gọi là đống. Việc triển khai danh sách miễn phí có thể là một danh sách được liên kết đơn giản hoặc có thể là một cấu trúc dữ liệu phức tạp hơn nhưmột cây sắp xếp. Hầu hết các ngôn ngữ lập trình máy tính cấp cao tự động xử lý danh sách miễn phí, xóa nhu cầu quản lý thủ công. Khi chương trình yêu cầu không gian lưu trữ thông tin trong quá trình thực hiện chương trình, nóPhải yêu cầu một lượng bộ nhớ cụ thể từ hệ điều hành cơ bản. Các vị trí của các khối bộ nhớ có thể được sử dụng được lưu trữ trong danh sách miễn phí. Để phân bổ thành công, số lượng bộ nhớ được yêu cầucần có sẵn trong một hoặc nhiều khối này. Khi một con trỏ tới một locatio bộ nhớ thích hợpn được trả về, phần tử đó của danh sách đã bị xóa.chặn lại vào danh sách miễn phí, nơi nó sẽ có sẵn vào lần tới khi phân bổ được thử. Có thể phân bổ bộ nhớ không thành công vì danh sách trống hoặc vì không có khối bộ nhớ có sẵn đủ lớn để thực hiệnYêu cầu của chương trình.

Hình thức quản lý bộ nhớ đơn giản nhất được gọi là hệ thống phù hợp đầu tiên. Hệ thống này duy trì một danh sách các vị trí bộ nhớ miễn phí. Khi yêu cầu gửi bộ nhớ,Danh sách được chuyển qua và khối đầu tiên đủ lớn được trả về. Nếu khối hơn gấp đôi kích thước được yêu cầu, thì nó đã giảm một nửa và một nửa không sử dụng được thêm vào danh sách. Phương pháp này giao dịch mã hóa đơn giản cho nguy cơ có bộ nhớ phân mảnhCác khu vực có thể không bao giờ được đưa trở lại danh sách.Các khối mở chỉ có một kích thước cụ thể. Điều này có nghĩa là khi nhận được yêu cầu phân bổ, danh sách giữ các khối đủ lớn để điền yêu cầu được tư vấn và một vị trí mở được trả về. Nếu khôngCác khối miễn phí nhỏ hơn hai lần kích thước được yêu cầu có sẵn, một khối lớn hơn được chia thành hai để đáp ứng các yêu cầu.

Thuật ngữ Danh sách miễn phí có thể tham khảo một danh sách liên kết duy nhất của các địa chỉ bộ nhớ,Hoặc nó có thể đề cập đến một loại cấu trúc dữ liệu phức tạp hơn nhiều. Các loại cây sắp xếp khác nhau, nếu được giữ đơn giản và cân bằng, có thể giúp tăng tốc độ tìm các khối bộ nhớ mở với chi phí phức tạpMã nguồn. Một danh sách được liên kết có thể chậm hơn một cây sắp xếp chuyên dụng nhưng tạo ra chương trìnhMã ing dễ đọc, gỡ lỗi và sửa đổi.Danh sách miễn phí và củng cố các không gian miễn phí để chúng tiếp giáp. Điều này có tác dụng ngăn chặn sự phân mảnh và cho phép phân bổ các khối bộ nhớ lớn hơn.