Inter-Process Communication Linux # # # file d'attente de messages (file d'attente de messages)

Message Queue est en fait une file d'attente dans le noyau du système d'exploitation créé pour nous par la clé d'identification de file d'attente, chaque processus peut ouvrir cette file d'attente, chaque processus peut insérer un nœud à la file d'attente par la file d'attente ou Obtient un noeud pour terminer la communication entre les différents processus. Type de tissu avec un bloc de données d'utilisateur ajouté à la file d'attente, le processus d'acquisition des autres blocs de données de la file d'attente, la file d'attente de message est envoyé avec un type de bloc, la file d'attente de message est une communication en duplex intégral, lisible écriture (données peuvent être envoyées, vous pouvez également recevoir des données). Cycle de vie avec la file d'attente de messages du noyau, si la file d'attente de messages n'est pas libéré ou non arrêter le système d'exploitation, une file d'attente de messages existera toujours.

file d'attente de message fourni un procédé de transmission d' un bloc de données d'un processus à un autre processus. Chaque bloc de données est considérée comme contenant un type, le processus de réception peut recevoir de manière indépendante contenant différents types de structures de données. Nous pouvons éviter la synchronisation et les canaux nommés de blocage des problèmes en envoyant un message. Cependant, la file d'attente de message en tant que canaux nommés, chaque bloc de données a une limite de longueur maximale . En utilisant Linux et macro MSGMAX MSGMNB pour limiter la longueur maximale d'un message (standard System V) et une longueur maximale de la file d' attente.

Les files de messages et canal anonyme précédemment, les pipes nommés ont une différence de plus, principalement dans les deux points suivants:

  • Les procédés antérieurs écrire des messages dans une file d' attente de messages, un processus n'a pas besoin d'attendre l'arrivée du message dans la file d' attente, et le tuyau et FIFO est à l'opposé, lorsque les messages d'écriture de processus à l'autre, des tuyaux anonymes et les pipes requis est déjà ouvert à lire. 
  • différents IPC persistants. tuyaux anonymes et les pipes nommés sont le processus continu de , lorsque les derniers tuyaux anonymes et les pipes arrêt se produit, les tuyaux de données et les pipes sont encore seront mis au rebut anonyme. Avec la file d' attente des messages est noyau persistant , à savoir un processus pour écrire le message à une file d' attente de messages, et se termine ensuite, un autre processus peut ouvrir un certain temps après la file d' attente de message est lu. Tant que le noyau ne re-démarrage de la file d' attente de messages n'est pas supprimé. Que les tuyaux anonymes et les pipes nommés sont synchronisées pour éliminer les files d' attente sont asynchrones.

Chaque message dans la file d'attente de messages a généralement les propriétés suivantes:

  • A représente un nombre entier de priorité;
  • Longueur de la partie de données du message;
  •  les données de message lui-même;

file d'attente de message représenté dans le noyau

 

file d'attente de messages (file d'attente) avec la même norme de division norme POSIX System V, référence détaillée

Chambre # Linux # # IPC System V norme standard et Posix

Publié 170 articles originaux · louange gagné 207 · Vues 4,59 millions +

Je suppose que tu aimes

Origine blog.csdn.net/xiaoting451292510/article/details/103731030
conseillé
Classement