2013-02-27 3 views
6

При использовании очередей сообщений POSIX я заметил, что в Файловой системе были созданы файлы с именем, которое я создавал очереди. Мои вопросы:Где хранится содержимое очереди сообщений?

Q1. Должны ли очереди сообщений размещать сообщения на жестком диске, а не в ОЗУ?

Q2. Если да, не должно ли это быть очень медленным в реализации, так как это связано с HardDisk?


Edit:

Я прочитал это в книге The Linux Programming Interface:

На Linux, очереди сообщений POSIX реализованы в виде I-узлов в виртуальном файловой системы, а также дескрипторы очереди сообщений и открытая очередь сообщений описания реализованы как файловые дескрипторы и открывают файлы , соответственно. Тем не менее, это детали реализации , которые не требуются SUSv3 и не сохраняются на некоторых других реализациях UNIX .

Даже если это VFS, он по-прежнему хранится на жестком диске, верно?

Имея в виду эту информацию, может кто-то прокомментировать второй вопрос сейчас? (И/или первый один также, если есть что-то еще добавить)

+0

Я думаю, что он просто хранится в ОЗУ и не сохраняется на жестком диске. Это что-то похожее на RAM-диск, так что вы можете получить к нему доступ как «файловую систему», но он не существует на жестком диске. – Johnlcf

ответ

4

Ниже ссылка может дать некоторую ясность по первому вопросу http://man7.org/linux/man-pages/man7/mq_overview.7.html

Что касается второго вопроса, то, конечно, очередь файлов на основе будет медленнее, чем память на основе один. Но это может быть не так медленно, как некоторые случайные операции доступа к файлам, поскольку оно оптимизировано и реализовано специально для организации очередей.

+0

Это заслуживает того, чтобы получить ответ – Mawg