Nếu một quá trình bị giết bằng SIGKILL, các thay đổi mà nó đã thực hiện đối với một tệp ánh xạ bộ nhớ có được chuyển sang đĩa không? Tôi giả sử rằng nếu hệ điều hành đảm bảo một tập tin ánh xạ bộ nhớ được xả vào đĩa khi quá trình bị giết qua SIGKILL, thì nó cũng sẽ làm như vậy với các tín hiệu đầu cuối khác (SIGABRT, SIGSEGV, v.v ...).Hệ điều hành (POSIX) có xóa tệp ánh xạ bộ nhớ nếu quá trình này được SIGKILL không?
13
A
Trả lời
16
Nó sẽ phụ thuộc vào việc tệp ánh xạ bộ nhớ được mở với các sửa đổi riêng tư (MAP_PRIVATE) hay không (MAP_SHARED). Nếu riêng thì không; các sửa đổi sẽ không được ghi lại vào đĩa. Nếu được chia sẻ, vùng đệm của bộ đệm hạt nhân chứa các bộ đệm đã sửa đổi, và các bộ đệm này sẽ được ghi vào đĩa theo đúng hướng - bất chấp nguyên nhân gây ra cái chết.
0
Tôi cũng đặt ra một câu hỏi tương tự và sau đó theo dõi mã trình diễn khi tôi không hài lòng với câu trả lời. Xem mmap, msync and linux process termination
Các vấn đề liên quan
- 1. Posix được chia sẻ bộ nhớ so với các tệp được ánh xạ
- 2. GPU - Ánh xạ bộ nhớ hệ thống
- 3. Tệp bộ nhớ được ánh xạ trên Windows
- 4. Tập tin ánh xạ bộ nhớ .NET
- 5. Cách bộ nhớ được ánh xạ khi sử dụng nĩa?
- 6. Có sự khác biệt nào giữa tệp iostream được ánh xạ và tăng tệp ánh xạ interprocess không?
- 7. Dữ liệu trong tệp ánh xạ bộ nhớ có được bảo đảm để tuôn ra tuần tự không?
- 8. Các tệp ánh xạ bộ nhớ trong Java
- 9. bắt segfault, bộ nhớ không ánh xạ lỗi
- 10. Giám sát các tệp ánh xạ bộ nhớ trong Windows
- 11. Ưu điểm của tệp ánh xạ bộ nhớ là gì?
- 12. Zero, một ánh xạ bộ nhớ lớn với `madvise`
- 13. Có giới hạn thực tế về số lượng tệp ánh xạ bộ nhớ trong iOS không?
- 14. Tôi có thể nhận được đường dẫn cho Tệp Bộ nhớ được Ánh xạ không? (.NET 4.0)
- 15. Làm thế nào để không đồng bộ tuôn ra một tập tin ánh xạ bộ nhớ?
- 16. Linux Bộ nhớ ánh xạ tập tin dự trữ rất nhiều bộ nhớ vật lý
- 17. Tệp có ánh xạ bộ nhớ lớn có thể lớn đến mức nào?
- 18. SIGKILL trong khi cấp phát bộ nhớ trong C++
- 19. malloc trong hệ thống nhúng không có hệ điều hành
- 20. Nền tảng bộ nhớ độc lập được ánh xạ [file] IO
- 21. Quá trình bị giết bởi SIGKILL
- 22. như thế nào một chương trình chạy trong bộ nhớ và cách bộ nhớ được xử lý bởi hệ thống
- 23. Khi nào sử dụng các tệp được ánh xạ trên bộ nhớ?
- 24. Các tệp được ánh xạ trên bộ nhớ: ưu và nhược điểm?
- 25. Viết cấu trúc cho tệp bộ nhớ được ánh xạ (mmap)
- 26. Hệ điều hành có thể cho tôi biết khi một tệp mới được tạo không?
- 27. Cách mô phỏng ánh xạ bộ nhớ I/O
- 28. Biến điều kiện trong bộ nhớ dùng chung - đây có phải là mã POSIX-conformant không?
- 29. Làm cách nào để kiểm tra xem tệp bộ nhớ được ánh xạ có tồn tại không?
- 30. Khó đọc từ Tập tin Ánh xạ Bộ nhớ
Cảm ơn! Bạn có bất kỳ tài liệu nào về hành vi này không? Tôi không thể tìm thấy. – chila
Tiêu chuẩn POSIX (http://www.opengroup.org/onlinepubs/9699919799/toc.htm) cho mmap() nói: Nếu MAP_SHARED được chỉ định, ghi tham chiếu sẽ thay đổi đối tượng bên dưới. Không có từ chồn nào về 'trừ khi quá trình này bị giết sau khi ghi bộ nhớ hoàn thành nhưng trước khi dữ liệu bị xóa vào đĩa'. –