introduction to real-time operating systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/rtos.pdf ·...
TRANSCRIPT
![Page 1: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/1.jpg)
Introduction to Real-Time Operating Systems
![Page 2: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/2.jpg)
GPOS vs RTOS
• General purpose operating systems• Real-time operating systems
![Page 3: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/3.jpg)
GPOS vs RTOS: Similarities
• Multitasking• Resource management• OS services to applications• Abstracting the hardware
![Page 4: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/4.jpg)
Characteristics of RTOS
• Reliability in embedded application• Scale up or down ability• Faster performance• Reduced memory requirement• Scheduling policies for real-time• Diskless• portability
![Page 5: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/5.jpg)
![Page 6: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/6.jpg)
![Page 7: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/7.jpg)
Kernel Objects
• Help developers creates applications for real-time embedded systems
![Page 8: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/8.jpg)
Scheduler
• Determine which task executes when• Schedulable entities-a kernel object that
can compete for execution on a system-> process, task
• Multitasking: many thread of execution appear to be running concurrently
![Page 9: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/9.jpg)
Scheduler
• Context: the state of CPU registers• Context switch• When a new task is created, TCB(task
control block) is also created• TCB: system data structure
![Page 10: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/10.jpg)
![Page 11: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/11.jpg)
Scheduling Algorithms
• Preemptive priority-based scheduling• Round-robin scheduling
![Page 12: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/12.jpg)
![Page 13: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/13.jpg)
• 256 priority levels• 0: highest• 256: lowest
![Page 14: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/14.jpg)
![Page 15: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/15.jpg)
Objects
• Tasks• Semaphore: token-like objects for
synchronization & mutual exclusion• Message queue: buffer-like data structures
![Page 16: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/16.jpg)
Common Real-Time Design Problems
• Concurrency• Activity synchronization• Data communication
• Developers combine basic kernel objects
![Page 17: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/17.jpg)
Key Characteristics of RTOS
• Reliability• Predictability• Performance• Compactness• Scalability
![Page 18: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/18.jpg)
Tasks
![Page 19: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/19.jpg)
Defining a Task
• A task is an independent thread of execution that can compete with each other concurrent tasks for processor execution time
• Developer decompose applications into multiple concurrent tasks to optimize the handling of inputs and outputs within set time constraints
![Page 20: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/20.jpg)
Task States
• Ready• Running• Blocked
![Page 21: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/21.jpg)
![Page 22: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/22.jpg)
Ready State
• Most kernels support more than one task per priority level
• Task-ready-list
![Page 23: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/23.jpg)
![Page 24: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/24.jpg)
Running State
• Can move to the blocked state1. By making a call requesting an un
available resource2. By making a call requesting to wait for an
event to occur3. By making a call to delay
![Page 25: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/25.jpg)
Blocked State
• Without blocked state, lower priority tasks could not run!
• CPU starvation occurs when higher priority tasks use all of the CPU execution time and lower priority tasks do not get to run.
• A task can only move to the blocked state by making a blocking call, requesting that some blocking condition be met.
![Page 26: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/26.jpg)
Blocking Condition(Unblocking Condition)
• A semaphore is released• A message arrives• A time delay expires
![Page 27: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/27.jpg)
Typical Task Structures
• Run-to-completion tasks• Endless-loop tasks
![Page 28: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/28.jpg)
Run-to-Completion Tasks
• Application-level initialization task• The application initialization task typically
has a higher priority than the application tasks that it creates so that its initialization work is not preempted.
![Page 29: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/29.jpg)
RunToCompletionTask(){
initialize applicationcreate ‘endless loop tasks’-lower prioritycreates kernel objectsdelete or suspend this task
}
![Page 30: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/30.jpg)
Endless-Loop Tasks
• One or more blocking calls within the body of the loop
![Page 31: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/31.jpg)
EndlessLoopTask(){
initialization codeLoop Forever{
body of loopmake one or more blocking calls
}}
![Page 32: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/32.jpg)
Synchronization,Communication and Concurrency
• Tasks synchronize and communicate by using intertask primitives (semaphores, message queues, signals, pipes)
![Page 33: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/33.jpg)
Semaphores
![Page 34: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/34.jpg)
Semaphore (Token)
• A kernel object• One or more threads of execution can
acquire or release for the purpose of synchronization or mutual exclusion
![Page 35: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/35.jpg)
Semaphore
• Semaphore is like a key that allows a task to carry out some operation or to access a resource. (e.g. a key or keys to the lab)
![Page 36: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/36.jpg)
Semaphore Count
• Semaphore (Token) count is initialized when created
• A task acquire the semaphore: count is decremented
• A task releases the semaphore: count is incremented
• Token count = 0 : a requesting task blocks
![Page 37: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/37.jpg)
Binary Semaphore
• Value: 0 unavailable/empty• Value: 1 available/full
![Page 38: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/38.jpg)
Counting Semaphore
![Page 39: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/39.jpg)
Mutual Exclusion (Mutex) Semaphore
• A special binary semaphore that supports ownership, recursive access, task deletion safety, priority inversion avoidance protocol.
![Page 40: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/40.jpg)
Mutex Ownership• Ownership of a mutex is gained when a
task first locks the mutex by acquiring it.• A task loses ownership of the mutex when
it unlocks it by releasing it.
• Recursive locking: when a task requiring exclusive access to a shared resource calls one or more routines that also require access to the same resource.
![Page 41: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/41.jpg)
Mutex
• Task Deletion Safety: While a task owns a mutex, the task cannot be deleted
• Priority inversion avoidance
![Page 42: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/42.jpg)
Typical Semaphore Use
• Wait-and-Signal Synchronization
![Page 43: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/43.jpg)
Wait-and-Signal Synchronization
• tWaitTask runs first• tWaitTask makes a request to acquire the
semaphore but blocked• tSignalTask has a chance to run• tSignalTask releases the semaphore• tWaitTask unblocked and running
![Page 44: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/44.jpg)
Wait-and-Signal SynchronizationtWaitTask(){
…Acquire binary semaphore…
}tSignalTask(){
…Release binary semaphore…
}
![Page 45: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/45.jpg)
Multiple-Task Wait_and_Signal Synchronization
• tSignalTask: lower priority
![Page 46: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/46.jpg)
Multiple-Task Wait_and_Signal Synchronization
tWaitTask1(){
Acquire binary semaphore}tWaitTask2(){
…}tSignalTask(){
Flush binary semaphore’s task-waiting list}
![Page 47: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/47.jpg)
Single Shared-Resource-Access Synchronization
• Danger: problem when the 3rd task release -> use mutex
![Page 48: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/48.jpg)
Single Shared-Resource-Access Synchronization
tAccessTask(){
Acquire binary semaphoreRead or write to shared resourceRelease binary semaphore
}
![Page 49: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/49.jpg)
Recursive Shared-Resource-Access Synchronization
• tAccessTask calls -> Routine A -> Routine B : need to access to the same shared resource
![Page 50: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/50.jpg)
Recursive Shared-Resource-Access Synchronization
tAccessTask(){
…Acquire mutexAccess shared resourceCall RoutineARelease mutex…
}RoutineA(){
…Acquire mutexAccess shared resourceCall RoutineBRelease mutex …
}
RoutineB(){
…Acquire mutexAccess shared resourceCall RoutineBRelease mutex …
}
![Page 51: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/51.jpg)
Message Queues
![Page 52: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/52.jpg)
Message Queues
• A message queue is a buffer-like object through which tasks and ISRs send and receive messages to communicate and synchronize with data
• It temporarily holds message from a sender until the intended receiver is ready to read them.
![Page 53: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/53.jpg)
![Page 54: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/54.jpg)
Message Queue Content
• For long message, use pointer
![Page 55: Introduction to Real-Time Operating Systemsccrs.hanyang.ac.kr/webpage_limdj/embedded/RTOS.pdf · · 2018-01-26GPOS vs RTOS • General purpose operating systems • Real-time operating](https://reader034.vdocument.in/reader034/viewer/2022052202/5abf43147f8b9add5f8d863c/html5/thumbnails/55.jpg)
Typical Message Queue Use• Non-interlocked, one-way data
communication (loosely coupled)• Not synchronized• Does not require ACK