Việc sử dụng tính toán tham chiếu có cho phép đảm bảo tính xác định không thể thực hiện với bộ thu gom rác không?
Từ đảm bảo là hình thức mạnh nhất.Dưới đây là các đảm bảo bạn có thể cung cấp với tính tham chiếu:
Chi phí liên tục trên một bài tập để điều chỉnh số lượng tham chiếu.
Thời gian không đổi để giải phóng một đối tượng có số tham chiếu đến 0. (Điều quan trọng là bạn không phải giảm giá trị của trẻ em đối tượng đó ngay lập tức;. Thay vào đó bạn phải làm điều đó uể oải khi đối tượng được sử dụng để đáp ứng yêu cầu phân bổ tương lai)
liên tục thời gian để phân bổ một đối tượng mới khi danh sách miễn phí có liên quan không được để trống. Bảo lãnh này có điều kiện và không đáng giá nhiều.
Dưới đây là một số điều bạn không thể đảm bảo với tính tham khảo:
thời gian cố định để phân bổ một đối tượng mới. (Trong trường hợp xấu nhất, heap có thể đang phát triển, và tùy thuộc vào hệ thống chậm trễ để tổ chức bộ nhớ mới có thể là đáng kể. Hoặc thậm chí tệ hơn, bạn có thể điền vào đống và không thể phân bổ.)
Tất cả không thể truy cập các đối tượng được khai hoang và sử dụng lại trong khi duy trì thời gian liên tục cho các hoạt động khác. (Tham chiếu ngược tiêu chuẩn không thể thu thập rác cyclic. Có rất nhiều cách giải quyết khéo léo, nhưng nhìn chung họ làm mất hiệu lực bảo đảm ổn định thời gian cho các hoạt động đơn giản.)
Hiện nay có một số người thu gom rác thời gian thực cung cấp bảo đảm khá thú vị về thời gian tạm dừng, và trong 5 năm qua đã có những phát triển khá thú vị trong cả tính toán tham chiếu và thu gom rác thải. Từ nơi tôi ngồi như một người ngoài cuộc, không có người chiến thắng rõ ràng.
Một số công việc gần đây nhất về tính tham khảo là bởi David Bacon của IBM và bởi Erez Petrank of Technion. Nếu bạn muốn tìm hiểu những gì một hệ thống tính toán tham chiếu tinh vi, hiện đại có thể thực hiện, hãy tìm kiếm các tài liệu của họ. Trong số những thứ khác, họ đang sử dụng nhiều bộ xử lý theo những cách tuyệt vời.
Để biết thông tin về quản lý bộ nhớ và đảm bảo thời gian thực nói chung hơn, hãy xem International Symposium on Memory Management.
Có câu trả lời nào khác cho câu hỏi này cho các ngôn ngữ chức năng và mệnh lệnh không?
Vì bạn đã hỏi về đảm bảo, không. Nhưng đối với quản lý bộ nhớ nói chung, sự cân bằng hiệu suất là khá khác nhau đối với một ngôn ngữ bắt buộc (rất nhiều đột biến nhưng tỷ lệ phân bổ thấp), một ngôn ngữ chức năng không tinh khiết (hầu như không có đột biến nhưng tỷ lệ phân bổ cao). đột biến — tất cả những người được cho là cập nhật — và tỷ lệ phân bổ cao).
Nguồn
2010-06-27 00:13:53
"Tất cả các đối tượng không thể truy cập được khai hoang và sử dụng lại trong khi duy trì thời gian liên tục cho các hoạt động khác". Cho rằng câu hỏi là tạo một ngôn ngữ mới, bạn có thể chọn để thực thi một đống đơn hướng (ví dụ như Erlang và Mathematica) để bạn có thể đảm bảo rằng tất cả các đối tượng không thể truy cập được khai hoang và sử dụng lại trong khi duy trì thời gian liên tục cho các hoạt động khác. –
Có thể thực hiện đếm tham chiếu thời gian thực khó khăn (ở mức giá): xem "Tính toán tham chiếu cho các hệ thống thời gian thực cứng", bởi T Ritzau –