The aim of this project is to demonstrate the use of RTOS in development of multitasking applications on embedded systems. Using an RTOS greatly enhances the functionality of an embedded system. It makes optimum utilization of the CPU time and resources. However, this also increases the coding complexity of the project. As embedded systems continue to be more and more sophisticated, the number of tasks handled by them also goes increasing and so does the coding complexity. First let’s get down to some basics. A process is an abstraction of a running program and is the logical unit of work scheduled by the operating system. A thread is a lightweight process that shares resources with other processes or threads. Each thread must “reside” within some process and make use of the resources of that process. Threads that reside within the same process share that processes’ resources.