Comparison to non-Embedded C#.Net

brettotown wrote on Tuesday, June 12, 2012:

Hi folks:

I am new to RTOS but have been trying to do and learn some threading in C#.NET. Maybe that will make RTOS more understandable at the embedded level.

Would you say there is a large parallel between the world of Threading and thread management with Windows desktop applications and C#.NET world versus that of the embedded world of RTOS? Would you say that the concepts like Locks, Mutex, and Semaphores are pretty much the same?

rtel wrote on Saturday, June 16, 2012:

I was hoping that somebody with some C# experience might answer this one.  I don’t have C# experience but would imaging there is a large parallel between the Windows/C# style threading and threading in an RTOS.

The principals of multitasking are the same - only the scheduling algorithm changes.  The objective of a Windows system is completely different to that of a real time system (responsiveness, etc. Vs guaranteed real time responses), but as far as multi tasking goes, both systems have to cope with the same issues.  Those issues are inter task/thread communication, synchronization, sharing resources between different threads of execution, etc. and the primitives used to handle these are bascially the same.

There is a distinction in Windows/Linux type desktop systems between a process and a thread.  In FreeRTOS there is no concept of a process, and in effect FreeRTOS tasks are analogous to windows threads that all run in a single process.