2013-02-27 12 views
6

Während der Verwendung der POSIX-Nachrichtenwarteschlangen bemerkte ich, dass auf dem Dateisystem einige Dateien mit dem Namen erstellt wurden, den ich die Warteschlangen erstellte. Meine Fragen:Wo ist der Inhalt der Nachrichtenwarteschlange gespeichert?

Q1. Stellen Nachrichtenwarteschlangen die Nachrichten auf der Festplatte und nicht in den RAM-Speicher?

Q2. Wenn dem so ist, sollte dies nicht sehr langsam in der Implementierung sein, da HardDisk involviert ist?


Edit:

Ich lese dies in dem Buch The Linux Programming Interface:

Auf Linux, POSIX Message Queues als i-Knoten in einem virtuellen Dateisystem implementiert werden, und Nachrichten-Warteschlange-Deskriptoren und Open Message Queue Beschreibungen sind als Dateideskriptoren implementiert und öffnen Sie die Datei Beschreibungen jeweils. Dies sind jedoch Implementierungsdetails , die von SUSv3 nicht benötigt werden und nicht für andere UNIX-Implementierungen gelten.

Auch wenn es VFS ist, ist es immer noch auf der HardDisk gespeichert, oder?

Mit diesen Informationen im Hinterkopf, kann jemand jetzt die zweite Frage kommentieren? (Und/oder Erste man auch, wenn es etwas mehr hinzuzufügen)

+0

Ich denke, es ist nur im RAM gespeichert und nicht auf der Festplatte gespeichert. Es ist etwas ähnlich wie RAM-Disk, so dass Sie auf "wie" ein Dateisystem zugreifen können, aber es existiert nicht auf der Festplatte. – Johnlcf

Antwort

4

Im Folgenden Link Klarheit über erste Frage geben kann http://man7.org/linux/man-pages/man7/mq_overview.7.html

Bezüglich zweite Frage ist natürlich die Datei-basierte Warteschlange wird langsamer sein als Speicher basierend ein. Dies kann jedoch nicht so langsam sein wie einige zufällige Dateizugriffsvorgänge, da es speziell für die Warteschlangenbildung optimiert und implementiert wird.

+0

Dies verdient die Antwort zu erhalten – Mawg