Tôi có một ứng dụng định kỳ (sau mỗi 1 hoặc 2 giây) lấy điểm kiểm tra bằng cách tự rèn. Vì vậy, trạm kiểm soát là một ngã ba của quá trình ban đầu mà chỉ ở lại nhàn rỗi cho đến khi nó được yêu cầu bắt đầu khi một số lỗi trong quá trình ban đầu xảy ra.Chi phí của bẫy lỗi trang
Bây giờ câu hỏi của tôi là cơ chế sao chép-ghi-ghi chép tốn kém như thế nào. Chi phí của bẫy lỗi trang sẽ xảy ra bất cứ khi nào quy trình gốc ghi vào trang bộ nhớ (lần đầu tiên sau khi lấy điểm kiểm tra), vì cơ chế sao chép trên ghi sẽ đảm bảo rằng quy trình gốc sẽ trang vật lý khác với điểm kiểm tra.
Theo ý kiến của tôi, chi phí bẫy lỗi trang có thể khá cao khi xảy ra gián đoạn, chúng tôi chuyển từ vùng đất người dùng sang vùng không gian hạt nhân và sau đó quay lại từ hạt nhân sang không gian người dùng. Tôi có thể mất bao nhiêu chu trình CPU từ một bẫy lỗi trang như vậy. Giả sử rằng RAM đủ lớn và chúng tôi không bao giờ cần phải trao đổi vào đĩa cứng. Vâng, tôi biết rằng thật khó để tưởng tượng một chương trình kiểm tra hiệu quả hơn điều này và do đó bạn có thể nói lý do tại sao tôi lo lắng về chi phí lỗi trang bẫy, nhưng tôi yêu cầu chỉ có ý tưởng chi phí sẽ là bao nhiêu cho chương trình này.
Tùy thuộc vào kiểu truy cập dữ liệu của ứng dụng của bạn. Hãy thử so sánh thời gian chạy có và không có điểm kiểm tra để xem các điểm kiểm tra ảnh hưởng như thế nào đến thời gian chạy. –
Tôi không thể thấy tính hữu dụng của điểm kiểm tra này. Sau ngã ba(), cha mẹ và con là giống hệt nhau. Ater parent exit() s, đứa trẻ có thể tham chiếu chính xác các trang vật lý giống nhau, vì cha mẹ đã bỏ nó tham chiếu đến nó (trạng thái COW cho các trang có thể dự phòng thành "đính kèm" cho tiến trình con, vì trạng thái COW với chỉ tham khảo quy trình không có ý nghĩa) – wildplasser
wildplasser, sự cần thiết cho checkpointing là để tránh khởi động lại ứng dụng. Nó có thể được nối lại từ một trạm kiểm soát trạng thái đã lưu trước đó là a.k.a. – pythonic