Windows Embedded Home
Windows Embedded 8 Family
Windows Embedded 7 Family
Other Windows Embedded Products
Posted By Colin MurphyTechnical Program Manager, Microsoft’s Windows Embedded
We’re excited by the prospects for Windows Embedded Compact 2013. Developers have been actively downloading the full toolkit since Microsoft announced the general availability in June. In a post to this blog at the time, I shared details about the GA including a look some of the newest tools like Microsoft Platform Builder and Application Builder.
Today, I’m following up on my promise in the blog post to take a look at what it means to be real time and how that transfers to the expectation of real-time support on an embedded device. First, What do we mean when we say “hard real time” vs. “soft real time”? A hard real time statement refers to true determinism, or the ability of a system to meet a specified deadline for a task or process. A soft real time system may still offer a certain level of determinism but won’t promise to meet a deadline. Basically, a system that claims to be hard real time will fail to truly be so if it misses a deadline for a task or process.
A real-world version of a soft deadline would be “Let’s get coffee around 4pm.” while a hard deadline would be “Let’s catch the train at 4pm”. The coffee shop is likely still serving coffee after 4pm so you can sit and have coffee with your friend even if you’re a few minutes late, but the train has likely left and your friend is waiting for you and fuming on the train platform as you arrive late. As there is probably not another train for quite some time, I hope there is a nice coffee shop in the train station!
Notice that the real-world examples have set expectations. You miss the train, you fail. You miss the coffee shop at exactly 4 pm, not as much of a problem. Computer processes and tasks can and do set expectations as well. For example, a GPS location message could arrive on a regular interval but if your portable embedded device stayed fully powered at all time to catch that message your battery life would suffer. In this case the device could wake moments ahead of the expected arrival and only stay awake until a message or a time out. In this situation you can see that either a hard or soft real-time system would work. You can set the granularity of the wakeup to accommodate for “soft” timing but you would achieve better battery life if you had “hard” timing because you could guarantee to wake as close as you could to the expected message arrival.
So now you ask, What does this mean for developers?
What should your expectation be for real time on a Compact device? In my experience “hard real time” can mean a 1 or 2 millisecond clock tick expectation while a “soft real time” clock tick can be 40 milliseconds or more on a busy system. Terms like “buyer beware” and “your mileage may vary” come to mind, so take a test drive before you commit to a device and set your expectations accordingly!
For information on the behavior and performance of a Windows Embedded Compact system, there are a number of articles that provide detailed information as well application development for real time as discussed in the recently published Compact 2013 eBook from Embedded101.
Behavior and performance evaluation of Windows Embedded Compact 7 on ARM
Behavior and performance evaluation of Windows Embedded Compact 7 on x86