2013-02-27 16 views
6

Durante l'utilizzo delle code dei messaggi POSIX ho notato che alcuni file venivano creati sul file system con il nome che stavo creando le code. Le mie domande:Dove è memorizzato il contenuto della coda dei messaggi?

Q1. Le code di messaggi accodano i messaggi sull'Hard Disk e non sulla RAM?

Q2. In tal caso, non dovrebbe essere molto lento nell'implementazione in quanto coinvolge HardDisk?


Edit:

ho letto questo nel libro The Linux Programming Interface:

Su Linux, le code di messaggi POSIX sono implementate come i-node in un file system virtuale , e descrittori coda di messaggi e la coda dei messaggi aperti Le descrizioni vengono implementate come descrizioni dei file e le descrizioni dei file aperti , rispettivamente. Tuttavia, si tratta di dettagli di implementazione non richiesti da SUSv3 e non validi per alcune altre implementazioni UNIX .

Anche se è VFS, è ancora memorizzato su HardDisk, giusto?

Con queste informazioni in mente, qualcuno può commentare la seconda domanda ora? (E/o il primo che anche se c'è qualcosa da aggiungere)

+0

Penso che sia appena memorizzato nella RAM e non memorizzato su Harddisk. È simile al disco RAM, in modo tale che è possibile accedervi "come" un file system, ma non esiste sul disco rigido. – Johnlcf

risposta

4

seguito collegamento può dare una certa chiarezza su prima domanda http://man7.org/linux/man-pages/man7/mq_overview.7.html

Per quanto riguarda la seconda domanda, naturalmente, la coda di file basato sarà più lento di memoria basata uno. Ma questo potrebbe non essere lento come alcune operazioni di accesso casuale ai file poiché è ottimizzato e implementato in modo specifico per l'accodamento.

+0

Questo merita di essere assegnato la risposta – Mawg