2015-10-27 4 views

ответ

5

Я подозреваю, что нет общепринятого определения того, что делает очередь сообщений по сравнению с почтовым ящиком. В каждой ОСРВ могут использоваться разные терминологии и детали реализации, поэтому вам придется смотреть на каждую RTOS отдельно.

Вообще говоря некоторые общие различия включают в себя:

  • Является ли размер сообщений, отправляемых через очередь/почтовый ящик фиксированным или может размер сообщения меняется?
  • Имеет ли в очереди/почтовом ящике ссылку на сообщение или копию сообщения?
  • Может ли очередь/почтовый ящик содержать одно сообщение, несколько сообщений или неограниченное количество сообщений?
2

очереди в целом имеет очень точное значение в вычислениях в качестве структуры данных контейнера с семантикой первый в первый вышел (FIFO) доступа. В частности, в очереди RTOS доступ к очереди будет потокобезопасным и имеет семантику блокировки.

A почтовый ящик, с другой стороны, не имеет общепринятой специфической семантики, и я видел термин, используемый для обозначения очень разных механизмов IPC RTOS. В некоторых случаях существуют очереди, но если RTOS также поддерживает очередь IPC, почтовый ящик будет иметь какую-то разную семантику - часто в отношении управления памятью. В других случаях почтовый ящик может по существу быть очередью длины 1 - то есть он имеет возможность блокировки и IPC очереди, но без буферизации. Такой механизм позволяет осуществлять синхронную связь между процессами.