Many embedded applications are designed as a Foreground/Background system but could benefit from the use of a real-time kernel. This session will describe how you can use a real-time kernel in an embedded system. You will learn how to split an application into separate tasks, assign priorities to tasks, use kernel services such as semaphores, message mailboxes, message queues, time delays etc. You will also see how interrupts interact with tasks. This paper assumes that you understand how a real-time kernel works.