2013-02-27 47 views
6

Trong khi sử dụng hàng đợi Tin nhắn POSIX tôi nhận thấy có một số tệp được tạo trên hệ thống tệp với tên tôi đã tạo hàng đợi. Câu hỏi của tôi:Nội dung thư hàng đợi được lưu trữ ở đâu?

Q1. Hàng đợi tin nhắn có xếp hàng các tin nhắn trên đĩa cứng chứ không phải RAM không?

Q2. Nếu vậy, điều này có nên thực hiện rất chậm vì nó liên quan đến HardDisk không?


Edit:

Tôi đọc trong cuốn sách The Linux Programming Interface:

Trên Linux, hàng đợi tin nhắn POSIX được thực hiện như i-nút trong một hệ thống tập tin ảo , và mô tả hàng đợi thông điệp và mở hàng đợi thông báo mô tả được triển khai dưới dạng mô tả tệp và mở tệp tương ứng . Tuy nhiên, đây là những chi tiết triển khai không được SUSv3 yêu cầu và không đúng với một số triển khai UNIX khác.

Ngay cả khi nó là VFS, nó vẫn được lưu trữ trên đĩa cứng, phải không?

Với thông tin này trong đầu, ai đó có thể nhận xét về câu hỏi thứ hai ngay bây giờ không? (Và/hoặc một đầu tiên cũng nếu có cái gì đó để thêm vào)

+0

Tôi nghĩ rằng nó chỉ được lưu trữ trong RAM và không được lưu trữ trên đĩa cứng. Đó là một cái gì đó tương tự như đĩa RAM, như vậy mà bạn có thể truy cập nó "như" một hệ thống tập tin, nhưng nó không tồn tại trên đĩa cứng. – Johnlcf

Trả lời

4

Dưới đây liên kết có thể đưa ra một số rõ ràng về câu hỏi đầu tiên http://man7.org/linux/man-pages/man7/mq_overview.7.html

Về câu hỏi thứ hai, tất nhiên hàng đợi tập tin dựa sẽ chậm hơn so với bộ nhớ dựa một. Nhưng điều này có thể không chậm như một số thao tác truy cập tệp ngẫu nhiên vì nó được tối ưu hóa và được triển khai cụ thể để xếp hàng.

+0

Điều này xứng đáng được trao giải đáp – Mawg

Các vấn đề liên quan