Книга: Real-Time Concepts for Embedded Systems
7.8 Points to Remember
7.8 Points to Remember
Some points to remember include the following:
· Message queues are buffer-like kernel objects used for data communication and synchronization between two tasks or between an ISR and a task.
· Message queues have an associated message queue control block (QCB), a name, a unique ID, memory buffers, a message queue length, a maximum message length, and one or more task-waiting lists.
· The beginning and end of message queues are called the head and tail, respectively; each buffer that can hold one message is called a message-queue element.
· Message queues are empty when created, full when all message queue elements contain messages, and not empty when some elements are still available for holding new messages.
· Sending messages to full message queues can cause the sending task to block, and receiving messages from an empty message queue can cause a receiving task to block
· Tasks can send to and receive from message queues without blocking, via blocking with a timeout, or via blocking forever. An ISR can only send messages without blocking.
· The task-waiting list associated with a message-queue can release tasks (unblock them) in FIFO or priority-based order.When messages are sent from one task to another, the message is typically copied twice: once from the sending task’s memory area to the message queue’s and a second time from the message queue’s memory area to the task’s.
· The data itself can either be sent as the message or as a pointer to the data as the message. The first case is better suited for smaller messages, and the latter case is better suited for large messages.
· Common message-queue operations include creating and deleting message queues, sending to and receiving from message queues, and obtaining message queue information.
· Urgent messages are inserted at the head of the queue if urgent messages are supported by the message-queue implementation.
· Some common ways to use message queues for data based communication include non-interlocked and interlocked queues providing one-way or two-way data communication.
- Chapter 8. The Point-to-Point Protocol
- Chapter 4: Introduction To Real-Time Operating Systems
- Chapter 9: Other RTOS Services
- 1.4 Points to Remember
- 2.5 Points to Remember
- 3.6 Points to Remember
- 4.8 Points to Remember
- 5.7 Points to Remember
- 6.5 Points to Remember
- 8.6 Points to Remember
- 9.4 Points to Remember
- 10.7 Points to Remember